From 0ae67991d15c367cec0e7408013e37a37c2800e4 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Sat, 5 Sep 2020 11:11:18 +0200 Subject: [PATCH] Cleanup Tinker Board patches (#846) * Remove rk3288-xt-q8l-v10.dts related patches We only support ASUS Tinker Board, so no need for those patches. * Remove unnecessary patches and rebase some for Tinker Board S Some patches only apply to the Tinker Board device tree. Rebase them to apply to the dtsi file so they apply for both boards, the Tinker Board and the Tinker Board S board. --- ...inker-Setup-the-Bluetooth-UART-pins.patch} | 34 +- ...88-tinker-Defining-the-SPI-interface.patch | 55 + ...kchip-enable-I2C1-4-on-rk3288-tinker.patch | 41 + ...8865-add-restart-handler-for-act8846.patch | 74 -- ...3288-miqi-Enabling-the-Mali-GPU-node.patch | 35 - ...-fix-the-regulator-s-voltage-range-o.patch | 45 - ...-add-the-MiQi-board-s-fan-definition.patch | 46 - ...rk3288-tinker-Enabling-SDIO-and-Wifi.patch | 98 -- ...88-tinker-Defined-the-I2C-interfaces.patch | 53 - ...88-tinker-Defining-the-SPI-interface.patch | 50 - ...dded-a-flag-to-disable-cache-flush-d.patch | 32 - .../linux/xt-q8l-v10-add-device-tree.patch | 1067 ----------------- .../linux/xt-q8l-v10-add-dts-makefile.patch | 13 - .../linux/xt-q8l-v10-remote-keymap.patch | 103 -- 14 files changed, 114 insertions(+), 1632 deletions(-) rename buildroot-external/board/asus/tinker/patches/linux/{1014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch => 0001-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch} (67%) create mode 100644 buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch create mode 100644 buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1-2-regulator-act8865-add-restart-handler-for-act8846.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1001-dts-rk3288-miqi-Enabling-the-Mali-GPU-node.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1003-ARM-dts-rockchip-add-the-MiQi-board-s-fan-definition.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1013-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/1024-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-device-tree.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-dts-makefile.patch delete mode 100644 buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-remote-keymap.patch diff --git a/buildroot-external/board/asus/tinker/patches/linux/1014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch b/buildroot-external/board/asus/tinker/patches/linux/0001-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch similarity index 67% rename from buildroot-external/board/asus/tinker/patches/linux/1014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch rename to buildroot-external/board/asus/tinker/patches/linux/0001-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch index 304936c64..4ae48c98e 100644 --- a/buildroot-external/board/asus/tinker/patches/linux/1014-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch +++ b/buildroot-external/board/asus/tinker/patches/linux/0001-ARM-DTS-rk3288-tinker-Setup-the-Bluetooth-UART-pins.patch @@ -1,7 +1,8 @@ -From 2c2e60256f2cbb2fce50a6317f85b1500efd1a6c Mon Sep 17 00:00:00 2001 +From 2ae3821fd824560ef2db3c87cfbec985177911f6 Mon Sep 17 00:00:00 2001 +Message-Id: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599249626.git.stefan@agner.ch> From: "Miouyouyou (Myy)" Date: Mon, 5 Nov 2018 22:03:26 +0100 -Subject: [PATCH] ARM: DTS: rk3288-tinker: Setup the Bluetooth UART pins +Subject: [PATCH 1/2] ARM: DTS: rk3288-tinker: Setup the Bluetooth UART pins The most essential being the RTS pin, which is clearly needed to upload the initial configuration into the Realtek Bluetooth @@ -39,24 +40,25 @@ echo 1 > value && sleep 1 Signed-off-by: Miouyouyou (Myy) +[move change to rk3288-tinker.dtsi] +Signed-off-by: Stefan Agner --- - arch/arm/boot/dts/rk3288-tinker.dts | 6 ++++++ - 1 file changed, 6 insertions(+) + arch/arm/boot/dts/rk3288-tinker.dtsi | 2 ++ + 1 file changed, 2 insertions(+) -diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts -index d4df13bed..b92e59c1e 100644 ---- a/arch/arm/boot/dts/rk3288-tinker.dts -+++ b/arch/arm/boot/dts/rk3288-tinker.dts -@@ -73,3 +73,9 @@ - status = "okay"; - supports-sdio; +diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi +index acfaa12ec239..284e7982925d 100644 +--- a/arch/arm/boot/dts/rk3288-tinker.dtsi ++++ b/arch/arm/boot/dts/rk3288-tinker.dtsi +@@ -492,6 +492,8 @@ &tsadc { }; -+ -+&uart0 { + + &uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; -+}; -+ + status = "okay"; + }; + -- -2.16.4 +2.28.0 diff --git a/buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch b/buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch new file mode 100644 index 000000000..11fe26d07 --- /dev/null +++ b/buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch @@ -0,0 +1,55 @@ +From fc25c993bf2feb6e66d55bf03eb725ec688e47eb Mon Sep 17 00:00:00 2001 +Message-Id: +In-Reply-To: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch> +References: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch> +From: "Miouyouyou (Myy)" +Date: Mon, 5 Nov 2018 22:15:14 +0100 +Subject: [PATCH 2/3] ARM: DTS: rk3288-tinker: Defining the SPI interface + +Taken from, and tested by @TonyMac32 . + +Well, the original one was tested by him but I had to adapt the +registers definitions to the new 64-bits LPAE-compliant syntax. + +Therefore that *might* break, along with a few other patches. + +Signed-off-by: Miouyouyou (Myy) +[move change to rk3288-tinker.dtsi] +Signed-off-by: Stefan Agner +--- + arch/arm/boot/dts/rk3288-tinker.dtsi | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi +index 284e7982925d..d6cc66ab5bb1 100644 +--- a/arch/arm/boot/dts/rk3288-tinker.dtsi ++++ b/arch/arm/boot/dts/rk3288-tinker.dtsi +@@ -485,6 +485,25 @@ &sdio0 { + status = "okay"; + }; + ++&spi2 { ++ max-freq = <50000000>; ++ status = "okay"; ++ ++ spidev@0 { ++ compatible = "rockchip,spi_tinker"; ++ reg = <0x0 0>; ++ spi-max-frequency = <50000000>; ++ spi-cpha = <1>; ++ }; ++ ++ spidev@1 { ++ compatible = "rockchip,spi_tinker"; ++ reg = <0x1>; ++ spi-max-frequency = <50000000>; ++ spi-cpha = <1>; ++ }; ++}; ++ + &tsadc { + rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */ + rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */ +-- +2.28.0 + diff --git a/buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch b/buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch new file mode 100644 index 000000000..d0e49cecc --- /dev/null +++ b/buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch @@ -0,0 +1,41 @@ +From 3a9d71847ae869ffdb2b0818aa86a36d57d96331 Mon Sep 17 00:00:00 2001 +Message-Id: <3a9d71847ae869ffdb2b0818aa86a36d57d96331.1599250914.git.stefan@agner.ch> +In-Reply-To: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch> +References: <2ae3821fd824560ef2db3c87cfbec985177911f6.1599250914.git.stefan@agner.ch> +From: Stefan Agner +Date: Fri, 4 Sep 2020 21:57:55 +0200 +Subject: [PATCH 3/3] ARM: dts: rockchip: enable I2C1/4 on rk3288-tinker + +Enable I2C devices which are accessible via 40-pin header. + +Signed-off-by: Stefan Agner +--- + arch/arm/boot/dts/rk3288-tinker.dtsi | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi +index d6cc66ab5bb1..7af5818ac77c 100644 +--- a/arch/arm/boot/dts/rk3288-tinker.dtsi ++++ b/arch/arm/boot/dts/rk3288-tinker.dtsi +@@ -344,10 +344,18 @@ regulator-state-mem { + }; + }; + ++&i2c1 { ++ status = "okay"; ++}; ++ + &i2c2 { + status = "okay"; + }; + ++&i2c4 { ++ status = "okay"; ++}; ++ + &i2c5 { + status = "okay"; + }; +-- +2.28.0 + diff --git a/buildroot-external/board/asus/tinker/patches/linux/1-2-regulator-act8865-add-restart-handler-for-act8846.patch b/buildroot-external/board/asus/tinker/patches/linux/1-2-regulator-act8865-add-restart-handler-for-act8846.patch deleted file mode 100644 index e1ca78624..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1-2-regulator-act8865-add-restart-handler-for-act8846.patch +++ /dev/null @@ -1,74 +0,0 @@ -Patches act8846 regulator providing the proper reset handle and exploit -the SIPC bit in GLB_POWER_OFF register. Mainly used to reset some rockchip -boards. - -Origin: - -diff --git a/drivers/regulator/act8865-regulator.c b/drivers/regulator/act8865-regulator.c -index 2ff73d7..836d10b 100644 ---- a/drivers/regulator/act8865-regulator.c -+++ b/drivers/regulator/act8865-regulator.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - /* - * ACT8600 Global Register Map. -@@ -133,6 +134,8 @@ - #define ACT8865_VOLTAGE_NUM 64 - #define ACT8600_SUDCDC_VOLTAGE_NUM 255 - -+#define ACT8846_SIPC_MASK 0x01 -+ - struct act8865 { - struct regmap *regmap; - int off_reg; -@@ -402,6 +405,22 @@ static void act8865_power_off(void) - while (1); - } - -+static int act8846_power_cycle(struct notifier_block *this, -+ unsigned long code, void *unused) -+{ -+ struct act8865 *act8846; -+ -+ act8846 = i2c_get_clientdata(act8865_i2c_client); -+ regmap_write(act8846->regmap, ACT8846_GLB_OFF_CTRL, ACT8846_SIPC_MASK); -+ -+ return NOTIFY_DONE; -+} -+ -+static struct notifier_block act8846_restart_handler = { -+ .notifier_call = act8846_power_cycle, -+ .priority = 129, -+}; -+ - static int act8865_pmic_probe(struct i2c_client *client, - const struct i2c_device_id *i2c_id) - { -@@ -484,6 +503,8 @@ static int act8865_pmic_probe(struct i2c_client *client, - } - - if (of_device_is_system_power_controller(dev->of_node)) { -+ int ret; -+ - if (!pm_power_off && (off_reg > 0)) { - act8865_i2c_client = client; - act8865->off_reg = off_reg; -@@ -492,6 +513,14 @@ static int act8865_pmic_probe(struct i2c_client *client, - } else { - dev_err(dev, "Failed to set poweroff capability, already defined\n"); - } -+ -+ if (type == ACT8846) { -+ act8865_i2c_client = client; -+ ret = register_restart_handler(&act8846_restart_handler); -+ if (ret) -+ pr_err("%s: cannot register restart handler, %d\n", -+ __func__, ret); -+ } - } - - /* Finally register devices */ diff --git a/buildroot-external/board/asus/tinker/patches/linux/1001-dts-rk3288-miqi-Enabling-the-Mali-GPU-node.patch b/buildroot-external/board/asus/tinker/patches/linux/1001-dts-rk3288-miqi-Enabling-the-Mali-GPU-node.patch deleted file mode 100644 index 937245275..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1001-dts-rk3288-miqi-Enabling-the-Mali-GPU-node.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 604ea7fc311af2b3a41e7fe3b4fbde0ee03dfb9c Mon Sep 17 00:00:00 2001 -From: Myy Miouyouyou -Date: Thu, 19 Oct 2017 21:09:50 +0200 -Subject: [PATCH 04/28] dts: rk3288: miqi: Enabling the Mali GPU node - -Why is the MiQi the only one left without a working mali GPU node ? - -Seriously, is there a rk3288 chipset WITHOUT a mali GPU ? Couldn't -they enable it once in the DTSI, instead of defining it as "disabled" -and enabling it in every DTS file ? - -Signed-off-by: Myy Miouyouyou ---- - arch/arm/boot/dts/rk3288-miqi.dts | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts -index 4d923aa6..3cd60674 100644 ---- a/arch/arm/boot/dts/rk3288-miqi.dts -+++ b/arch/arm/boot/dts/rk3288-miqi.dts -@@ -149,6 +149,11 @@ - status = "ok"; - }; - -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ - &hdmi { - ddc-i2c-bus = <&i2c5>; - status = "okay"; --- -2.11.0 - diff --git a/buildroot-external/board/asus/tinker/patches/linux/1002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch b/buildroot-external/board/asus/tinker/patches/linux/1002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch deleted file mode 100644 index 1ce526d67..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1002-ARM-dts-rockchip-fix-the-regulator-s-voltage-range-o.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 89e5763110ca77d68a4be00cd97a638adc2401d5 Mon Sep 17 00:00:00 2001 -From: Willy Tarreau -Date: Tue, 2 Aug 2016 08:31:00 +0200 -Subject: [PATCH 05/28] ARM: dts: rockchip: fix the regulator's voltage range - on MiQi board - -The board declared too narrow a voltage range for the CPU and GPU -regulators, preventing it from using the full CPU frequency range. -The regulators support 712500 to 1500000 microvolts. - -Signed-off-by: Willy Tarreau -(cherry picked from commit 95330e63a9295a2632cee8cce5db80677f01857a) ---- - arch/arm/boot/dts/rk3288-miqi.dts | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts -index 3cd60674..a1c3cdaa 100644 ---- a/arch/arm/boot/dts/rk3288-miqi.dts -+++ b/arch/arm/boot/dts/rk3288-miqi.dts -@@ -168,8 +168,8 @@ - fcs,suspend-voltage-selector = <1>; - reg = <0x40>; - regulator-name = "vdd_cpu"; -- regulator-min-microvolt = <850000>; -- regulator-max-microvolt = <1350000>; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; - regulator-always-on; - regulator-boot-on; - regulator-enable-ramp-delay = <300>; -@@ -182,8 +182,8 @@ - fcs,suspend-voltage-selector = <1>; - reg = <0x41>; - regulator-name = "vdd_gpu"; -- regulator-min-microvolt = <850000>; -- regulator-max-microvolt = <1350000>; -+ regulator-min-microvolt = <712500>; -+ regulator-max-microvolt = <1500000>; - regulator-always-on; - vin-supply = <&vcc_sys>; - }; --- -2.11.0 - diff --git a/buildroot-external/board/asus/tinker/patches/linux/1003-ARM-dts-rockchip-add-the-MiQi-board-s-fan-definition.patch b/buildroot-external/board/asus/tinker/patches/linux/1003-ARM-dts-rockchip-add-the-MiQi-board-s-fan-definition.patch deleted file mode 100644 index 771a45ef4..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1003-ARM-dts-rockchip-add-the-MiQi-board-s-fan-definition.patch +++ /dev/null @@ -1,46 +0,0 @@ -From c27e445527e949f3ef46d5326066196969c17d23 Mon Sep 17 00:00:00 2001 -From: Myy -Date: Sun, 12 Mar 2017 19:43:15 +0000 -Subject: [PATCH 06/28] ARM: dts: rockchip: add the MiQi board's fan definition - -The MiQi board is sold with an enclosure in which a fan is connected -to the second LED output, and configured by default in "heartbeat" -mode so that it rotates slowly and increases when the CPU load -increases, ensuring appropriate cooling by default. This LED output -is called "Fan" in the original kernel and connected to GPIO18 -(gpiochip 0, pin 18). Here we called it "miqi:green:fan" to stay -consistent with the kernel's naming conventions. - -It's worth noting that without this patch the fan doesn't work at -all, risking to make the board overheat. - -Fixes: 162718c (v4.7) -Cc: Heiko Stuebner -Signed-off-by: Willy Tarreau - -Signed-off-by: Myy ---- - arch/arm/boot/dts/rk3288-miqi.dts | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts -index a1c3cdaa..0e383595 100644 ---- a/arch/arm/boot/dts/rk3288-miqi.dts -+++ b/arch/arm/boot/dts/rk3288-miqi.dts -@@ -67,6 +67,13 @@ - leds { - compatible = "gpio-leds"; - -+ fan { -+ gpios = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>; -+ label = "miqi:green:fan"; -+ linux,default-trigger = "heartbeat"; -+ }; -+ -+ - work { - gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>; - label = "miqi:green:user"; --- -2.11.0 - diff --git a/buildroot-external/board/asus/tinker/patches/linux/1013-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch b/buildroot-external/board/asus/tinker/patches/linux/1013-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch deleted file mode 100644 index 18b6c9c0d..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1013-ARM-DTS-rk3288-tinker-Enabling-SDIO-and-Wifi.patch +++ /dev/null @@ -1,98 +0,0 @@ -From d5d5c53173c484a13cda62a537cbf75a5df4b0e4 Mon Sep 17 00:00:00 2001 -From: "Miouyouyou (Myy)" -Date: Mon, 5 Nov 2018 21:58:56 +0100 -Subject: [PATCH] ARM: DTS: rk3288-tinker: Enabling SDIO and Wifi - -Adding the appropriate nodes in order to exploit the WiFi capabilities -of the board. -Since these capabilities are provided through SDIO, and the SDIO -nodes were not defined, these were added too. - -These seems to depend on each other so they are added in one big -patch. - -Split if necessary. - -Signed-off-by: Miouyouyou (Myy) ---- - arch/arm/boot/dts/rk3288-tinker.dts | 62 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 62 insertions(+) - -diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts -index 1e43527aa..d4df13bed 100644 ---- a/arch/arm/boot/dts/rk3288-tinker.dts -+++ b/arch/arm/boot/dts/rk3288-tinker.dts -@@ -6,8 +6,70 @@ - /dts-v1/; - - #include "rk3288-tinker.dtsi" -+#include - - / { - model = "Rockchip RK3288 Asus Tinker Board"; - compatible = "asus,rk3288-tinker", "rockchip,rk3288"; -+ -+ /* This is essential to get SDIO devices working. -+ The Wifi depends on SDIO ! */ -+ sdio_pwrseq: sdio-pwrseq { -+ compatible = "mmc-pwrseq-simple"; -+ clocks = <&rk808 RK808_CLKOUT1>; -+ clock-names = "ext_clock"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&chip_enable_h>, <&wifi_enable_h>; -+ -+ /* -+ * On the module itself this is one of these (depending -+ * on the actual card populated): -+ * - SDIO_RESET_L_WL_REG_ON -+ * - PDN (power down when low) -+ */ -+ reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>, <&gpio4 27 GPIO_ACTIVE_LOW>; -+ }; -+ -+ wireless-wlan { -+ compatible = "wlan-platdata"; -+ rockchip,grf = <&grf>; -+ sdio_vref = <1800>; -+ status = "okay"; -+ wifi_chip_type = "8723bs"; -+ WIFI,host_wake_irq = <&gpio4 30 GPIO_ACTIVE_HIGH>; -+ }; -+}; -+ -+&io_domains { -+ wifi-supply = <&vcc_18>; -+}; -+ -+&pinctrl { -+ sdio-pwrseq { -+ wifi_enable_h: wifienable-h { -+ rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ chip_enable_h: chip-enable-h { -+ rockchip,pins = <4 27 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+}; -+ -+&sdio0 { -+ bus-width = <4>; -+ cap-sd-highspeed; -+ cap-sdio-irq; -+ clock-frequency = <50000000>; -+ clock-freq-min-max = <200000 50000000>; -+ disable-wp; -+ keep-power-in-suspend; -+ mmc-pwrseq = <&sdio_pwrseq>; -+ non-removable; -+ num-slots = <1>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; -+ sd-uhs-sdr104; -+ status = "okay"; -+ supports-sdio; - }; --- -2.16.4 - diff --git a/buildroot-external/board/asus/tinker/patches/linux/1017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch b/buildroot-external/board/asus/tinker/patches/linux/1017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch deleted file mode 100644 index b6d5ab7f6..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1017-ARM-DTS-rk3288-tinker-Defined-the-I2C-interfaces.patch +++ /dev/null @@ -1,53 +0,0 @@ -From a72e0749acad92df7b854e38e97e1dc7b4799abe Mon Sep 17 00:00:00 2001 -From: "Miouyouyou (Myy)" -Date: Mon, 5 Nov 2018 22:11:24 +0100 -Subject: [PATCH] ARM: DTS: rk3288-tinker: Defined the I2C interfaces - -And all the hardware behind. - -Taken from @TonyMac32, Butchered by @Miouyouyou . - -Signed-off-by: Miouyouyou (Myy) ---- - arch/arm/boot/dts/rk3288-tinker.dts | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts -index b92e59c1e..96d05fc6b 100644 ---- a/arch/arm/boot/dts/rk3288-tinker.dts -+++ b/arch/arm/boot/dts/rk3288-tinker.dts -@@ -40,6 +40,31 @@ - }; - }; - -+&i2c1 { -+ status = "okay"; -+}; -+ -+&i2c2 { -+ afc0:af-controller@0 { -+ status = "okay"; -+ compatible = "silicon touch,vm149C-v4l2-i2c-subdev"; -+ reg = <0x0 0x0c>; -+ }; -+ -+ eeprom:m24c08@50 { -+ compatible = "at,24c08"; -+ reg = <0x50>; -+ }; -+}; -+ -+&i2c3 { -+ status = "okay"; -+}; -+ -+&i2c4 { -+ status = "okay"; -+}; -+ - &io_domains { - wifi-supply = <&vcc_18>; - }; --- -2.16.4 - diff --git a/buildroot-external/board/asus/tinker/patches/linux/1018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch b/buildroot-external/board/asus/tinker/patches/linux/1018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch deleted file mode 100644 index 980b0a5e9..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1018-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch +++ /dev/null @@ -1,50 +0,0 @@ -From b24b8f83e150811ad54ee2a4843e44cd1421fafa Mon Sep 17 00:00:00 2001 -From: "Miouyouyou (Myy)" -Date: Mon, 5 Nov 2018 22:15:14 +0100 -Subject: [PATCH] ARM: DTS: rk3288-tinker: Defining the SPI interface - -Taken from, and tested by @TonyMac32 . - -Well, the original one was tested by him but I had to adapt the -registers definitions to the new 64-bits LPAE-compliant syntax. - -Therefore that *might* break, along with a few other patches. - -Signed-off-by: Miouyouyou (Myy) ---- - arch/arm/boot/dts/rk3288-tinker.dts | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts -index 96d05fc6b..17bfea298 100644 ---- a/arch/arm/boot/dts/rk3288-tinker.dts -+++ b/arch/arm/boot/dts/rk3288-tinker.dts -@@ -99,6 +99,25 @@ - supports-sdio; - }; - -+&spi2 { -+ max-freq = <50000000>; -+ status = "okay"; -+ -+ spidev@0 { -+ compatible = "rockchip,spi_tinker"; -+ reg = <0x0 0>; -+ spi-max-frequency = <50000000>; -+ spi-cpha = <1>; -+ }; -+ -+ spidev@1 { -+ compatible = "rockchip,spi_tinker"; -+ reg = <0x1>; -+ spi-max-frequency = <50000000>; -+ spi-cpha = <1>; -+ }; -+}; -+ - &uart0 { - pinctrl-names = "default"; - pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; --- -2.16.4 - diff --git a/buildroot-external/board/asus/tinker/patches/linux/1024-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch b/buildroot-external/board/asus/tinker/patches/linux/1024-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch deleted file mode 100644 index 31f37e42f..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/1024-arm-dts-veyron-Added-a-flag-to-disable-cache-flush-d.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 9177b30ab083dbda2bede3b3d61ef71ad4b1ffe0 Mon Sep 17 00:00:00 2001 -From: "Miouyouyou (Myy)" -Date: Thu, 1 Nov 2018 21:31:26 +0100 -Subject: [PATCH 2/2] arm: dts: veyron: Added a flag to disable cache flush - during reset - -Flushing the MMC cache of ASUS Chromebooks during initialization or -"recovery" generates 10 minutes hangup, according to @SolidHal. - -This is an adaptation of @SolidHal, in order to pinpoint the fix to -Veyron Chromebooks, and avoiding issues other RK3288 boards. - -Signed-off-by: Miouyouyou (Myy) ---- - arch/arm/boot/dts/rk3288-veyron.dtsi | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi -index 2075120cf..fa4951fd7 100644 ---- a/arch/arm/boot/dts/rk3288-veyron.dtsi -+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi -@@ -123,6 +123,7 @@ - mmc-hs200-1_8v; - mmc-pwrseq = <&emmc_pwrseq>; - non-removable; -+ no-recovery-cache-flush; - pinctrl-names = "default"; - pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; - }; --- -2.16.4 - diff --git a/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-device-tree.patch b/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-device-tree.patch deleted file mode 100644 index d60aeb7f0..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-device-tree.patch +++ /dev/null @@ -1,1067 +0,0 @@ -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..539e445b4 ---- /dev/null -+++ b/arch/arm/boot/dts/rk3288-xt-q8l-v10.dts -@@ -0,0 +1,1061 @@ -+/* -+ * Copyright (c) 2014, 2015 FUKAUMI Naoki -+ * 2018 Paolo Sabatino -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This file is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This file is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "rk3288.dtsi" -+#include -+ -+/ { -+ model = "XT-Q8L-V10-RK3288"; -+ compatible = "generic,xt-q8l-v10-rk3288", "rockchip,rk3288"; -+ -+ memory@0 { -+ reg = <0x0 0x0 0x0 0x80000000>; -+ device_type = "memory"; -+ }; -+ -+ /* -+ * Peripheral from original q8 device tree, currently no references -+ * for drivers in linux kernel. -+ rockchip-hsadc@ff080000 { -+ compatible = "rockchip-hsadc"; -+ reg = <0xff080000 0x4000>; -+ interrupts = <0x0 0x1f 0x4>; -+ #address-cells = <0x1>; -+ #size-cells = <0x0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <0x9a>; -+ clocks = <0x79 0x7 0x8 0x39>; -+ clock-names = "hclk_hsadc", "clk_hsadc_out", "clk_hsadc_ext"; -+ dmas = <0x9b 0x0>; -+ dma-names = "data"; -+ status = "disabled"; -+ }; -+ */ -+ -+ ext_gmac: external-gmac-clock { -+ compatible = "fixed-clock"; -+ #clock-cells = <0>; -+ clock-frequency = <125000000>; -+ clock-output-names = "ext_gmac"; -+ }; -+ -+ /* -+ * Handle the IR receiver using the gpio-ir-receiver kernel module. -+ * This works flawlessy, the original xt-q8l-v10 remote uses a NEC -+ * protocol and the keymap rc-xt-q8l-v10 has to be compiled in the -+ * kernel for the remote to work as an input device -+ */ -+ ir: ir-receiver { -+ compatible = "gpio-ir-receiver"; -+ gpios = <&gpio7 RK_PA0 GPIO_ACTIVE_LOW>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&ir_int>; -+ linux,rc-map-name = "rc-xt-q8l-v10"; -+ wakeup-source; -+ }; -+ -+ keys: gpio-keys { -+ compatible = "gpio-keys"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pwr_key>; -+ -+ button@0 { -+ gpio-key,wakeup = <1>; -+ gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>; -+ label = "GPIO Power"; -+ linux,code = ; -+ wakeup-source; -+ debounce-interval = <100>; -+ }; -+ -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ power { -+ /* -+ Power led is active high, but we set it here active low -+ so while there is mass storage access it turns red and -+ when it is idle is blue -+ */ -+ gpios = <&gpio7 2 GPIO_ACTIVE_LOW>; -+ label = "power"; -+ linux,default-trigger = "mmc0"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&power_led>; -+ }; -+ -+ }; -+ -+ vcc_sys: vsys-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc_sys"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-always-on; -+ regulator-boot-on; -+ }; -+ -+ vcc_sd: sdmmc-regulator { -+ compatible = "regulator-fixed"; -+ gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc_pwr>; -+ regulator-name = "vcc_sd"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ startup-delay-us = <100000>; -+ vin-supply = <&vcc_io>; -+ }; -+ -+ vcc_flash: flash-regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc_flash"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ /*gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_LOW>; -+ states = <1800000 0>, -+ <3300000 1>; -+ */ -+ vin-supply = <&vcc_io>; -+ startup-delay-us = <100000>; -+ }; -+ -+ vcc_host_5v: usb-host-regulator { -+ compatible = "regulator-fixed"; -+ gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>; -+ regulator-name = "vcc_host_5v"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-boot-on; -+ enable-active-high; -+ vin-supply = <&vcc_sys>; -+ }; -+ -+ -+ vcc_otg_5v: usb-otg-regulator { -+ compatible = "regulator-fixed"; -+ gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>; -+ regulator-name = "vcc_otg_5v"; -+ regulator-min-microvolt = <5000000>; -+ regulator-max-microvolt = <5000000>; -+ regulator-boot-on; -+ enable-active-high; -+ vin-supply = <&vcc_sys>; -+ }; -+ -+ /* -+ * Required power sequence to properly enable the wireless/bluetooth -+ * module connected to sdio0 -+ */ -+ 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>; -+ post-power-on-delay-ms = <100>; -+ }; -+ -+ emmc_pwrseq: emmc-pwrseq { -+ compatible = "mmc-pwrseq-emmc"; -+ pinctrl-0 = <&emmc_reset>; -+ pinctrl-names = "default"; -+ reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>; -+ }; -+ -+ /* -+ * Sound taken from tinkerboard device tree, adapted to q8. -+ */ -+ soundcard-hdmi { -+ compatible = "simple-audio-card"; -+ simple-audio-card,format = "i2s"; -+ simple-audio-card,name = "DW-I2S-HDMI"; -+ simple-audio-card,mclk-fs = <512>; -+ -+ simple-audio-card,codec { -+ sound-dai = <&hdmi>; -+ }; -+ -+ simple-audio-card,cpu { -+ sound-dai = <&i2s>; -+ }; -+ }; -+ -+ soundcard-spdif { -+ compatible = "simple-audio-card"; -+ simple-audio-card,name = "SPDIF"; -+ simple-audio-card,dai-link@1 { -+ -+ cpu { -+ sound-dai = <&spdif>; -+ }; -+ -+ codec { -+ sound-dai = <&spdif_out>; -+ }; -+ -+ }; -+ }; -+ -+ spdif_out: spdif-out { -+ compatible = "linux,spdif-dit"; -+ #sound-dai-cells = <0>; -+ }; -+ -+}; -+ -+ -+&io_domains { -+ status = "okay"; -+ -+ audio-supply = <&vcca_33>; -+ bb-supply = <&vcc_io>; -+ dvp-supply = <&vcc_18>; -+ flash0-supply = <&vcc_flash>; -+ flash1-supply = <&vcc_lan>; -+ gpio30-supply = <&vcc_io>; -+ gpio1830-supply = <&vcc_io>; -+ lcdc-supply = <&vcc_io>; -+ sdcard-supply = <&vccio_sd>; -+ wifi-supply = <&vcc_18>; -+}; -+ -+&cpu0 { -+ cpu0-supply = <&vdd_cpu>; -+}; -+ -+&gmac { -+ assigned-clocks = <&cru SCLK_MAC>; -+ assigned-clock-parents = <&ext_gmac>; -+ clock_in_out = "input"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>; -+ phy-supply = <&vcc_lan>; -+ phy-mode = "rgmii"; -+ snps,reset-active-low; -+ snps,reset-delays-us = <0 10000 1000000>; -+ snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>; -+ tx_delay = <0x30>; -+ rx_delay = <0x10>; -+ status = "ok"; -+}; -+ -+&hdmi { -+ ddc-i2c-bus = <&i2c5>; -+ status = "okay"; -+}; -+ -+&gpu { -+ mali-supply = <&vdd_gpu>; -+ status = "okay"; -+}; -+ -+&i2c0 { -+ clock-frequency = <400000>; -+ status = "okay"; -+ -+ vdd_cpu: syr827@40 { -+ compatible = "silergy,syr827"; -+ fcs,suspend-voltage-selector = <1>; -+ reg = <0x40>; -+ regulator-name = "vdd_cpu"; -+ regulator-min-microvolt = <850000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <8000>; -+ regulator-always-on; -+ regulator-boot-on; -+ vin-supply = <&vcc_sys>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ vdd_gpu: syr828@41 { -+ compatible = "silergy,syr828"; -+ fcs,suspend-voltage-selector = <1>; -+ reg = <0x41>; -+ regulator-name = "vdd_gpu"; -+ regulator-min-microvolt = <850000>; -+ regulator-max-microvolt = <1350000>; -+ regulator-ramp-delay = <8000>; -+ regulator-always-on; -+ vin-supply = <&vcc_sys>; -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ }; -+ -+ hym8563: hym8563@51 { -+ compatible = "haoyu,hym8563"; -+ reg = <0x51>; -+ #clock-cells = <0>; -+ clock-frequency = <32768>; -+ clock-output-names = "xin32k"; -+ interrupt-parent = <&gpio0>; -+ interrupts = <4 IRQ_TYPE_EDGE_FALLING>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&rtc_int>; -+ }; -+ -+ act8846: act8846@5a { -+ compatible = "active-semi,act8846"; -+ reg = <0x5a>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pmic_vsel>; -+ system-power-controller; -+ -+ vp1-supply = <&vcc_sys>; -+ vp2-supply = <&vcc_sys>; -+ vp3-supply = <&vcc_sys>; -+ vp4-supply = <&vcc_sys>; -+ inl1-supply = <&vcc_sys>; -+ inl2-supply = <&vcc_sys>; -+ inl3-supply = <&vcc_20>; -+ wakeup-source; -+ -+ regulators { -+ -+ /* -+ * Regulator controlling DDR memory - always on -+ */ -+ vcc_ddr: REG1 { -+ regulator-name = "vcc_ddr"; -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-always-on; -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * Regulator controlling various IO functions of the rk3288. -+ * Always on -+ */ -+ vcc_io: REG2 { -+ regulator-name = "vcc_io"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-always-on; -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * Regulator controlling various board logic. -+ * Always on. -+ * rk3288 electrical datasheet says it should have variable -+ * voltage depending upon dvfs -+ */ -+ vdd_log: REG3 { -+ regulator-name = "vdd_log"; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-always-on; -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * No reference for this on electrical datasheet. Maybe this -+ * is vcc_18? Maybe this is vcc18_flash on electrical datasheet. -+ * So far we disable it. -+ */ -+ vcc_20: REG4 { -+ regulator-name = "vcc_20"; -+ regulator-min-microvolt = <2000000>; -+ regulator-max-microvolt = <2000000>; -+ regulator-always-on; -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * This regulator controls SDIO. Electrical datasheet says -+ * this regulator can be operated between 1.8 and 3.3 volts -+ */ -+ vccio_sd: REG5 { -+ regulator-name = "vccio_sd"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-always-on; -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ regulator-suspend-microvolt = <3300000>; -+ }; -+ */ -+ }; -+ -+ /* -+ * Controlling HDMI and LCD controller on rk3288. 1.0 volts -+ * by reference -+ */ -+ vdd10_lcd: REG6 { -+ regulator-name = "vdd10_lcd"; -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <1000000>; -+ regulator-always-on; -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * From the rk3288 electrical datasheet, this regulator powers -+ * the rk1000 chip, which is absent in our device, but it -+ * is also supplying bluetooth, so we enable it. -+ */ -+ vcca_18: REG7 { -+ regulator-name = "vcca_18"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-always-on; -+ -+ /* -+ The regulator can be set off in suspend, but kernel 5.4 modifications -+ to enable suspend for ACT8865 device break the ACT8846 -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * This regulator controls, among other things, the SPDIF -+ * interface, so we enable it -+ */ -+ vcca_33: REG8 { -+ regulator-name = "vcca_33"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-always-on; // Turn this on to get SPDIF! -+ -+ /* -+ The regulator can be set off in suspend, but kernel 5.4 modifications -+ to enable suspend for ACT8865 device break the ACT8846 -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * LAN regulator -+ */ -+ vcc_lan: REG9 { -+ regulator-name = "vcc_lan"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * Regulator controlling PMU, USB PHY and rk3288 PLLs. -+ * 1.0 volts by reference -+ */ -+ vdd_10: REG10 { -+ regulator-name = "vdd_10"; -+ regulator-min-microvolt = <1000000>; -+ regulator-max-microvolt = <1000000>; -+ regulator-always-on; -+ -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * Regulator controlling Wifi over SDIO, SARADC and USB PHY. -+ * Better turn this on -+ */ -+ vccio_wl: vcc_18: REG11 { -+ regulator-name = "vcc_18"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-always-on; -+ -+ /* -+ * Broken in kernel 5.4 -+ regulator-state-mem { -+ regulator-on-in-suspend; -+ }; -+ */ -+ }; -+ -+ /* -+ * Not clear: apparently this controls HDMI and LCD controller -+ * on rk3368 devices. -+ * 1.8 volts by reference -+ */ -+ vcc18_lcd: REG12 { -+ regulator-name = "vcc18_lcd"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-always-on; -+ -+ /* -+ The regulator can be set off in suspend, but kernel 5.4 modifications -+ to enable suspend for ACT8865 device break the ACT8846 -+ regulator-state-mem { -+ regulator-off-in-suspend; -+ }; -+ */ -+ }; -+ }; -+ }; -+}; -+ -+&i2c1 { -+ status = "okay"; -+}; -+ -+&i2c2 { -+ status = "okay"; -+}; -+ -+&i2c4 { -+ -+ /* -+ * Here should go the RK1000 audio codec parts, but seems that -+ * there is no driver in linux kernel at the moment, so we can't -+ * describe it. -+ * Also, most important, there is no RK1000 on our board :) -+ * Datasheet is available here: -+ * http://dl.radxa.com/rock/docs/hw/ds/RK1000-S%20DATASHEET%20V14.pdf -+ */ -+ status = "okay"; -+ -+}; -+ -+&i2c5 { -+ status = "okay"; -+}; -+ -+&pinctrl { -+ -+ /* -+ These two lines here, these must be commented out! Otherwise for some reason the kernel -+ does not see the boot device anymore and will stay stuck in initramfs! -+ On the contrary, these are required by u-boot to keep the power holding so the device does not -+ automatically turns off after a small timeout -+ */ -+ /*pinctrl-names = "default";*/ -+ /*pinctrl-0 = <&pwr_hold>;*/ -+ -+ pcfg_output_high: pcfg-output-high { -+ output-high; -+ }; -+ -+ pcfg_output_low: pcfg-output-low { -+ output-low; -+ }; -+ -+ pcfg_wl: pcfg-wl { -+ bias-pull-up; -+ drive-strength = <8>; -+ }; -+ -+ pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { -+ bias-pull-up; -+ drive-strength = <8>; -+ }; -+ -+ pcfg_pull_none_8ma: pcfg-pull-none-8ma { -+ bias-disable; -+ drive-strength = <8>; -+ }; -+ -+ pcfg_wl_clk: pcfg-wl-clk { -+ bias-disable; -+ drive-strength = <12>; -+ }; -+ -+ pcfg_wl_int: pcfg-wl-int { -+ bias-pull-up; -+ }; -+ -+ act8846 { -+ -+ /* -+ * Original q8 device tree says: -+ * - gpio0 11 HIGH -> power hold -+ * - gpio7 1 LOW -> possibly pmic-vsel, we don't care -+ */ -+ pmic_vsel: pmic-vsel { -+ rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>; -+ }; -+ -+ pwr_hold: pwr-hold { -+ rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ gmac { -+ phy_int: phy-int { -+ rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ phy_pmeb: phy-pmeb { -+ rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ -+ phy_rst: phy-rst { -+ rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>; -+ }; -+ }; -+ -+ hym8563 { -+ rtc_int: rtc-int { -+ rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ keys { -+ pwr_key: pwr-key { -+ rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ leds { -+ power_led: power-led { -+ rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ ir { -+ ir_int: ir-int { -+ rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>; -+ }; -+ }; -+ -+ sdmmc { -+ -+ /* -+ * Copied from firefly board definition to give more drive to -+ * the sdmmc pins. The Q8 seems to be quite able to drive -+ * ultra high speed uSD cards, so we give a bit more energy -+ * to the gpio pins -+ */ -+ sdmmc_bus4: sdmmc-bus4 { -+ rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, -+ <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, -+ <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>, -+ <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; -+ }; -+ -+ sdmmc_clk: sdmmc-clk { -+ rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_8ma>; -+ }; -+ -+ sdmmc_cmd: sdmmc-cmd { -+ rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>; -+ }; -+ -+ sdmmc_pwr: sdmmc-pwr { -+ rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ }; -+ -+ usb_host1 { -+ host_vbus_drv: host-vbus-drv { -+ rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ }; -+ -+ usb_otg { -+ otg_vbus_drv: otg-vbus-drv { -+ rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ sdio0 { -+ wifi_enable_h: wifienable-h { -+ 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 { -+ rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ }; -+ -+ emmc { -+ -+ emmc_reset: emmc-reset { -+ rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; -+ }; -+ -+ }; -+ -+}; -+ -+&saradc { -+ vref-supply = <&vcc_18>; -+ status = "okay"; -+}; -+ -+&emmc { -+ -+ /* -+ * eMMC is a 52Mhz DDR device on q8 devices, so set it here. -+ * Setting default-sample-rate to 180 degrees is very important, -+ * otherwise the eMMC is not stable and may not be able to negotiate -+ * the right clock. -+ * Despite the code already seems to use 180 degree phase when -+ * MMC + 8bit bus is set, we need to set default phase here too. -+ * -+ * Huge hint came from this patch: -+ * https://patchwork.kernel.org/patch/11129183/ -+ * -+ */ -+ broken-cd; -+ bus-width = <8>; -+ cap-mmc-highspeed; -+ -+ disable-wp; -+ non-removable; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>; -+ -+ vmmc-supply = <&vcc_io>; -+ vqmmc-supply = <&vcc_flash>; -+ -+ mmc-pwrseq = <&emmc_pwrseq>; -+ mmc-ddr-1_8v; -+ rockchip,default-sample-phase = <180>; -+ -+ status = "okay"; -+}; -+ -+&sdmmc { -+ supports-sd; -+ -+ bus-width = <4>; -+ cap-mmc-highspeed; -+ cap-sd-highspeed; -+ cd-gpios = <&gpio6 RK_PC6 GPIO_ACTIVE_LOW>; -+ cd-debounce-delay-ms = <500>; -+ disable-wp; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; -+ vmmc-supply = <&vcc_sd>; -+ vqmmc-supply = <&vccio_sd>; -+ sd-uhs-sdr12; -+ sd-uhs-sdr25; -+ sd-uhs-sdr50; -+ sd-uhs-sdr104; -+ sd-uhs-ddr50; -+ -+ status = "okay"; -+}; -+ -+&sdio0 { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ bus-width = <4>; -+ mmc-pwrseq = <&sdio0_pwrseq>; -+ -+ vmmc-supply = <&vcc_io>; -+ vqmmc-supply = <&vcc_18>; // This must be the same as in io_domains, -+ // otherwise the mmc1 device won't be detected properly -+ -+ // clock-frequency = <50000000>; -+ // max-frequency = <50000000>; -+ -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>; -+ -+ cap-sdio-irq; -+ no-mmc; -+ no-sd; -+ cap-sd-highspeed; // required, otherwise does not work! -+ supports-sdio; -+ non-removable; -+ -+ keep-power-in-suspend; -+ disable-wp; -+ -+ -+ status = "okay"; -+ -+ brcmf: bcrmf@1 { -+ reg = <1>; -+ compatible = "brcm,bcm4329-fmac"; -+ interrupt-parent = <&gpio4>; -+ interrupts = <30 IRQ_TYPE_LEVEL_LOW>; -+ interrupt-names = "host-wake"; -+ status = "okay"; -+ }; -+ -+ //sd-uhs-sdr104; // required to be disabled, otherwise the device get -+ // detected, but there is no communication -+ -+}; -+ -+&spi0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>; -+ status = "okay"; -+}; -+ -+&tsadc { -+ rockchip,hw-tshut-mode = <0>; -+ rockchip,hw-tshut-polarity = <0>; -+ status = "okay"; -+}; -+ -+/* -+ * These dmas described here for uarts are present in original q8 board -+ * dts, so I replicate them here because documentation says that serial -+ * ports can have dmas. -+ * note: -+ * - uart0 is the serial port connected to the bluetooth module -+ * - uart2 is the onboard serial port -+ * -+ * As ok kernel 4.19 DMA for serial ports is disabled because it makes -+ * the ports unusable -+ * -+ */ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; -+ //dmas = <&dmac_peri 1 &dmac_peri 2>; -+ //dma-names = "tx", "rx"; -+ status = "okay"; -+}; -+ -+&uart1 { -+ //dmas = <&dmac_peri 3 &dmac_peri 4>; -+ //dma-names = "tx", "rx"; -+ status = "okay"; -+}; -+ -+&uart2 { -+ //dmas = <&dmac_bus_s 4 &dmac_bus_s 5>; -+ //dma-names = "tx", "rx"; -+ status = "okay"; -+}; -+ -+&uart3 { -+ //dmas = <&dmac_peri 7 &dmac_peri 8>; -+ //dma-names = "tx", "rx"; -+ status = "okay"; -+}; -+ -+&uart4 { -+ //dmas = <&dmac_peri 9 &dmac_peri 10>; -+ //dma-names = "tx", "rx"; -+ status = "disabled"; -+}; -+ -+/* -+ * Here usbphy* should have their proper reset lines described in rk3288.dtsi -+ * Describing resets for usb phy is important because otherwise the USB -+ * port gets stuck in case it goes into autosuspend: plugging any device -+ * when the port is autosuspended will actually kill the port itself and -+ * require a power cycle. -+ * This is required for the usbphy1 phy, nonetheless it is a good idea to -+ * specify the proper resources for all the phys though. -+ * The reference patch which works in conjuction with the reset lines: -+ * https://patchwork.kernel.org/patch/9469811/ -+ * -+ */ -+&usbphy { -+ status = "okay"; -+}; -+ -+&usb_host0_ehci { -+ dr_mode = "host"; -+ reg = <0x0 0xff500000 0x0 0x20000>; -+ status = "disable"; -+}; -+ -+&usb_host1 { -+ vbus-supply = <&vcc_host_5v>; -+ status = "okay"; -+}; -+ -+&usb_otg { -+ vbus-supply = <&vcc_otg_5v>; -+ status = "okay"; -+}; -+ -+/* -+ * Enable VPU services and complete the relative IOMMU configurations -+ */ -+&vopb { -+ status = "okay"; -+}; -+ -+&vopb_mmu { -+ status = "okay"; -+}; -+ -+&vopl { -+ status = "okay"; -+}; -+ -+&vopl_mmu { -+ status = "okay"; -+}; -+ -+&vpu_mmu { -+ status = "okay"; -+}; -+ -+&hevc_mmu { -+ status = "okay"; -+}; -+ -+&wdt { -+ status = "okay"; -+}; -+ -+// i2s bus is present on q8 device, enable it -+&i2s { -+ #sound-dai-cells = <0>; -+ status = "okay"; -+}; -+ -+// spdif is present on q8 device, enable it -+&spdif { -+ status = "okay"; -+}; -+ -+/* -+ * Redefine some thermals to give a bit more headroom (+5°C) -+ */ -+&cpu_alert0 { -+ temperature = <75000>; -+}; -+ -+&cpu_alert1 { -+ temperature = <80000>; -+}; -+ -+&gpu_alert0 { -+ temperature = <75000>; -+}; -+ -+/* -+ * Retouch the operating points for higher frequencies to reduce -+ * the voltage required -+ */ -+&cpu_opp_table { -+ opp-1512000000 { -+ opp-microvolt = <1250000>; -+ }; -+ -+ opp-1608000000 { -+ opp-microvolt = <1300000>; -+ }; -+ -+ /* -+ Remove the overclocking/turbo frequencies -+ */ -+ /delete-node/ opp@1704000000; -+ /delete-node/ opp@1800000000; -+ /delete-node/ opp@1896000000; -+ /delete-node/ opp@1920000000; -+ /delete-node/ opp@1992000000; -+ /delete-node/ opp@2016000000; -+ /delete-node/ opp@2040000000; -+ /delete-node/ opp@2064000000; -+ /delete-node/ opp@2088000000; -+ /delete-node/ opp@2112000000; -+ /delete-node/ opp@2136000000; -+ /delete-node/ opp@2160000000; -+ /delete-node/ opp@2184000000; -+ /delete-node/ opp@2208000000; -+ -+ -+}; -+ -+&gpiomem { -+ status = "okay"; -+}; diff --git a/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-dts-makefile.patch b/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-dts-makefile.patch deleted file mode 100644 index a07639fa9..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-add-dts-makefile.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index 37a3de760..6bcfceede 100644 ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -832,6 +832,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \ - rk3188-radxarock.dtb \ - rk3228-evb.dtb \ - rk3229-evb.dtb \ -+ rk3288-xt-q8l-v10.dtb \ - rk3229-xms6.dtb \ - rk3288-evb-act8846.dtb \ - rk3288-evb-rk808.dtb \ - diff --git a/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-remote-keymap.patch b/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-remote-keymap.patch deleted file mode 100644 index 5c30edcb9..000000000 --- a/buildroot-external/board/asus/tinker/patches/linux/xt-q8l-v10-remote-keymap.patch +++ /dev/null @@ -1,103 +0,0 @@ -diff --git a/drivers/media/rc/keymaps/rc-xt-q8l-v10.c b/drivers/media/rc/keymaps/rc-xt-q8l-v10.c -index e69de29..19c7d9e 100644 ---- /dev/null -+++ b/drivers/media/rc/keymaps/rc-xt-q8l-v10.c -@@ -0,0 +1,76 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+// rc-xt-q8l-v10.c - Keytable for xt-q8l-v10 tv box remote controller -+// -+// keymap imported from ir-keymaps.c -+// -+// Copyright (c) 2018 Paolo Sabatino -+ -+#include -+#include -+ -+/* -+ -+*/ -+ -+static struct rc_map_table xt_q8l_v10[] = { -+ -+ { 0xcc1d11, KEY_ENTER }, -+ { 0xcc1d00, KEY_POWER }, -+ { 0xcc1d15, KEY_PLAYPAUSE }, -+ { 0xcc1d16, KEY_STOP }, -+ { 0xcc1d06, KEY_PREVIOUSSONG }, -+ { 0xcc1d0a, KEY_NEXTSONG }, -+ { 0xcc1d41, KEY_1 }, -+ { 0xcc1d45, KEY_2 }, -+ { 0xcc1d4d, KEY_3 }, -+ { 0xcc1d42, KEY_4 }, -+ { 0xcc1d46, KEY_5 }, -+ { 0xcc1d4e, KEY_6 }, -+ { 0xcc1d43, KEY_7 }, -+ { 0xcc1d47, KEY_8 }, -+ { 0xcc1d4f, KEY_9 }, -+ { 0xcc1d49, KEY_0 }, -+ { 0xcc1d4a, KEY_BACKSPACE }, -+ { 0xcc1d48, KEY_F6 }, -+ { 0xcc1d03, KEY_HOME }, -+ { 0xcc1d0f, KEY_BACK }, -+ { 0xcc1d40, KEY_MENU }, -+ { 0xcc1d4c, KEY_TEXT }, -+ { 0xcc1d10, KEY_LEFT }, -+ { 0xcc1d12, KEY_RIGHT }, -+ { 0xcc1d44, KEY_DOWN }, -+ { 0xcc1d07, KEY_UP }, -+ { 0xcc1d02, KEY_VOLUMEDOWN }, -+ { 0xcc1d0c, KEY_MUTE }, -+ { 0xcc1d0e, KEY_VOLUMEUP }, -+ { 0xcc1d01, KEY_F1 }, -+ { 0xcc1d05, KEY_F2 }, -+ { 0xcc1d09, KEY_F3 }, -+ { 0xcc1d0d, KEY_F4 }, -+ -+}; -+ -+static struct rc_map_list xt_q8l_v10_map = { -+ .map = { -+ .scan = xt_q8l_v10, -+ .size = ARRAY_SIZE(xt_q8l_v10), -+ .rc_proto = RC_PROTO_NEC, /* Legacy IR type */ -+ .name = RC_MAP_XT_Q8L_V10, -+ } -+}; -+ -+static int __init init_rc_map_xt_q8l_v10(void) -+{ -+ return rc_map_register(&xt_q8l_v10_map); -+} -+ -+static void __exit exit_rc_map_xt_q8l_v10(void) -+{ -+ rc_map_unregister(&xt_q8l_v10_map); -+} -+ -+module_init(init_rc_map_xt_q8l_v10) -+module_exit(exit_rc_map_xt_q8l_v10) -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Paolo Sabatino"); -diff --git a/include/media/rc-map.h b/include/media/rc-map.h -index d621acadf..ad7abdb97 100644 ---- a/include/media/rc-map.h -+++ b/include/media/rc-map.h -@@ -278,6 +278,7 @@ struct rc_map *rc_map_get(const char *name); - #define RC_MAP_WINFAST_USBII_DELUXE "rc-winfast-usbii-deluxe" - #define RC_MAP_SU3000 "rc-su3000" - #define RC_MAP_XBOX_DVD "rc-xbox-dvd" -+#define RC_MAP_XT_Q8L_V10 "rc-xt-q8l-v10" - #define RC_MAP_X96MAX "rc-x96max" - - /* -diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile -index 5b1399af6..ec9ce1206 100644 ---- a/drivers/media/rc/keymaps/Makefile -+++ b/drivers/media/rc/keymaps/Makefile -@@ -117,4 +117,5 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ - rc-winfast-usbii-deluxe.o \ - rc-su3000.o \ - rc-xbox-dvd.o \ -+ rc-xt-q8l-v10.o \ - rc-x96max.o \