summaryrefslogtreecommitdiff
path: root/target/linux/patches
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2022-12-20 14:30:18 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2022-12-25 07:27:26 +0100
commit2f4941496c737543a12a0b6fc279081ef13b9a80 (patch)
tree083835e0116524f2edaafe528222d3c37c0cf8c1 /target/linux/patches
parent13cca63887cce9a73379d19029128fa60c36fc52 (diff)
use rockpi4 b plus dtb instead of c, fixes bootup.
A lot of drivers where moved from mini.config to target/linux/config. WLAN works, ethernet works, i2c works, RTC works.
Diffstat (limited to 'target/linux/patches')
-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/rockchip-115200.patch12
-rw-r--r--target/linux/patches/6.0.11/board-rockpi4-0003-arm64-dts-pcie.patch35
-rw-r--r--target/linux/patches/6.0.11/rockchip-115200.patch12
-rw-r--r--target/linux/patches/6.0.11/rockchip-audio.patch12
-rw-r--r--target/linux/patches/6.0.11/rockchip-pcie-timeout.patch16
6 files changed, 87 insertions, 738 deletions
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
deleted file mode 100644
index 8dea9f52d..000000000
--- a/target/linux/patches/5.15.81/add-board-rock-pi-4c-plus.patch
+++ /dev/null
@@ -1,738 +0,0 @@
-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.81/rockchip-115200.patch b/target/linux/patches/5.15.81/rockchip-115200.patch
new file mode 100644
index 000000000..ad8a2d7a7
--- /dev/null
+++ b/target/linux/patches/5.15.81/rockchip-115200.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+--- linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-02 17:41:12.000000000 +0100
++++ linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-22 09:51:57.370394227 +0100
+@@ -17,7 +17,7 @@
+ };
+
+ chosen {
+- stdout-path = "serial2:1500000n8";
++ stdout-path = "serial2:115200n8";
+ };
+
+ clkin_gmac: external-gmac-clock {
diff --git a/target/linux/patches/6.0.11/board-rockpi4-0003-arm64-dts-pcie.patch b/target/linux/patches/6.0.11/board-rockpi4-0003-arm64-dts-pcie.patch
new file mode 100644
index 000000000..1777e7a86
--- /dev/null
+++ b/target/linux/patches/6.0.11/board-rockpi4-0003-arm64-dts-pcie.patch
@@ -0,0 +1,35 @@
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+index 1ae1ebd4e..2f84397d5 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+@@ -62,6 +62,8 @@
+ regulator-name = "vcc3v3_pcie";
+ regulator-always-on;
+ regulator-boot-on;
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+
+@@ -434,6 +459,21 @@
+ gpio1830-supply = <&vcc_3v0>;
+ };
+
++&pcie0 {
++ ep-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
++ num-lanes = <4>;
++ max-link-speed = <1>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pcie_clkreqnb_cpm>;
++ vpcie12v-supply = <&vcc12v_dcin>;
++ vpcie3v3-supply = <&vcc3v3_pcie>;
++ status = "okay";
++};
++
++&pcie_phy {
++ status = "okay";
++};
++
+ &pmu_io_domains {
+ status = "okay";
+
diff --git a/target/linux/patches/6.0.11/rockchip-115200.patch b/target/linux/patches/6.0.11/rockchip-115200.patch
new file mode 100644
index 000000000..ad8a2d7a7
--- /dev/null
+++ b/target/linux/patches/6.0.11/rockchip-115200.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+--- linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-02 17:41:12.000000000 +0100
++++ linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-22 09:51:57.370394227 +0100
+@@ -17,7 +17,7 @@
+ };
+
+ chosen {
+- stdout-path = "serial2:1500000n8";
++ stdout-path = "serial2:115200n8";
+ };
+
+ clkin_gmac: external-gmac-clock {
diff --git a/target/linux/patches/6.0.11/rockchip-audio.patch b/target/linux/patches/6.0.11/rockchip-audio.patch
new file mode 100644
index 000000000..9520d2ad2
--- /dev/null
+++ b/target/linux/patches/6.0.11/rockchip-audio.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-6.0.11.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi linux-6.0.11/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+--- linux-6.0.11.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-02 17:43:18.000000000 +0100
++++ linux-6.0.11/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-24 19:48:31.620199852 +0100
+@@ -452,6 +452,8 @@
+ clocks = <&cru SCLK_I2S_8CH_OUT>;
+ clock-names = "mclk";
+ #sound-dai-cells = <0>;
++ interrupt-parent = <&gpio1>;
++ interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>;
+
+ port {
+ es8316_p0_0: endpoint {
diff --git a/target/linux/patches/6.0.11/rockchip-pcie-timeout.patch b/target/linux/patches/6.0.11/rockchip-pcie-timeout.patch
new file mode 100644
index 000000000..2ef7df2da
--- /dev/null
+++ b/target/linux/patches/6.0.11/rockchip-pcie-timeout.patch
@@ -0,0 +1,16 @@
+diff -Nur linux-6.0.11.orig/drivers/pci/controller/pcie-rockchip-host.c linux-6.0.11/drivers/pci/controller/pcie-rockchip-host.c
+--- linux-6.0.11.orig/drivers/pci/controller/pcie-rockchip-host.c 2022-12-02 17:43:18.000000000 +0100
++++ linux-6.0.11/drivers/pci/controller/pcie-rockchip-host.c 2022-12-24 11:12:25.753213273 +0100
+@@ -327,10 +327,10 @@
+
+ gpiod_set_value_cansleep(rockchip->ep_gpio, 1);
+
+- /* 500ms timeout value should be enough for Gen1/2 training */
++ /* 1000ms timeout value should be enough for Gen1/2 training */
+ err = readl_poll_timeout(rockchip->apb_base + PCIE_CLIENT_BASIC_STATUS1,
+ status, PCIE_LINK_UP(status), 20,
+- 500 * USEC_PER_MSEC);
++ 1000 * USEC_PER_MSEC);
+ if (err) {
+ dev_err(dev, "PCIe link training gen1 timeout!\n");
+ goto err_power_off_phy;