diff --git a/config/kernel/linux-rockchip-current.config b/config/kernel/linux-rockchip-current.config index 239cc51439..b80e90bf61 100644 --- a/config/kernel/linux-rockchip-current.config +++ b/config/kernel/linux-rockchip-current.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 5.10.16 Kernel Configuration +# Linux/arm 5.10.52 Kernel Configuration # CONFIG_CC_VERSION_TEXT="arm-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0" CONFIG_CC_IS_GCC=y @@ -210,6 +210,7 @@ CONFIG_KALLSYMS_BASE_RELATIVE=y # CONFIG_BPF_SYSCALL is not set # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_KCMP=y CONFIG_RSEQ=y # CONFIG_DEBUG_RSEQ is not set CONFIG_EMBEDDED=y @@ -1608,7 +1609,7 @@ CONFIG_CAN_UCAN=m CONFIG_BT=y CONFIG_BT_BREDR=y CONFIG_BT_RFCOMM=y -# CONFIG_BT_RFCOMM_TTY is not set +CONFIG_BT_RFCOMM_TTY=y # CONFIG_BT_BNEP is not set CONFIG_BT_HIDP=y CONFIG_BT_HS=y @@ -1641,7 +1642,7 @@ CONFIG_BT_HCIUART_ATH3K=y # CONFIG_BT_HCIUART_LL is not set CONFIG_BT_HCIUART_3WIRE=y # CONFIG_BT_HCIUART_INTEL is not set -# CONFIG_BT_HCIUART_BCM is not set +CONFIG_BT_HCIUART_BCM=y # CONFIG_BT_HCIUART_QCA is not set # CONFIG_BT_HCIUART_AG6XX is not set # CONFIG_BT_HCIUART_MRVL is not set @@ -1840,6 +1841,7 @@ CONFIG_BLK_DEV_RBD=m # NVME Support # # CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set # CONFIG_NVME_TARGET is not set # end of NVME Support @@ -2385,6 +2387,7 @@ CONFIG_WLAN_VENDOR_TI=y # CONFIG_WL12XX is not set # CONFIG_WL18XX is not set # CONFIG_WLCORE is not set +CONFIG_RTL8822BS=m CONFIG_RTL8723DU=m CONFIG_RTL8723DS=m CONFIG_RTL8822BU=m @@ -2737,7 +2740,7 @@ CONFIG_NULL_TTY=m CONFIG_HVC_DRIVER=y # CONFIG_HVC_DCC is not set CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_RK_CHAR_DRIVERS=y CONFIG_RK3288_DEVGPIOMEM=m # CONFIG_TTY_PRINTK is not set @@ -3067,7 +3070,6 @@ CONFIG_BATTERY_SBS=y # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set CONFIG_BATTERY_MAX1721X=m -CONFIG_CHARGER_ISP1704=m # CONFIG_CHARGER_MAX8903 is not set # CONFIG_CHARGER_LP8727 is not set CONFIG_CHARGER_GPIO=y @@ -3084,6 +3086,7 @@ CONFIG_CHARGER_BQ2515X=m CONFIG_CHARGER_BQ25980=m # CONFIG_CHARGER_SMB347 is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_BATTERY_RT5033 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_CHARGER_CROS_USBPD=m CONFIG_CHARGER_UCS1002=m @@ -5063,7 +5066,6 @@ CONFIG_USB_HUB_USB251XB=m # # USB Physical Layer drivers # -CONFIG_USB_PHY=y # CONFIG_NOP_USB_XCEIV is not set # CONFIG_USB_GPIO_VBUS is not set # CONFIG_USB_ISP1301 is not set @@ -5847,7 +5849,6 @@ CONFIG_AD7768_1=m # CONFIG_AD7923 is not set # CONFIG_AD7949 is not set # CONFIG_AD799X is not set -# CONFIG_AD9467 is not set # CONFIG_ADI_AXI_ADC is not set # CONFIG_CC10001_ADC is not set # CONFIG_CPCAP_ADC is not set @@ -6271,8 +6272,6 @@ CONFIG_MADERA_IRQ=m # CONFIG_IPACK_BUS is not set CONFIG_ARCH_HAS_RESET_CONTROLLER=y CONFIG_RESET_CONTROLLER=y -# CONFIG_RESET_BRCMSTB_RESCAL is not set -# CONFIG_RESET_INTEL_GW is not set # CONFIG_RESET_TI_SYSCON is not set # @@ -6280,7 +6279,6 @@ CONFIG_RESET_CONTROLLER=y # CONFIG_GENERIC_PHY=y CONFIG_GENERIC_PHY_MIPI_DPHY=y -CONFIG_USB_LGM_PHY=m # CONFIG_BCM_KONA_USB2_PHY is not set # CONFIG_PHY_CADENCE_TORRENT is not set CONFIG_PHY_CADENCE_DPHY=m @@ -6557,7 +6555,6 @@ CONFIG_PSTORE_CONSOLE=y # CONFIG_PSTORE_PMSG is not set # CONFIG_PSTORE_FTRACE is not set CONFIG_PSTORE_RAM=y -# CONFIG_PSTORE_BLK is not set CONFIG_SYSV_FS=m CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set @@ -6597,7 +6594,7 @@ CONFIG_NFS_V4_1=y CONFIG_NFS_V4_2=y CONFIG_PNFS_FILE_LAYOUT=y CONFIG_PNFS_BLOCK=m -CONFIG_PNFS_FLEXFILE_LAYOUT=m +CONFIG_PNFS_FLEXFILE_LAYOUT=y CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" # CONFIG_NFS_V4_1_MIGRATION is not set CONFIG_NFS_V4_SECURITY_LABEL=y diff --git a/config/kernel/linux-rockchip-edge.config b/config/kernel/linux-rockchip-edge.config index 0db86dcec2..35f95becb9 100644 --- a/config/kernel/linux-rockchip-edge.config +++ b/config/kernel/linux-rockchip-edge.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 5.14.1 Kernel Configuration +# Linux/arm 5.14.4 Kernel Configuration # CONFIG_CC_VERSION_TEXT="arm-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0" CONFIG_CC_IS_GCC=y @@ -467,7 +467,7 @@ CONFIG_HIGHMEM=y CONFIG_CPU_SW_DOMAIN_PAN=y CONFIG_HW_PERF_EVENTS=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -# CONFIG_ARM_MODULE_PLTS is not set +CONFIG_ARM_MODULE_PLTS=y CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y # CONFIG_UACCESS_WITH_MEMCPY is not set @@ -1376,7 +1376,6 @@ CONFIG_BRIDGE_VLAN_FILTERING=y # CONFIG_BRIDGE_MRP is not set # CONFIG_BRIDGE_CFM is not set CONFIG_NET_DSA=m -CONFIG_NET_DSA_TAG_8021Q=m # CONFIG_NET_DSA_TAG_AR9331 is not set CONFIG_NET_DSA_TAG_BRCM_COMMON=m CONFIG_NET_DSA_TAG_BRCM=m @@ -1635,13 +1634,13 @@ CONFIG_CAN_UCAN=m CONFIG_BT=y CONFIG_BT_BREDR=y CONFIG_BT_RFCOMM=y -# CONFIG_BT_RFCOMM_TTY is not set +CONFIG_BT_RFCOMM_TTY=y # CONFIG_BT_BNEP is not set CONFIG_BT_HIDP=y CONFIG_BT_HS=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m -# CONFIG_BT_LEDS is not set +CONFIG_BT_LEDS=y # CONFIG_BT_MSFTEXT is not set # CONFIG_BT_AOSPEXT is not set CONFIG_BT_DEBUGFS=y @@ -1660,7 +1659,7 @@ CONFIG_BT_HCIBTUSB_BCM=y # CONFIG_BT_HCIBTUSB_MTK is not set CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTSDIO=y -CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_SERDEV=y CONFIG_BT_HCIUART_H4=y # CONFIG_BT_HCIUART_NOKIA is not set @@ -1669,7 +1668,8 @@ CONFIG_BT_HCIUART_ATH3K=y # CONFIG_BT_HCIUART_LL is not set CONFIG_BT_HCIUART_3WIRE=y # CONFIG_BT_HCIUART_INTEL is not set -# CONFIG_BT_HCIUART_BCM is not set +CONFIG_BT_HCIUART_BCM=y +# CONFIG_BT_HCIUART_RTL is not set # CONFIG_BT_HCIUART_QCA is not set # CONFIG_BT_HCIUART_AG6XX is not set # CONFIG_BT_HCIUART_MRVL is not set @@ -2799,7 +2799,7 @@ CONFIG_NULL_TTY=m CONFIG_HVC_DRIVER=y # CONFIG_HVC_DCC is not set CONFIG_SERIAL_DEV_BUS=y -# CONFIG_SERIAL_DEV_CTRL_TTYPORT is not set +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_RK_CHAR_DRIVERS=y CONFIG_RK3288_DEVGPIOMEM=m # CONFIG_TTY_PRINTK is not set @@ -2919,6 +2919,7 @@ CONFIG_SPI_CADENCE_QUADSPI=m # CONFIG_SPI_OC_TINY is not set # CONFIG_SPI_PL022 is not set CONFIG_SPI_ROCKCHIP=y +# CONFIG_SPI_ROCKCHIP_SFC is not set # CONFIG_SPI_SC18IS602 is not set # CONFIG_SPI_SIFIVE is not set # CONFIG_SPI_MXIC is not set @@ -3887,6 +3888,7 @@ CONFIG_VIDEO_XILINX_TPG=m CONFIG_VIDEO_XILINX_VTC=m CONFIG_V4L_MEM2MEM_DRIVERS=y # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +CONFIG_VIDEO_ROCKCHIP_IEP=m CONFIG_VIDEO_ROCKCHIP_RGA=m CONFIG_DVB_PLATFORM_DRIVERS=y CONFIG_DVB_C8SECTPFE=m @@ -5698,6 +5700,7 @@ CONFIG_ASHMEM=y # CONFIG_LTE_GDM724X is not set # CONFIG_GS_FPGABOOT is not set # CONFIG_UNISYSSPAR is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set CONFIG_FB_TFT=m CONFIG_FB_TFT_AGM1264K_FL=m CONFIG_FB_TFT_BD663474=m diff --git a/config/sources/families/rockchip.conf b/config/sources/families/rockchip.conf index 1c298dfbc2..14fe512731 100644 --- a/config/sources/families/rockchip.conf +++ b/config/sources/families/rockchip.conf @@ -75,11 +75,6 @@ family_tweaks() sed -i -e "/#load-module module-alsa-sink/r $SRC/packages/bsp/rockchip/pulseaudio.txt" $SDCARD/etc/pulse/default.pa >/dev/null 2>&1 fi - if [[ $BOARD == xt-q8l-v10 ]]; then - mkdir -p $SDCARD/etc/firmware/ - ln -sf /lib/firmware/brcm/BCM4330B1.hcd $SDCARD/etc/firmware - chroot $SDCARD /bin/bash -c "systemctl --no-reload enable ap6330-bluetooth.service >/dev/null 2>&1" - fi } family_tweaks_bsp() @@ -109,7 +104,8 @@ family_tweaks_bsp() cp $SRC/packages/bsp/rockchip/asound.conf $destination/etc/ cp $SRC/packages/bsp/rockchip/89-pulseaudio-usb.rules $destination/etc/udev/rules.d - # ap6330 bluetooth (required for xt-q8l-v10) - cp $SRC/packages/bsp/rockchip/ap6330-bluetooth.service $destination/lib/systemd/system/ + # AP6330 (BCM4330) firmware initramfs hook for in-kernel btbcm driver + mkdir -p $destination/etc/initramfs-tools/hooks + install -m 550 $SRC/packages/bsp/rockchip/ap6330-initramfs-firmware $destination/etc/initramfs-tools/hooks } diff --git a/packages/bsp/rockchip/ap6330-bluetooth.service b/packages/bsp/rockchip/ap6330-bluetooth.service deleted file mode 100644 index 296282cff0..0000000000 --- a/packages/bsp/rockchip/ap6330-bluetooth.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=AP6330 bluetooth support -Before=bluetooth.service - -[Service] -Type=forking -RemainAfterExit=Yes -ExecStart=/usr/bin/hciattach /dev/ttyS0 bcm43xx 1500000 - -[Install] -WantedBy=multi-user.target diff --git a/packages/bsp/rockchip/ap6330-initramfs-firmware b/packages/bsp/rockchip/ap6330-initramfs-firmware new file mode 100644 index 0000000000..a7142b5aad --- /dev/null +++ b/packages/bsp/rockchip/ap6330-initramfs-firmware @@ -0,0 +1,12 @@ +#!/bin/sh -e + +# Broadcom 4330 initramfs support file +# To let the kernel btbcm driver find the driver, we need to copy the 4330 firmware +# appropriately in the /lib/firmware/brcm directory of the initramfs. This script +# does that on each update. + +if [ "$1" = "prereqs" ]; then exit 0; fi +. /usr/share/initramfs-tools/hook-functions + +mkdir -p $DESTDIR/lib/firmware/brcm +cp /lib/firmware/brcm/BCM4330B1.hcd $DESTDIR/lib/firmware/brcm diff --git a/patch/kernel/archive/rockchip-5.10/4016-workaround-broadcom-bt-serdev.patch b/patch/kernel/archive/rockchip-5.10/4016-workaround-broadcom-bt-serdev.patch new file mode 100644 index 0000000000..b4dd331948 --- /dev/null +++ b/patch/kernel/archive/rockchip-5.10/4016-workaround-broadcom-bt-serdev.patch @@ -0,0 +1,26 @@ +From e5c9702bd2ffd09e48c118ab40c2764590af7929 Mon Sep 17 00:00:00 2001 +From: Paolo Sabatino +Date: Sat, 1 May 2021 12:41:14 +0000 +Subject: [PATCH] Workaround to make several broadcom bluetooth serdev devices + work even without proper MAC address + +--- + drivers/bluetooth/btbcm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c +index 1b9743b7f..b274f1cdd 100644 +--- a/drivers/bluetooth/btbcm.c ++++ b/drivers/bluetooth/btbcm.c +@@ -87,7 +87,7 @@ int btbcm_check_bdaddr(struct hci_dev *hdev) + !bacmp(&bda->bdaddr, BDADDR_BCM43341B)) { + bt_dev_info(hdev, "BCM: Using default device address (%pMR)", + &bda->bdaddr); +- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); ++ //set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); + } + + kfree_skb(skb); +-- +2.25.1 + diff --git a/patch/kernel/archive/rockchip-5.10/xt-q8l-v10-add-device-tree.patch b/patch/kernel/archive/rockchip-5.10/xt-q8l-v10-add-device-tree.patch index 31f1b786bf..a17fe6992d 100644 --- a/patch/kernel/archive/rockchip-5.10/xt-q8l-v10-add-device-tree.patch +++ b/patch/kernel/archive/rockchip-5.10/xt-q8l-v10-add-device-tree.patch @@ -1,9 +1,9 @@ diff --git a/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts new file mode 100644 -index 000000000..90d0594af +index 000000000..341c085c2 --- /dev/null +++ b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts -@@ -0,0 +1,1077 @@ +@@ -0,0 +1,1120 @@ +/* + * Copyright (c) 2014, 2015 FUKAUMI Naoki + * 2018 Paolo Sabatino @@ -50,6 +50,7 @@ index 000000000..90d0594af +/dts-v1/; + +#include "rk3288.dtsi" ++#include +#include + +/ { @@ -87,6 +88,13 @@ index 000000000..90d0594af + clock-output-names = "ext_gmac"; + }; + ++ bt_xtal: bluetooth-xtal-clock { ++ compatible = "fixed-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <37400000>; ++ clock-output-names = "txco"; ++ }; ++ + /* + * Handle the IR receiver using the gpio-ir-receiver kernel module. + * This works flawlessy, the original xt-q8l-v10 remote uses a NEC @@ -203,8 +211,8 @@ index 000000000..90d0594af + sdio0_pwrseq: sdio0_pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; -+ pinctrl-0 = <&wifi_enable_h>, <&bt_enable_h>; -+ reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>, <&gpio4 29 GPIO_ACTIVE_LOW>; ++ pinctrl-0 = <&wifi_enable_h>; ++ reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; + post-power-on-delay-ms = <100>; + }; + @@ -759,17 +767,31 @@ index 000000000..90d0594af + rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_output_high>; + }; + -+ bt_enable_h: bt-enable-h { -+ rockchip,pins = <4 27 RK_FUNC_GPIO &pcfg_output_high>; -+ }; -+ + }; + + -+ wireless-bluetooth { -+ uart0_gpios: uart0-gpios { ++ bluetooth { ++ ++ uart0_rts_gpio: uart0-rts-gpio { + rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>; + }; ++ ++ bt_enable_h: bt-enable-h { ++ rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_reset_l: bt-reset-l { ++ rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ bt_wake_h: bt-wake-h { ++ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_host_wake_h: bt-host-wake-h { ++ rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + }; + + emmc { @@ -875,7 +897,7 @@ index 000000000..90d0594af + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&gpio4>; -+ interrupts = <30 IRQ_TYPE_LEVEL_LOW>; ++ interrupts = ; + interrupt-names = "host-wake"; + status = "okay"; + }; @@ -912,10 +934,31 @@ index 000000000..90d0594af + */ +&uart0 { + pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; -+ //dmas = <&dmac_peri 1 &dmac_peri 2>; -+ //dma-names = "tx", "rx"; ++ pinctrl-0 = <&uart0_xfer>, <&uart0_rts>, <&uart0_cts>; ++ ++// dmas = <&dmac_peri 1 &dmac_peri 2>; ++// dma-names = "tx", "rx"; + status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm4330-bt"; ++ max-speed = <4000000>; ++ ++ shutdown-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; ++ device-wakeup-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; ++ //interrupt-parent = <&gpio4>; ++ //interrupt-names = "host-wakeup"; ++ //interrupts = ; ++ clock-names = "lpo", "txco"; ++ clocks = <&hym8563>, <&bt_xtal>; ++ vddio-supply = <&vcca_18>; ++ vbat-supply = <&vcca_18>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&bt_enable_h>, <&bt_wake_h>, <&bt_host_wake_h>, <&bt_reset_l>; ++ brcm,bt-pcm-int-params = [01 02 00 01 01]; ++ status = "okay"; ++ }; ++ +}; + +&uart1 { diff --git a/patch/kernel/archive/rockchip-5.11/4016-workaround-broadcom-bt-serdev.patch b/patch/kernel/archive/rockchip-5.11/4016-workaround-broadcom-bt-serdev.patch new file mode 100644 index 0000000000..b4dd331948 --- /dev/null +++ b/patch/kernel/archive/rockchip-5.11/4016-workaround-broadcom-bt-serdev.patch @@ -0,0 +1,26 @@ +From e5c9702bd2ffd09e48c118ab40c2764590af7929 Mon Sep 17 00:00:00 2001 +From: Paolo Sabatino +Date: Sat, 1 May 2021 12:41:14 +0000 +Subject: [PATCH] Workaround to make several broadcom bluetooth serdev devices + work even without proper MAC address + +--- + drivers/bluetooth/btbcm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c +index 1b9743b7f..b274f1cdd 100644 +--- a/drivers/bluetooth/btbcm.c ++++ b/drivers/bluetooth/btbcm.c +@@ -87,7 +87,7 @@ int btbcm_check_bdaddr(struct hci_dev *hdev) + !bacmp(&bda->bdaddr, BDADDR_BCM43341B)) { + bt_dev_info(hdev, "BCM: Using default device address (%pMR)", + &bda->bdaddr); +- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); ++ //set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); + } + + kfree_skb(skb); +-- +2.25.1 + diff --git a/patch/kernel/archive/rockchip-5.11/xt-q8l-v10-add-device-tree.patch b/patch/kernel/archive/rockchip-5.11/xt-q8l-v10-add-device-tree.patch index 31f1b786bf..a17fe6992d 100644 --- a/patch/kernel/archive/rockchip-5.11/xt-q8l-v10-add-device-tree.patch +++ b/patch/kernel/archive/rockchip-5.11/xt-q8l-v10-add-device-tree.patch @@ -1,9 +1,9 @@ diff --git a/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts new file mode 100644 -index 000000000..90d0594af +index 000000000..341c085c2 --- /dev/null +++ b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts -@@ -0,0 +1,1077 @@ +@@ -0,0 +1,1120 @@ +/* + * Copyright (c) 2014, 2015 FUKAUMI Naoki + * 2018 Paolo Sabatino @@ -50,6 +50,7 @@ index 000000000..90d0594af +/dts-v1/; + +#include "rk3288.dtsi" ++#include +#include + +/ { @@ -87,6 +88,13 @@ index 000000000..90d0594af + clock-output-names = "ext_gmac"; + }; + ++ bt_xtal: bluetooth-xtal-clock { ++ compatible = "fixed-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <37400000>; ++ clock-output-names = "txco"; ++ }; ++ + /* + * Handle the IR receiver using the gpio-ir-receiver kernel module. + * This works flawlessy, the original xt-q8l-v10 remote uses a NEC @@ -203,8 +211,8 @@ index 000000000..90d0594af + sdio0_pwrseq: sdio0_pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; -+ pinctrl-0 = <&wifi_enable_h>, <&bt_enable_h>; -+ reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>, <&gpio4 29 GPIO_ACTIVE_LOW>; ++ pinctrl-0 = <&wifi_enable_h>; ++ reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; + post-power-on-delay-ms = <100>; + }; + @@ -759,17 +767,31 @@ index 000000000..90d0594af + rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_output_high>; + }; + -+ bt_enable_h: bt-enable-h { -+ rockchip,pins = <4 27 RK_FUNC_GPIO &pcfg_output_high>; -+ }; -+ + }; + + -+ wireless-bluetooth { -+ uart0_gpios: uart0-gpios { ++ bluetooth { ++ ++ uart0_rts_gpio: uart0-rts-gpio { + rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>; + }; ++ ++ bt_enable_h: bt-enable-h { ++ rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_reset_l: bt-reset-l { ++ rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ bt_wake_h: bt-wake-h { ++ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_host_wake_h: bt-host-wake-h { ++ rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + }; + + emmc { @@ -875,7 +897,7 @@ index 000000000..90d0594af + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&gpio4>; -+ interrupts = <30 IRQ_TYPE_LEVEL_LOW>; ++ interrupts = ; + interrupt-names = "host-wake"; + status = "okay"; + }; @@ -912,10 +934,31 @@ index 000000000..90d0594af + */ +&uart0 { + pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; -+ //dmas = <&dmac_peri 1 &dmac_peri 2>; -+ //dma-names = "tx", "rx"; ++ pinctrl-0 = <&uart0_xfer>, <&uart0_rts>, <&uart0_cts>; ++ ++// dmas = <&dmac_peri 1 &dmac_peri 2>; ++// dma-names = "tx", "rx"; + status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm4330-bt"; ++ max-speed = <4000000>; ++ ++ shutdown-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; ++ device-wakeup-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; ++ //interrupt-parent = <&gpio4>; ++ //interrupt-names = "host-wakeup"; ++ //interrupts = ; ++ clock-names = "lpo", "txco"; ++ clocks = <&hym8563>, <&bt_xtal>; ++ vddio-supply = <&vcca_18>; ++ vbat-supply = <&vcca_18>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&bt_enable_h>, <&bt_wake_h>, <&bt_host_wake_h>, <&bt_reset_l>; ++ brcm,bt-pcm-int-params = [01 02 00 01 01]; ++ status = "okay"; ++ }; ++ +}; + +&uart1 { diff --git a/patch/kernel/archive/rockchip-5.13/4016-workaround-broadcom-bt-serdev.patch b/patch/kernel/archive/rockchip-5.13/4016-workaround-broadcom-bt-serdev.patch new file mode 100644 index 0000000000..b4dd331948 --- /dev/null +++ b/patch/kernel/archive/rockchip-5.13/4016-workaround-broadcom-bt-serdev.patch @@ -0,0 +1,26 @@ +From e5c9702bd2ffd09e48c118ab40c2764590af7929 Mon Sep 17 00:00:00 2001 +From: Paolo Sabatino +Date: Sat, 1 May 2021 12:41:14 +0000 +Subject: [PATCH] Workaround to make several broadcom bluetooth serdev devices + work even without proper MAC address + +--- + drivers/bluetooth/btbcm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c +index 1b9743b7f..b274f1cdd 100644 +--- a/drivers/bluetooth/btbcm.c ++++ b/drivers/bluetooth/btbcm.c +@@ -87,7 +87,7 @@ int btbcm_check_bdaddr(struct hci_dev *hdev) + !bacmp(&bda->bdaddr, BDADDR_BCM43341B)) { + bt_dev_info(hdev, "BCM: Using default device address (%pMR)", + &bda->bdaddr); +- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); ++ //set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); + } + + kfree_skb(skb); +-- +2.25.1 + diff --git a/patch/kernel/archive/rockchip-5.13/xt-q8l-v10-add-device-tree.patch b/patch/kernel/archive/rockchip-5.13/xt-q8l-v10-add-device-tree.patch index 31f1b786bf..a17fe6992d 100644 --- a/patch/kernel/archive/rockchip-5.13/xt-q8l-v10-add-device-tree.patch +++ b/patch/kernel/archive/rockchip-5.13/xt-q8l-v10-add-device-tree.patch @@ -1,9 +1,9 @@ diff --git a/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts new file mode 100644 -index 000000000..90d0594af +index 000000000..341c085c2 --- /dev/null +++ b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts -@@ -0,0 +1,1077 @@ +@@ -0,0 +1,1120 @@ +/* + * Copyright (c) 2014, 2015 FUKAUMI Naoki + * 2018 Paolo Sabatino @@ -50,6 +50,7 @@ index 000000000..90d0594af +/dts-v1/; + +#include "rk3288.dtsi" ++#include +#include + +/ { @@ -87,6 +88,13 @@ index 000000000..90d0594af + clock-output-names = "ext_gmac"; + }; + ++ bt_xtal: bluetooth-xtal-clock { ++ compatible = "fixed-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <37400000>; ++ clock-output-names = "txco"; ++ }; ++ + /* + * Handle the IR receiver using the gpio-ir-receiver kernel module. + * This works flawlessy, the original xt-q8l-v10 remote uses a NEC @@ -203,8 +211,8 @@ index 000000000..90d0594af + sdio0_pwrseq: sdio0_pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; -+ pinctrl-0 = <&wifi_enable_h>, <&bt_enable_h>; -+ reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>, <&gpio4 29 GPIO_ACTIVE_LOW>; ++ pinctrl-0 = <&wifi_enable_h>; ++ reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; + post-power-on-delay-ms = <100>; + }; + @@ -759,17 +767,31 @@ index 000000000..90d0594af + rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_output_high>; + }; + -+ bt_enable_h: bt-enable-h { -+ rockchip,pins = <4 27 RK_FUNC_GPIO &pcfg_output_high>; -+ }; -+ + }; + + -+ wireless-bluetooth { -+ uart0_gpios: uart0-gpios { ++ bluetooth { ++ ++ uart0_rts_gpio: uart0-rts-gpio { + rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>; + }; ++ ++ bt_enable_h: bt-enable-h { ++ rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_reset_l: bt-reset-l { ++ rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ bt_wake_h: bt-wake-h { ++ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_host_wake_h: bt-host-wake-h { ++ rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + }; + + emmc { @@ -875,7 +897,7 @@ index 000000000..90d0594af + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&gpio4>; -+ interrupts = <30 IRQ_TYPE_LEVEL_LOW>; ++ interrupts = ; + interrupt-names = "host-wake"; + status = "okay"; + }; @@ -912,10 +934,31 @@ index 000000000..90d0594af + */ +&uart0 { + pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; -+ //dmas = <&dmac_peri 1 &dmac_peri 2>; -+ //dma-names = "tx", "rx"; ++ pinctrl-0 = <&uart0_xfer>, <&uart0_rts>, <&uart0_cts>; ++ ++// dmas = <&dmac_peri 1 &dmac_peri 2>; ++// dma-names = "tx", "rx"; + status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm4330-bt"; ++ max-speed = <4000000>; ++ ++ shutdown-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; ++ device-wakeup-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; ++ //interrupt-parent = <&gpio4>; ++ //interrupt-names = "host-wakeup"; ++ //interrupts = ; ++ clock-names = "lpo", "txco"; ++ clocks = <&hym8563>, <&bt_xtal>; ++ vddio-supply = <&vcca_18>; ++ vbat-supply = <&vcca_18>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&bt_enable_h>, <&bt_wake_h>, <&bt_host_wake_h>, <&bt_reset_l>; ++ brcm,bt-pcm-int-params = [01 02 00 01 01]; ++ status = "okay"; ++ }; ++ +}; + +&uart1 { diff --git a/patch/kernel/archive/rockchip-5.14/4016-workaround-broadcom-bt-serdev.patch b/patch/kernel/archive/rockchip-5.14/4016-workaround-broadcom-bt-serdev.patch new file mode 100644 index 0000000000..b4dd331948 --- /dev/null +++ b/patch/kernel/archive/rockchip-5.14/4016-workaround-broadcom-bt-serdev.patch @@ -0,0 +1,26 @@ +From e5c9702bd2ffd09e48c118ab40c2764590af7929 Mon Sep 17 00:00:00 2001 +From: Paolo Sabatino +Date: Sat, 1 May 2021 12:41:14 +0000 +Subject: [PATCH] Workaround to make several broadcom bluetooth serdev devices + work even without proper MAC address + +--- + drivers/bluetooth/btbcm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c +index 1b9743b7f..b274f1cdd 100644 +--- a/drivers/bluetooth/btbcm.c ++++ b/drivers/bluetooth/btbcm.c +@@ -87,7 +87,7 @@ int btbcm_check_bdaddr(struct hci_dev *hdev) + !bacmp(&bda->bdaddr, BDADDR_BCM43341B)) { + bt_dev_info(hdev, "BCM: Using default device address (%pMR)", + &bda->bdaddr); +- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); ++ //set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); + } + + kfree_skb(skb); +-- +2.25.1 + diff --git a/patch/kernel/archive/rockchip-5.14/xt-q8l-v10-add-device-tree.patch b/patch/kernel/archive/rockchip-5.14/xt-q8l-v10-add-device-tree.patch index 31f1b786bf..d248549061 100644 --- a/patch/kernel/archive/rockchip-5.14/xt-q8l-v10-add-device-tree.patch +++ b/patch/kernel/archive/rockchip-5.14/xt-q8l-v10-add-device-tree.patch @@ -1,9 +1,9 @@ diff --git a/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts new file mode 100644 -index 000000000..90d0594af +index 000000000..0619db8b2 --- /dev/null +++ b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts -@@ -0,0 +1,1077 @@ +@@ -0,0 +1,1124 @@ +/* + * Copyright (c) 2014, 2015 FUKAUMI Naoki + * 2018 Paolo Sabatino @@ -50,6 +50,7 @@ index 000000000..90d0594af +/dts-v1/; + +#include "rk3288.dtsi" ++#include +#include + +/ { @@ -87,6 +88,13 @@ index 000000000..90d0594af + clock-output-names = "ext_gmac"; + }; + ++ bt_xtal: bluetooth-xtal-clock { ++ compatible = "fixed-clock"; ++ #clock-cells = <0>; ++ clock-frequency = <37400000>; ++ clock-output-names = "txco"; ++ }; ++ + /* + * Handle the IR receiver using the gpio-ir-receiver kernel module. + * This works flawlessy, the original xt-q8l-v10 remote uses a NEC @@ -203,8 +211,8 @@ index 000000000..90d0594af + sdio0_pwrseq: sdio0_pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; -+ pinctrl-0 = <&wifi_enable_h>, <&bt_enable_h>; -+ reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>, <&gpio4 29 GPIO_ACTIVE_LOW>; ++ pinctrl-0 = <&wifi_enable_h>; ++ reset-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; + post-power-on-delay-ms = <100>; + }; + @@ -759,17 +767,31 @@ index 000000000..90d0594af + rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_output_high>; + }; + -+ bt_enable_h: bt-enable-h { -+ rockchip,pins = <4 27 RK_FUNC_GPIO &pcfg_output_high>; -+ }; -+ + }; + + -+ wireless-bluetooth { -+ uart0_gpios: uart0-gpios { ++ bluetooth { ++ ++ uart0_rts_gpio: uart0-rts-gpio { + rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>; + }; ++ ++ bt_enable_h: bt-enable-h { ++ rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_reset_l: bt-reset-l { ++ rockchip,pins = <4 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; ++ }; ++ ++ bt_wake_h: bt-wake-h { ++ rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ ++ bt_host_wake_h: bt-host-wake-h { ++ rockchip,pins = <4 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; ++ }; ++ + }; + + emmc { @@ -875,7 +897,7 @@ index 000000000..90d0594af + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + interrupt-parent = <&gpio4>; -+ interrupts = <30 IRQ_TYPE_LEVEL_LOW>; ++ interrupts = ; + interrupt-names = "host-wake"; + status = "okay"; + }; @@ -912,10 +934,31 @@ index 000000000..90d0594af + */ +&uart0 { + pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; -+ //dmas = <&dmac_peri 1 &dmac_peri 2>; -+ //dma-names = "tx", "rx"; ++ pinctrl-0 = <&uart0_xfer>, <&uart0_rts>, <&uart0_cts>; ++ ++// dmas = <&dmac_peri 1 &dmac_peri 2>; ++// dma-names = "tx", "rx"; + status = "okay"; ++ ++ bluetooth { ++ compatible = "brcm,bcm4330-bt"; ++ max-speed = <4000000>; ++ ++ shutdown-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; ++ device-wakeup-gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; ++ //interrupt-parent = <&gpio4>; ++ //interrupt-names = "host-wakeup"; ++ //interrupts = ; ++ clock-names = "lpo", "txco"; ++ clocks = <&hym8563>, <&bt_xtal>; ++ vddio-supply = <&vcca_18>; ++ vbat-supply = <&vcca_18>; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&bt_enable_h>, <&bt_wake_h>, <&bt_host_wake_h>, <&bt_reset_l>; ++ brcm,bt-pcm-int-params = [01 02 00 01 01]; ++ status = "okay"; ++ }; ++ +}; + +&uart1 { @@ -1000,6 +1043,10 @@ index 000000000..90d0594af + status = "okay"; +}; + ++&rga { ++ status = "okay"; ++}; ++ +&wdt { + status = "okay"; +};