summaryrefslogtreecommitdiff
path: root/target/linux
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2022-12-08 12:02:03 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2022-12-15 15:30:15 +0100
commit767514154be31670df3f072c44537af64993a6a4 (patch)
tree0f6b657272cefbe5e3bfa31bde711de6fad001d2 /target/linux
parent63896d07d312a57fa4033b0826fd3317816b500d (diff)
add support for rockpi4-plus
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/Config.in.kernelcfg2
-rw-r--r--target/linux/Config.in.kernelversion11
-rw-r--r--target/linux/patches/5.15.81/add-board-rock-pi-4c-plus.patch738
-rw-r--r--target/linux/patches/5.15.81/darwin-dtc.patch (renamed from target/linux/patches/5.15.71/darwin-dtc.patch)0
-rw-r--r--target/linux/patches/5.15.81/darwin-file2alias.patch (renamed from target/linux/patches/5.15.71/darwin-file2alias.patch)0
-rw-r--r--target/linux/patches/5.15.81/dtc-noyaml.patch (renamed from target/linux/patches/5.15.71/dtc-noyaml.patch)0
-rw-r--r--target/linux/patches/5.15.81/nds32-ag101p.patch (renamed from target/linux/patches/5.15.71/nds32-ag101p.patch)0
-rw-r--r--target/linux/patches/5.15.81/or1k-more-ram.patch (renamed from target/linux/patches/5.15.71/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/5.15.81/relocs.patch (renamed from target/linux/patches/5.15.71/relocs.patch)0
-rw-r--r--target/linux/patches/5.15.81/startup.patch (renamed from target/linux/patches/5.15.71/startup.patch)0
-rw-r--r--target/linux/patches/5.19.12/darwin-dtc.patch26
-rw-r--r--target/linux/patches/5.19.12/darwin-file2alias.patch14
-rw-r--r--target/linux/patches/5.19.12/dtc-noyaml.patch16
-rw-r--r--target/linux/patches/5.19.12/or1k-more-ram.patch12
-rw-r--r--target/linux/patches/5.19.12/relocs.patch2698
-rw-r--r--target/linux/patches/5.19.12/startup.patch25
-rw-r--r--target/linux/patches/stable-4.4-rockpi4/serial-baudrate.patch23
17 files changed, 771 insertions, 2794 deletions
diff --git a/target/linux/Config.in.kernelcfg b/target/linux/Config.in.kernelcfg
index 5e09b182e..3f70025a3 100644
--- a/target/linux/Config.in.kernelcfg
+++ b/target/linux/Config.in.kernelcfg
@@ -51,6 +51,8 @@ config ADK_TARGET_LINUX_KERNEL_DEFCONFIG
default "stm32_defconfig" if ADK_TARGET_SYSTEM_ST_STM32F746G
default "nommu_k210_defconfig" if ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
default "loongson3_defconfig" if ADK_TARGET_SYSTEM_QEMU_LOONGARCH
+ default "defconfig" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default "rockpi4_defconfig" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
default ""
config ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
diff --git a/target/linux/Config.in.kernelversion b/target/linux/Config.in.kernelversion
index 2a62542c2..b5b1614f0 100644
--- a/target/linux/Config.in.kernelversion
+++ b/target/linux/Config.in.kernelversion
@@ -34,8 +34,8 @@ config ADK_TARGET_LINUX_KERNEL_VERSION_GIT
select ADK_TARGET_LINUX_KERNEL_IMAGE if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
select ADK_TARGET_LINUX_KERNEL_IMAGE if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
-config ADK_TARGET_LINUX_KERNEL_VERSION_5_19
- bool "5.19.12"
+config ADK_TARGET_LINUX_KERNEL_VERSION_6_0
+ bool "6.0.11"
depends on !ADK_TARGET_ARCH_AVR32
depends on !ADK_TARGET_ARCH_BFIN
depends on !ADK_TARGET_ARCH_CRIS
@@ -43,7 +43,7 @@ config ADK_TARGET_LINUX_KERNEL_VERSION_5_19
depends on !ADK_TARGET_ARCH_METAG
config ADK_TARGET_LINUX_KERNEL_VERSION_5_15
- bool "5.15.71"
+ bool "5.15.81"
depends on !ADK_TARGET_ARCH_AVR32
depends on !ADK_TARGET_ARCH_BFIN
depends on !ADK_TARGET_ARCH_CRIS
@@ -177,6 +177,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO
default "https://git.phytec.de/git/linux-ti.git" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "https://github.com/kalray/linux_coolidge.git" if ADK_TARGET_ARCH_KVX
default "https://github.com/shenki/linux-lm32.git" if ADK_TARGET_ARCH_LM32
+ default "https://github.com/radxa/kernel.git" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git"
help
GIT repository to use.
@@ -194,6 +195,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO_NAME
default "phytec" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "clearfog" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default "fslc" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default "radxa" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "linus"
config ADK_TARGET_LINUX_KERNEL_GIT
@@ -207,6 +209,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT
default "902739f3353150ac9eb69ad995098f3079d862a3" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default "c85fbc86c61a8c8fd45ab1fe3d1bdd2df12f7962" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default "8624998967676862843aed1f8ee2141e98987f81" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+ default "stable-4.4-rockpi4" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "v4.4.52-phy" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "loongarch-next" if ADK_TARGET_LINUX_ARCH_LOONGARCH
@@ -215,6 +218,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_VER
depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT
default "5.19" if ADK_TARGET_LINUX_ARCH_LOONGARCH
default "5.10.110" if ADK_TARGET_BOARD_BCM28XX
+ default "5.10.110" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "4.4.37" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
default "4.4.52" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "2.6.33" if ADK_TARGET_SYSTEM_KINETIS_K70
@@ -227,6 +231,7 @@ config ADK_TARGET_LINUX_KERNEL_GIT_TYPE
depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT
default "branch" if ADK_TARGET_LINUX_ARCH_LOONGARCH
default "branch" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
+ default "branch" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "hash"
config ADK_TARGET_LINUX_KERNEL_NO_MIRROR
diff --git a/target/linux/patches/5.15.81/add-board-rock-pi-4c-plus.patch b/target/linux/patches/5.15.81/add-board-rock-pi-4c-plus.patch
new file mode 100644
index 000000000..8dea9f52d
--- /dev/null
+++ b/target/linux/patches/5.15.81/add-board-rock-pi-4c-plus.patch
@@ -0,0 +1,738 @@
+diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
+index 7eb135a5143f..1574279e61e8 100644
+--- a/arch/arm64/boot/dts/rockchip/Makefile
++++ b/arch/arm64/boot/dts/rockchip/Makefile
+@@ -39,6 +39,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb
+ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4a.dtb
+ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4b.dtb
+ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4c.dtb
++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock-pi-4c-plus.dtb
+ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock960.dtb
+ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64-v2.dtb
+ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64.dtb
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c-plus.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c-plus.dts
+new file mode 100644
+index 000000000000..9fc8d5baba54
+--- /dev/null
++++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c-plus.dts
+@@ -0,0 +1,720 @@
++// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
++/*
++ * Copyright (c) 2022 Fuzhou Rockchip Electronics Co., Ltd
++ * Copyright (c) 2022 Radxa Limited
++ */
++
++/dts-v1/;
++#include <dt-bindings/input/linux-event-codes.h>
++#include <dt-bindings/pwm/pwm.h>
++#include "rk3399.dtsi"
++#include "rk3399-opp.dtsi"
++
++/ {
++ model = "Radxa ROCK Pi 4C+";
++ compatible = "radxa,rockpi4c-plus", "radxa,rockpi4", "rockchip,rk3399";
++
++ aliases {
++ mmc0 = &sdmmc;
++ mmc1 = &sdhci;
++ mmc2 = &sdio0;
++ };
++
++ chosen {
++ stdout-path = "serial2:115200n8";
++ };
++
++ clkin_gmac: external-gmac-clock {
++ compatible = "fixed-clock";
++ clock-frequency = <125000000>;
++ clock-output-names = "clkin_gmac";
++ #clock-cells = <0>;
++ };
++
++ vcc_lan: vcc3v3-phy-regulator {
++ compatible = "regulator-fixed";
++ regulator-name = "vcc_lan";
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc5v0_sys: vcc-sys {
++ compatible = "regulator-fixed";
++ regulator-name = "vcc5v0_sys";
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++ };
++
++ vbus_host: vbus-host {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&usb1_en_oc>;
++ regulator-name = "vbus_host"; /* HOST-5V */
++ regulator-always-on;
++ regulator-boot-on;
++ vin-supply = <&vcc5v0_usb2>;
++ };
++
++ vcc5v0_typec: vcc5v0-typec-regulator {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&vcc5v0_typec_en>;
++ regulator-name = "vcc5v0_typec";
++ regulator-always-on;
++ vin-supply = <&vcc5v0_sys>;
++ };
++
++ virtual_pd: virtual-pd {
++ status = "disabled";
++ compatible = "linux,extcon-pd-virtual";
++ /* 0: positive, 1: negative*/
++ vpd,init-flip = <0>;
++ /* 0: u2, 1: u3*/
++ vpd,init-ss = <1>;
++ /* 0: dfp, 1: ufp, 2: dp 3: dp/ufp */
++ vpd,init-mode = <2>;
++ hpd-gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&hpd_en>;
++ dp-pwr-supply = <&vcc3v3_sys>;
++ };
++
++ vcc_0v9: vcc-0v9 {
++ compatible = "regulator-fixed";
++ regulator-name = "vcc_0v9";
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <900000>;
++ regulator-max-microvolt = <900000>;
++ vin-supply = <&vcc3v3_sys>;
++ };
++
++ vcc3v3_pcie: vcc3v3-pcie-regulator {
++ compatible = "regulator-fixed";
++ enable-active-high;
++ gpio = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pcie_drv>;
++ regulator-boot-on;
++ regulator-always-on;
++ regulator-name = "vcc3v3_pcie";
++ vin-supply = <&vcc5v0_sys>;
++ };
++
++ sdio_pwrseq: sdio-pwrseq {
++ compatible = "mmc-pwrseq-simple";
++ clocks = <&rk809 1>;
++ clock-names = "ext_clock";
++ pinctrl-names = "default";
++ pinctrl-0 = <&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 = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
++ };
++
++ wireless_wlan: wireless-wlan {
++ compatible = "wlan-platdata";
++ rockchip,grf = <&grf>;
++ wifi_chip_type = "ap6256";
++ sdio_vref = <1800>;
++ WIFI,host_wake_irq = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
++ status = "okay";
++ };
++
++ gpio-leds {
++ compatible = "gpio-leds";
++ status = "okay";
++
++ user-led1 {
++ gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
++ linux,default-trigger = "default-on";
++ default-state = "on";
++ };
++
++ user-led2 {
++ gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "heartbeat";
++ default-state = "on";
++ };
++ };
++};
++
++&cdn_dp {
++ extcon = <&virtual_pd>;
++ status = "disabled";
++};
++
++&cpu_l0 {
++ cpu-supply = <&vdd_cpu_l>;
++};
++
++&cpu_l1 {
++ cpu-supply = <&vdd_cpu_l>;
++};
++
++&cpu_l2 {
++ cpu-supply = <&vdd_cpu_l>;
++};
++
++&cpu_l3 {
++ cpu-supply = <&vdd_cpu_l>;
++};
++
++&cpu_b0 {
++ cpu-supply = <&vdd_cpu_b>;
++};
++
++&cpu_b1 {
++ cpu-supply = <&vdd_cpu_b>;
++};
++
++&gmac {
++ assigned-clocks = <&cru SCLK_RMII_SRC>;
++ assigned-clock-parents = <&clkin_gmac>;
++ clock_in_out = "input";
++ phy-supply = <&vcc_lan>;
++ phy-mode = "rgmii";
++ pinctrl-names = "default";
++ pinctrl-0 = <&rgmii_pins>;
++ snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
++ snps,reset-active-low;
++ snps,reset-delays-us = <0 10000 50000>;
++ tx_delay = <0x28>;
++ rx_delay = <0x11>;
++ status = "okay";
++};
++
++&i2c0 {
++ status = "okay";
++ i2c-scl-falling-time-ns = <30>;
++ i2c-scl-rising-time-ns = <180>;
++ clock-frequency = <400000>;
++
++ rk809: pmic@20 {
++ compatible = "rockchip,rk809";
++ reg = <0x20>;
++ interrupt-parent = <&gpio1>;
++ interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
++ #clock-cells = <1>;
++ clock-output-names = "rk808-clkout1", "rk808-clkout2";
++ pinctrl-names = "default";
++ pinctrl-0 = <&pmic_int_l>;
++ rockchip,system-power-controller;
++ wakeup-source;
++
++ vcc1-supply = <&vcc5v0_sys>;
++ vcc2-supply = <&vcc5v0_sys>;
++ vcc3-supply = <&vcc5v0_sys>;
++ vcc4-supply = <&vcc5v0_sys>;
++ vcc5-supply = <&vcc_buck5>;
++ vcc6-supply = <&vcc_buck5>;
++ vcc7-supply = <&vcc5v0_sys>;
++ vcc8-supply = <&vcc3v3_sys>;
++ vcc9-supply = <&vcc5v0_sys>;
++
++ regulators {
++ vdd_log: DCDC_REG1 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <750000>;
++ regulator-max-microvolt = <1350000>;
++ regulator-initial-mode = <0x2>;
++ regulator-name = "vdd_log";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ regulator-suspend-microvolt = <900000>;
++ };
++ };
++
++ vdd_cpu_l: DCDC_REG2 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <750000>;
++ regulator-max-microvolt = <1350000>;
++ regulator-ramp-delay = <6001>;
++ regulator-initial-mode = <0x2>;
++ regulator-name = "vdd_cpu_l";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc_ddr: DCDC_REG3 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-name = "vcc_ddr";
++ regulator-initial-mode = <0x2>;
++ regulator-state-mem {
++ regulator-on-in-suspend;
++ };
++ };
++
++ vcc3v3_sys: DCDC_REG4 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-initial-mode = <0x2>;
++ regulator-name = "vcc3v3_sys";
++ regulator-state-mem {
++ regulator-on-in-suspend;
++ regulator-suspend-microvolt = <3300000>;
++ };
++ };
++
++ vcc_buck5: DCDC_REG5 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ regulator-name = "vcc_buck5";
++ regulator-state-mem {
++ regulator-on-in-suspend;
++ regulator-suspend-microvolt = <3300000>;
++ };
++ };
++
++ vcca_0v9: LDO_REG1 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <900000>;
++ regulator-max-microvolt = <900000>;
++ regulator-name = "vcca_0v9";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc_1v8: LDO_REG2 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++
++ regulator-name = "vcc_1v8";
++ regulator-state-mem {
++ regulator-on-in-suspend;
++ regulator-suspend-microvolt = <1800000>;
++ };
++ };
++
++ vcc0v9_soc: LDO_REG3 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <900000>;
++ regulator-max-microvolt = <900000>;
++
++ regulator-name = "vcc0v9_soc";
++ regulator-state-mem {
++ regulator-on-in-suspend;
++ regulator-suspend-microvolt = <900000>;
++ };
++ };
++
++ vcca_1v8: LDO_REG4 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <1850000>;
++ regulator-max-microvolt = <1850000>;
++
++ regulator-name = "vcca_1v8";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc_mipi: LDO_REG5 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <1500000>;
++ regulator-max-microvolt = <1500000>;
++
++ regulator-name = "vcc_mipi";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc_1v5: LDO_REG6 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <1500000>;
++ regulator-max-microvolt = <1500000>;
++
++ regulator-name = "vcc_1v5";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc_3v0: LDO_REG7 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <3000000>;
++ regulator-max-microvolt = <3000000>;
++
++ regulator-name = "vcc_3v0";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vccio_sd: LDO_REG8 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <3300000>;
++
++ regulator-name = "vccio_sd";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc_cam: LDO_REG9 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++
++ regulator-name = "vcc_cam";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vcc5v0_usb2: SWITCH_REG1 {
++ regulator-min-microvolt = <5000000>;
++ regulator-max-microvolt = <5000000>;
++
++ regulator-name = "vcc5v0_usb2.0";
++ regulator-state-mem {
++ regulator-on-in-suspend;
++ regulator-suspend-microvolt = <5000000>;
++ };
++ };
++
++ lcd_3v3: SWITCH_REG2 {
++ regulator-always-on;
++ regulator-boot-on;
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++
++ regulator-name = "lcd_3v3";
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++ };
++ };
++
++ vdd_cpu_b: syr827@40 {
++ compatible = "silergy,syr827";
++ reg = <0x40>;
++ regulator-compatible = "fan53555-reg";
++ pinctrl-0 = <&vsel1_gpio>;
++ vsel-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
++ regulator-name = "vdd_cpu_b";
++ regulator-min-microvolt = <712500>;
++ regulator-max-microvolt = <1500000>;
++ regulator-ramp-delay = <1000>;
++ fcs,suspend-voltage-selector = <1>;
++ regulator-always-on;
++ regulator-boot-on;
++ vin-supply = <&vcc5v0_sys>;
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++
++ vdd_gpu: syr828@41 {
++ compatible = "silergy,syr828";
++ reg = <0x41>;
++ regulator-compatible = "fan53555-reg";
++ pinctrl-0 = <&vsel2_gpio>;
++ vsel-gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
++ regulator-name = "vdd_gpu";
++ regulator-min-microvolt = <712500>;
++ regulator-max-microvolt = <1500000>;
++ regulator-ramp-delay = <1000>;
++ fcs,suspend-voltage-selector = <1>;
++ regulator-always-on;
++ regulator-boot-on;
++ vin-supply = <&vcc5v0_sys>;
++ regulator-initial-mode = <1>; /* 1:force PWM 2:auto */
++ regulator-state-mem {
++ regulator-off-in-suspend;
++ };
++ };
++};
++
++&io_domains {
++ status = "okay";
++
++ bt656-supply = <&vcc_3v0>;
++ audio-supply = <&vcca_1v8>;
++ sdmmc-supply = <&vccio_sd>;
++ gpio1830-supply = <&vcc_3v0>;
++};
++
++&pmu_io_domains {
++ status = "okay";
++
++ pmu1830-supply = <&vcc_3v0>;
++};
++
++&sdmmc {
++ bus-width = <4>;
++ cap-mmc-highspeed;
++ cap-sd-highspeed;
++ card-detect-delay = <800>;
++ disable-wp;
++ pinctrl-names = "default";
++ pinctrl-0 = <&sdmmc_clk &sdmmc_cd &sdmmc_cmd &sdmmc_bus4>;
++ vqmmc-supply = <&vccio_sd>;
++ status = "okay";
++};
++
++&sdio0 {
++ max-frequency = <200000000>;
++ supports-sdio;
++ bus-width = <4>;
++ disable-wp;
++ cap-sd-highspeed;
++ cap-sdio-irq;
++ 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";
++};
++
++&emmc_phy {
++ status = "okay";
++};
++
++&sdhci {
++ bus-width = <8>;
++ mmc-hs400-1_8v;
++ mmc-hs400-enhanced-strobe;
++ non-removable;
++ status = "okay";
++};
++
++&tcphy0 {
++ status = "okay";
++};
++
++&tcphy1 {
++ status = "okay";
++};
++
++&u2phy0 {
++ status = "okay";
++
++ u2phy0_otg: otg-port {
++ status = "okay";
++ };
++
++ u2phy0_host: host-port {
++ phy-supply = <&vbus_host>;
++ status = "okay";
++ };
++};
++
++&u2phy1 {
++ status = "okay";
++
++ u2phy1_otg: otg-port {
++ status = "okay";
++ };
++
++ u2phy1_host: host-port {
++ phy-supply = <&vbus_host>;
++ status = "okay";
++ };
++};
++
++&uart0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
++};
++
++&uart2 {
++ status = "okay";
++};
++
++&usb_host0_ehci {
++ status = "okay";
++};
++
++&usb_host0_ohci {
++ status = "okay";
++};
++
++&usb_host1_ehci {
++ status = "okay";
++};
++
++&usb_host1_ohci {
++ status = "okay";
++};
++
++&usbdrd3_0 {
++ status = "okay";
++};
++
++&usbdrd_dwc3_0 {
++ status = "okay";
++ extcon = <&u2phy0>;
++ dr_mode = "otg";
++};
++
++&usbdrd3_1 {
++ status = "okay";
++};
++
++&usbdrd_dwc3_1 {
++ status = "okay";
++ dr_mode = "host";
++};
++
++&vopb {
++ status = "okay";
++};
++
++&vopb_mmu {
++ status = "okay";
++};
++
++&vopl {
++ status = "okay";
++};
++
++&vopl_mmu {
++ status = "okay";
++};
++
++&hdmi {
++ pinctrl-names = "default";
++ pinctrl-0 = <&hdmi_i2c_xfer>, <&hdmi_cec>;
++ status = "okay";
++};
++
++&hdmi_sound {
++ status = "okay";
++};
++
++&hdmi_in_vopb {
++ status = "okay";
++};
++
++&hdmi_in_vopl {
++ status = "okay";
++};
++
++&i2c1 {
++ i2c-scl-rising-time-ns = <450>;
++ i2c-scl-falling-time-ns = <15>;
++ status = "okay";
++};
++
++&pcie_phy {
++ status = "okay";
++};
++
++&pcie0 {
++ ep-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
++ num-lanes = <4>;
++ pinctrl-0 = <&pcie_clkreqnb_cpm>;
++ pinctrl-names = "default";
++ vpcie0v9-supply = <&vcc_0v9>;
++ vpcie1v8-supply = <&vcc_1v8>;
++ vpcie3v3-supply = <&vcc3v3_pcie>;
++ status = "okay";
++};
++
++&pinctrl {
++ hpd {
++ hpd_en: hpd-en {
++ rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
++ };
++ };
++
++ pmic {
++ pmic_int_l: pmic-int-l {
++ rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
++ };
++
++ vsel1_gpio: vsel1-gpio {
++ rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
++ };
++
++ vsel2_gpio: vsel2-gpio {
++ rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
++ };
++ };
++
++ sdmmc {
++ sdmmc_bus4: sdmmc-bus4 {
++ rockchip,pins = <4 8 1 &pcfg_pull_up_8ma>,
++ <4 9 1 &pcfg_pull_up_8ma>,
++ <4 10 1 &pcfg_pull_up_8ma>,
++ <4 11 1 &pcfg_pull_up_8ma>;
++ };
++
++ sdmmc_clk: sdmmc-clk {
++ rockchip,pins = <4 12 1 &pcfg_pull_none_18ma>;
++ };
++
++ sdmmc_cmd: sdmmc-cmd {
++ rockchip,pins = <4 13 1 &pcfg_pull_up_8ma>;
++ };
++ };
++
++ usb-typec {
++ vcc5v0_typec_en: vcc5v0-typec-en {
++ rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
++ };
++ };
++
++ vbus_host {
++ usb1_en_oc: usb1-en-oc {
++ rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
++ };
++ };
++
++ pcie {
++ pcie_drv: pcie-drv {
++ rockchip,pins =
++ <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
++ };
++ };
++
++ sdio-pwrseq {
++ wifi_enable_h: wifi-enable-h {
++ rockchip,pins =
++ <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
++ };
++ };
++};
diff --git a/target/linux/patches/5.15.71/darwin-dtc.patch b/target/linux/patches/5.15.81/darwin-dtc.patch
index 0cdc23ab4..0cdc23ab4 100644
--- a/target/linux/patches/5.15.71/darwin-dtc.patch
+++ b/target/linux/patches/5.15.81/darwin-dtc.patch
diff --git a/target/linux/patches/5.15.71/darwin-file2alias.patch b/target/linux/patches/5.15.81/darwin-file2alias.patch
index fdbc598a8..fdbc598a8 100644
--- a/target/linux/patches/5.15.71/darwin-file2alias.patch
+++ b/target/linux/patches/5.15.81/darwin-file2alias.patch
diff --git a/target/linux/patches/5.15.71/dtc-noyaml.patch b/target/linux/patches/5.15.81/dtc-noyaml.patch
index 759bb01f7..759bb01f7 100644
--- a/target/linux/patches/5.15.71/dtc-noyaml.patch
+++ b/target/linux/patches/5.15.81/dtc-noyaml.patch
diff --git a/target/linux/patches/5.15.71/nds32-ag101p.patch b/target/linux/patches/5.15.81/nds32-ag101p.patch
index a8beea478..a8beea478 100644
--- a/target/linux/patches/5.15.71/nds32-ag101p.patch
+++ b/target/linux/patches/5.15.81/nds32-ag101p.patch
diff --git a/target/linux/patches/5.15.71/or1k-more-ram.patch b/target/linux/patches/5.15.81/or1k-more-ram.patch
index de848c838..de848c838 100644
--- a/target/linux/patches/5.15.71/or1k-more-ram.patch
+++ b/target/linux/patches/5.15.81/or1k-more-ram.patch
diff --git a/target/linux/patches/5.15.71/relocs.patch b/target/linux/patches/5.15.81/relocs.patch
index 5bcd974c7..5bcd974c7 100644
--- a/target/linux/patches/5.15.71/relocs.patch
+++ b/target/linux/patches/5.15.81/relocs.patch
diff --git a/target/linux/patches/5.15.71/startup.patch b/target/linux/patches/5.15.81/startup.patch
index eef481021..eef481021 100644
--- a/target/linux/patches/5.15.71/startup.patch
+++ b/target/linux/patches/5.15.81/startup.patch
diff --git a/target/linux/patches/5.19.12/darwin-dtc.patch b/target/linux/patches/5.19.12/darwin-dtc.patch
deleted file mode 100644
index 0cdc23ab4..000000000
--- a/target/linux/patches/5.19.12/darwin-dtc.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Nur linux-4.19.132.orig/scripts/dtc/dtc.h linux-4.19.132/scripts/dtc/dtc.h
---- linux-4.19.132.orig/scripts/dtc/dtc.h 2020-07-09 09:37:13.000000000 +0200
-+++ linux-4.19.132/scripts/dtc/dtc.h 2020-07-15 02:38:00.000000000 +0200
-@@ -33,8 +33,8 @@
- #include <unistd.h>
- #include <inttypes.h>
-
--#include <libfdt_env.h>
--#include <fdt.h>
-+#include "libfdt/libfdt_env.h"
-+#include "libfdt/fdt.h"
-
- #include "util.h"
-
-diff -Nur linux-4.19.132.orig/scripts/dtc/util.c linux-4.19.132/scripts/dtc/util.c
---- linux-4.19.132.orig/scripts/dtc/util.c 2020-07-09 09:37:13.000000000 +0200
-+++ linux-4.19.132/scripts/dtc/util.c 2020-07-15 02:38:18.000000000 +0200
-@@ -32,7 +32,7 @@
- #include <fcntl.h>
- #include <unistd.h>
-
--#include "libfdt.h"
-+#include "libfdt/libfdt.h"
- #include "util.h"
- #include "version_gen.h"
-
diff --git a/target/linux/patches/5.19.12/darwin-file2alias.patch b/target/linux/patches/5.19.12/darwin-file2alias.patch
deleted file mode 100644
index fdbc598a8..000000000
--- a/target/linux/patches/5.19.12/darwin-file2alias.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Nur linux-5.4.42.orig/scripts/mod/file2alias.c linux-5.4.42/scripts/mod/file2alias.c
---- linux-5.4.42.orig/scripts/mod/file2alias.c 2020-05-20 08:20:41.000000000 +0200
-+++ linux-5.4.42/scripts/mod/file2alias.c 2020-06-06 20:14:59.000000000 +0200
-@@ -10,6 +10,10 @@
- * of the GNU General Public License, incorporated herein by reference.
- */
-
-+/* workaround for Darwin */
-+#define _UUID_T
-+#define __GETHOSTUUID_H
-+
- #include "modpost.h"
- #include "devicetable-offsets.h"
-
diff --git a/target/linux/patches/5.19.12/dtc-noyaml.patch b/target/linux/patches/5.19.12/dtc-noyaml.patch
deleted file mode 100644
index 759bb01f7..000000000
--- a/target/linux/patches/5.19.12/dtc-noyaml.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff -Nur linux-5.4.53.orig/scripts/dtc/dtc.c linux-5.4.53/scripts/dtc/dtc.c
---- linux-5.4.53.orig/scripts/dtc/dtc.c 2020-07-22 09:33:18.000000000 +0200
-+++ linux-5.4.53/scripts/dtc/dtc.c 2020-07-28 14:20:10.000000000 +0200
-@@ -349,12 +349,6 @@
-
- if (streq(outform, "dts")) {
- dt_to_source(outf, dti);
--#ifndef NO_YAML
-- } else if (streq(outform, "yaml")) {
-- if (!streq(inform, "dts"))
-- die("YAML output format requires dts input format\n");
-- dt_to_yaml(outf, dti);
--#endif
- } else if (streq(outform, "dtb")) {
- dt_to_blob(outf, dti, outversion);
- } else if (streq(outform, "asm")) {
diff --git a/target/linux/patches/5.19.12/or1k-more-ram.patch b/target/linux/patches/5.19.12/or1k-more-ram.patch
deleted file mode 100644
index de848c838..000000000
--- a/target/linux/patches/5.19.12/or1k-more-ram.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts
---- linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts 2016-11-26 09:57:13.000000000 +0100
-+++ linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts 2016-12-04 14:39:46.092952799 +0100
-@@ -11,7 +11,7 @@
-
- memory@0 {
- device_type = "memory";
-- reg = <0x00000000 0x02000000>;
-+ reg = <0x00000000 0x04000000>;
- };
-
- cpus {
diff --git a/target/linux/patches/5.19.12/relocs.patch b/target/linux/patches/5.19.12/relocs.patch
deleted file mode 100644
index 5bcd974c7..000000000
--- a/target/linux/patches/5.19.12/relocs.patch
+++ /dev/null
@@ -1,2698 +0,0 @@
-diff -Nur linux-5.4.42.orig/arch/x86/tools/relocs.h linux-5.4.42/arch/x86/tools/relocs.h
---- linux-5.4.42.orig/arch/x86/tools/relocs.h 2020-05-20 08:20:41.000000000 +0200
-+++ linux-5.4.42/arch/x86/tools/relocs.h 2020-06-06 18:18:17.000000000 +0200
-@@ -10,11 +10,19 @@
- #include <string.h>
- #include <errno.h>
- #include <unistd.h></