summaryrefslogtreecommitdiff
path: root/target/linux
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
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')
-rw-r--r--target/linux/config/Config.in.audio8
-rw-r--r--target/linux/config/Config.in.block30
-rw-r--r--target/linux/config/Config.in.cpu4
-rw-r--r--target/linux/config/Config.in.ethernet8
-rw-r--r--target/linux/config/Config.in.i2c20
-rw-r--r--target/linux/config/Config.in.rtc11
-rw-r--r--target/linux/config/Config.in.serial8
-rw-r--r--target/linux/config/Config.in.usb33
-rw-r--r--target/linux/config/Config.in.watchdog9
-rw-r--r--target/linux/config/Config.in.wireless2
-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
16 files changed, 216 insertions, 742 deletions
diff --git a/target/linux/config/Config.in.audio b/target/linux/config/Config.in.audio
index 6084ebfed..401b84af1 100644
--- a/target/linux/config/Config.in.audio
+++ b/target/linux/config/Config.in.audio
@@ -140,6 +140,14 @@ config ADK_LINUX_KERNEL_SND_INTEL8X0
help
Driver for intel chipsets.
+config ADK_LINUX_KERNEL_SND_ROCKCHIP
+ tristate "Rockchip driver"
+ select ADK_LINUX_KERNEL_SND
+ default m if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ ALSA Rockchip driver
+
config ADK_LINUX_KERNEL_SND_VIA82XX
tristate "VIA82XX driver"
select ADK_LINUX_KERNEL_SND
diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block
index c8078394a..b07ece645 100644
--- a/target/linux/config/Config.in.block
+++ b/target/linux/config/Config.in.block
@@ -157,6 +157,12 @@ config ADK_LINUX_KERNEL_MMC_BCM2835_DMA
config ADK_LINUX_KERNEL_MMC_BCM2835_SDHOST
bool
+config ADK_LINUX_KERNEL_MMC_DW
+ bool
+
+config ADK_LINUX_KERNEL_MMC_DW_PLTFM
+ bool
+
config ADK_LINUX_KERNEL_PWRSEQ_EMMC
bool
@@ -546,6 +552,30 @@ config ADK_LINUX_KERNEL_MMC_ATMELMCI
Atmel Multimedia Card Interface driver for AT32
and AT91 plattforms.
+config ADK_LINUX_KERNEL_MMC_DW_ROCKCHIP
+ bool "SD/MMC Driver (Rockchip)"
+ select ADK_LINUX_KERNEL_BLOCK
+ select ADK_LINUX_KERNEL_BLK_DEV
+ select ADK_LINUX_KERNEL_LBDAF
+ select ADK_LINUX_KERNEL_SCSI
+ select ADK_LINUX_KERNEL_SCSI_DMA
+ select ADK_LINUX_KERNEL_SCSI_MULTI_LUN
+ select ADK_LINUX_KERNEL_SCSI_CONSTANTS
+ select ADK_LINUX_KERNEL_SCSI_LOGGING
+ select ADK_LINUX_KERNEL_SCSI_SCAN_ASYNC
+ select ADK_LINUX_KERNEL_MMC
+ select ADK_LINUX_KERNEL_MMC_BLOCK
+ select ADK_LINUX_KERNEL_MMC_BLOCK_BOUNCE
+ select ADK_LINUX_KERNEL_MMC_SDHCI
+ select ADK_LINUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
+ select ADK_LINUX_KERNEL_MMC_SDHCI_PLTFM
+ select ADK_LINUX_KERNEL_MMC_DW
+ select ADK_LINUX_KERNEL_MMC_DW_PLTFM
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ RockPI 4 Plus driver for MMC
+
endmenu
menu "Block driver support"
diff --git a/target/linux/config/Config.in.cpu b/target/linux/config/Config.in.cpu
index 8a78d7572..5effd7bfd 100644
--- a/target/linux/config/Config.in.cpu
+++ b/target/linux/config/Config.in.cpu
@@ -50,8 +50,10 @@ config ADK_LINUX_KERNEL_CPUFREQ_DT
bool "CPU frequency support DT"
select ADK_LINUX_KERNEL_CPU_FREQ
select ADK_LINUX_KERNEL_CPUFREQ_DT_PLATDEV
- depends on ADK_TARGET_SYSTEM_ORANGE_PI0
+ depends on ADK_TARGET_SYSTEM_ORANGE_PI0 || \
+ ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default y if ADK_TARGET_SYSTEM_ORANGE_PI0
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
config ADK_LINUX_KERNEL_ARM_IMX6Q_CPUFREQ
diff --git a/target/linux/config/Config.in.ethernet b/target/linux/config/Config.in.ethernet
index fbff94d54..4009f4474 100644
--- a/target/linux/config/Config.in.ethernet
+++ b/target/linux/config/Config.in.ethernet
@@ -115,6 +115,9 @@ config ADK_LINUX_KERNEL_DWMAC_GENERIC
config ADK_LINUX_KERNEL_DWMAC_SUNXI
bool
+config ADK_LINUX_KERNEL_DWMAC_ROCKCHIP
+ bool
+
config ADK_LINUX_KERNEL_STMMAC_PLATFORM
bool
@@ -487,14 +490,17 @@ config ADK_LINUX_KERNEL_STMMAC_ETH
select ADK_LINUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY
select ADK_LINUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
select ADK_LINUX_KERNEL_MICREL_PHY if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ select ADK_LINUX_KERNEL_DWMAC_ROCKCHIP if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
depends on ADK_TARGET_SYSTEM_BANANA_PRO \
|| ADK_TARGET_SYSTEM_ORANGE_PI0 \
|| ADK_TARGET_SYSTEM_QEMU_CSKY \
- || ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ || ADK_TARGET_SYSTEM_SYNOPSYS_HSDK \
+ || ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default y if ADK_TARGET_SYSTEM_BANANA_PRO
default y if ADK_TARGET_SYSTEM_ORANGE_PI0
default y if ADK_TARGET_SYSTEM_QEMU_CSKY
default y if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
config ADK_LINUX_KERNEL_SUNGEM
diff --git a/target/linux/config/Config.in.i2c b/target/linux/config/Config.in.i2c
index aa3b1d128..2629135b1 100644
--- a/target/linux/config/Config.in.i2c
+++ b/target/linux/config/Config.in.i2c
@@ -28,6 +28,26 @@ config ADK_LINUX_KERNEL_I2C_GPIO
config ADK_LINUX_KERNEL_I2C_BCM2835
tristate
+config ADK_LINUX_KERNEL_I2C_DESIGNWARE_CORE
+ tristate
+
+config ADK_LINUX_KERNEL_I2C_DESIGNWARE_PLATFORM
+ tristate
+
+config ADK_LINUX_KERNEL_I2C_RK3X
+ tristate "I2C driver for Rockchip"
+ select ADK_LINUX_KERNEL_I2C
+ select ADK_LINUX_KERNEL_REGMAP
+ select ADK_LINUX_KERNEL_REGMAP_I2C
+ select ADK_LINUX_KERNEL_I2C_CHARDEV
+ select ADK_LINUX_KERNEL_I2C_DESIGNWARE_CORE
+ select ADK_LINUX_KERNEL_I2C_DESIGNWARE_PLATFORM
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ I2C driver for Synopsys DesignWare.
+
config ADK_LINUX_KERNEL_I2C_BCM2708
tristate "I2C driver for BCM28XX boards"
select ADK_LINUX_KERNEL_I2C
diff --git a/target/linux/config/Config.in.rtc b/target/linux/config/Config.in.rtc
index db68ff960..cf6bddb9e 100644
--- a/target/linux/config/Config.in.rtc
+++ b/target/linux/config/Config.in.rtc
@@ -52,6 +52,17 @@ config ADK_LINUX_KERNEL_RTC_DRV_AT91SAM9
help
Fox G20 RTC support.
+config ADK_LINUX_KERNEL_RTC_DRV_RK808
+ bool "RTC support for Rockchip"
+ select ADK_LINUX_KERNEL_RTC_CLASS
+ select ADK_LINUX_KERNEL_RTC_HCTOSYS
+ select ADK_LINUX_KERNEL_RTC_INTF_DEV
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ help
+ Rockchip RTC support.
+
config ADK_LINUX_KERNEL_RTC_DRV_CMOS
bool "RTC support for PC CMOS"
select ADK_LINUX_KERNEL_RTC_CLASS
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
index 41704978a..d9f904184 100644
--- a/target/linux/config/Config.in.serial
+++ b/target/linux/config/Config.in.serial
@@ -102,11 +102,13 @@ config ADK_LINUX_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_ANDES_AG101P \
|| ADK_TARGET_SYSTEM_ORANGE_PI0 \
|| ADK_TARGET_SYSTEM_SYNOPSYS_HSDK \
- || ADK_TARGET_SYSTEM_SOM_C6745
+ || ADK_TARGET_SYSTEM_SOM_C6745 \
+ || ADK_TARGET_SYSTEM_ROCKPI4_PLUS
select ADK_LINUX_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
select ADK_LINUX_KERNEL_SERIAL_8250_DMA if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_LINUX_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
depends on ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
@@ -138,7 +140,8 @@ config ADK_LINUX_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG \
|| ADK_TARGET_SYSTEM_ORANGE_PI0 \
|| ADK_TARGET_SYSTEM_SYNOPSYS_HSDK \
- || ADK_TARGET_SYSTEM_SOM_C6745
+ || ADK_TARGET_SYSTEM_SOM_C6745 \
+ || ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default y if ADK_TARGET_SYSTEM_XILINX_KINTEX7
default y if ADK_TARGET_SYSTEM_IMGTEC_CI20
default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
@@ -169,6 +172,7 @@ config ADK_LINUX_KERNEL_SERIAL_8250
default y if ADK_TARGET_SYSTEM_ORANGE_PI0
default y if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
default y if ADK_TARGET_SYSTEM_SOM_C6745
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
Serial driver for 8250 UART chip.
diff --git a/target/linux/config/Config.in.usb b/target/linux/config/Config.in.usb
index bd50dd446..9717a6231 100644
--- a/target/linux/config/Config.in.usb
+++ b/target/linux/config/Config.in.usb
@@ -25,6 +25,9 @@ config ADK_LINUX_KERNEL_USB_EHCI_TT_NEWSCHED
config ADK_LINUX_KERNEL_USB_EHCI_MXC
bool
+config ADK_LINUX_KERNEL_USB_EHCI_HCD_PLATFORM
+ bool
+
config ADK_LINUX_KERNEL_USB_GADGET
tristate
@@ -38,6 +41,9 @@ config ADK_LINUX_KERNEL_USB_MXS_PHY
ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
+config ADK_LINUX_KERNEL_USB_XHCI_PLATFORM
+ bool
+
config ADK_LINUX_KERNEL_USB_OHCI_HCD_PLATFORM
bool
select ADK_LINUX_KERNEL_USB_OHCI_HCD
@@ -45,6 +51,12 @@ config ADK_LINUX_KERNEL_USB_OHCI_HCD_PLATFORM
config ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI
bool
+config ADK_LINUX_KERNEL_USB_EHCI_HCD_PCI
+ bool
+
+config ADK_LINUX_KERNEL_USB_XHCI_HCD_PCI
+ bool
+
config ADK_LINUX_KERNEL_USB_LIBUSUAL
tristate
@@ -68,6 +80,7 @@ config ADK_LINUX_KERNEL_USB
ADK_TARGET_SYSTEM_PHYTEC_IMX6
default y if ADK_TARGET_SYSTEM_KINETIS_K70
default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
Universal Serial Bus (USB) is a specification for a serial bus
@@ -100,12 +113,29 @@ config ADK_LINUX_KERNEL_USB
menu "USB controller support"
+config ADK_LINUX_KERNEL_USB_XHCI_HCD
+ tristate "Support for USB xHCI HCD (USB 3.0)"
+ depends on ADK_LINUX_KERNEL_USB
+ select ADK_LINUX_KERNEL_USB_XHCI_HCD_PLATFORM if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ select ADK_LINUX_KERNEL_USB_XHCI_HCD_PCI if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
+ "SuperSpeed" host controller hardware.
+
+ To compile this driver as a module, choose M here: the
+ module will be called xhci-hcd.
+
+
config ADK_LINUX_KERNEL_USB_EHCI_HCD
tristate "Support for USB EHCI 2.0 controllers"
select ADK_LINUX_KERNEL_USB_MXS_PHY if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
ADK_TARGET_SYSTEM_PHYTEC_IMX6
select ADK_LINUX_KERNEL_USB_EHCI_MXC if ADK_TARGET_SYSTEM_KINETIS_K70
select ADK_LINUX_KERNEL_USB_DEVICE_CLASS if ADK_TARGET_SYSTEM_KINETIS_K70
+ select ADK_LINUX_KERNEL_USB_EHCI_HCD_PLATFORM if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ select ADK_LINUX_KERNEL_USB_EHCI_HCD_PCI if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
depends on !ADK_TARGET_BOARD_BCM28XX
depends on ADK_LINUX_KERNEL_USB
@@ -116,6 +146,7 @@ config ADK_LINUX_KERNEL_USB_EHCI_HCD
ADK_TARGET_SYSTEM_PHYTEC_IMX6
default y if ADK_TARGET_SYSTEM_KINETIS_K70
default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
@@ -161,10 +192,12 @@ config ADK_LINUX_KERNEL_USB_OHCI_HCD
depends on !ADK_TARGET_BOARD_BCM28XX
select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_ALIX
select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_APU
+ select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default m if ADK_TARGET_SYSTEM_PCENGINES_APU
default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
default m if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
The Open Host Controller Interface (OHCI) is a standard for accessing
diff --git a/target/linux/config/Config.in.watchdog b/target/linux/config/Config.in.watchdog
index 3175180cf..59c60d94f 100644
--- a/target/linux/config/Config.in.watchdog
+++ b/target/linux/config/Config.in.watchdog
@@ -94,6 +94,15 @@ config ADK_LINUX_KERNEL_SUNXI_WATCHDOG
help
Support for SunXi hardware watchdog.
+config ADK_LINUX_KERNEL_DW_WATCHDOG
+ bool "Synopsys DesignWare watchdog"
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ select ADK_LINUX_KERNEL_WATCHDOG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ Support for Synopsys DesignWare hardware watchdog.
+
config ADK_LINUX_KERNEL_SOFT_WATCHDOG
tristate "Software watchdog"
select ADK_LINUX_KERNEL_WATCHDOG
diff --git a/target/linux/config/Config.in.wireless b/target/linux/config/Config.in.wireless
index 3649bae8b..01ed051dd 100644
--- a/target/linux/config/Config.in.wireless
+++ b/target/linux/config/Config.in.wireless
@@ -150,6 +150,7 @@ config ADK_LINUX_KERNEL_BRCMFMAC
select ADK_LINUX_KERNEL_BRCMDBG
select ADK_PACKAGE_BRCMFMAC_FIRMWARE
default m if ADK_TARGET_SYSTEM_BANANA_P2_ZERO
+ default m if ADK_TARGET_SYSTEM_ROCKPI4_ZERO
default n
config ADK_LINUX_KERNEL_BRCMFMAC_SDIO
@@ -160,6 +161,7 @@ config ADK_LINUX_KERNEL_BRCMFMAC_SDIO
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI0
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
default y if ADK_TARGET_SYSTEM_BANANA_P2_ZERO
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
Driver for Broadcom FullMac wireless cards (SDIO).
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;