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 \