* [PATCH V2 0/3] Add support for Orange Pi 5 Pro
@ 2026-03-04 2:55 dennis
2026-03-04 2:55 ` [PATCH V2 1/3] dt-bindings: arm: rockchip: Add " dennis
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: dennis @ 2026-03-04 2:55 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: FUKAUMI Naoki, Hsun Lai, Jonas Karlman, Chaoyi Chen, John Clark,
Michael Opdenacker, Quentin Schulz, Andrew Lunn, Alexey Charkov,
Peter Robinson, devicetree, linux-arm-kernel, linux-rockchip,
linux-kernel, Dennis Gilmore
From: Dennis Gilmore <dennis@ausil.us>
This series adds initial support for Orange Pi 5 Pro. The network
driver was just added. The only thing missing is the second HDMI port
that is connected via a DP to HDMI adaptor
The series was tested against Linux 7.0-rc2
Please take a look.
Thank you,
Dennis Gilmore
Changes in v2:
- moved items not shared by orangepi 5/5b/5 Pro from dtsi to 5 and 5b
dts files
- removed all the comments and deleted properties from 5 Pro dts
- Link to v1 https://lore.kernel.org/linux-devicetree/20260228205418.2944620-1-dennis@ausil.us/
Dennis Gilmore (3):
dt-bindings: arm: rockchip: Add Orange Pi 5 Pro
arm64: dts: rockchip: refactor items from Orange Pi 5/b to prep for
Pro
arm64: dts: rockchip: Add Orange Pi 5 Pro board support
.../devicetree/bindings/arm/rockchip.yaml | 1 +
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../dts/rockchip/rk3588s-orangepi-5-pro.dts | 376 ++++++++++++++++++
.../boot/dts/rockchip/rk3588s-orangepi-5.dts | 184 +++++++++
.../boot/dts/rockchip/rk3588s-orangepi-5.dtsi | 202 +---------
.../boot/dts/rockchip/rk3588s-orangepi-5b.dts | 181 +++++++++
6 files changed, 756 insertions(+), 189 deletions(-)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts
--
2.53.0
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH V2 1/3] dt-bindings: arm: rockchip: Add Orange Pi 5 Pro 2026-03-04 2:55 [PATCH V2 0/3] Add support for Orange Pi 5 Pro dennis @ 2026-03-04 2:55 ` dennis 2026-03-04 2:55 ` [PATCH V2 2/3] arm64: dts: rockchip: refactor items from Orange Pi 5/b to prep for Pro dennis 2026-03-04 2:55 ` [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support dennis 2 siblings, 0 replies; 7+ messages in thread From: dennis @ 2026-03-04 2:55 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner Cc: FUKAUMI Naoki, Hsun Lai, Jonas Karlman, Chaoyi Chen, John Clark, Michael Opdenacker, Quentin Schulz, Andrew Lunn, Alexey Charkov, Peter Robinson, devicetree, linux-arm-kernel, linux-rockchip, linux-kernel, Dennis Gilmore, Krzysztof Kozlowski From: Dennis Gilmore <dennis@ausil.us> Add compatible string for the Orange Pi 5 Pro. Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Signed-off-by: Dennis Gilmore <dennis@ausil.us> --- Documentation/devicetree/bindings/arm/rockchip.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml index ae77ded9fe47..3c6b83a84463 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -1320,6 +1320,7 @@ properties: items: - enum: - xunlong,orangepi-5 + - xunlong,orangepi-5-pro - xunlong,orangepi-5b - const: rockchip,rk3588s -- 2.53.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH V2 2/3] arm64: dts: rockchip: refactor items from Orange Pi 5/b to prep for Pro 2026-03-04 2:55 [PATCH V2 0/3] Add support for Orange Pi 5 Pro dennis 2026-03-04 2:55 ` [PATCH V2 1/3] dt-bindings: arm: rockchip: Add " dennis @ 2026-03-04 2:55 ` dennis 2026-03-04 14:32 ` Andrew Lunn 2026-03-04 2:55 ` [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support dennis 2 siblings, 1 reply; 7+ messages in thread From: dennis @ 2026-03-04 2:55 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner Cc: FUKAUMI Naoki, Hsun Lai, Jonas Karlman, Chaoyi Chen, John Clark, Michael Opdenacker, Quentin Schulz, Andrew Lunn, Alexey Charkov, Peter Robinson, devicetree, linux-arm-kernel, linux-rockchip, linux-kernel, Dennis Gilmore From: Dennis Gilmore <dennis@ausil.us> The Orange Pi 5 Pro uses the same SoC and base as the Orange Pi 5 and Orange Pi 5B but has had sound, USB, and leds wired up differently. The boards also use gmac for ethernet where thre Pro has a PCIe attached NIC Signed-off-by: Dennis Gilmore <dennis@ausil.us> --- .../boot/dts/rockchip/rk3588s-orangepi-5.dts | 184 ++++++++++++++++ .../boot/dts/rockchip/rk3588s-orangepi-5.dtsi | 202 ++---------------- .../boot/dts/rockchip/rk3588s-orangepi-5b.dts | 181 ++++++++++++++++ 3 files changed, 378 insertions(+), 189 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts index 83b9b6645a1e..a102458d7f6f 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts @@ -2,12 +2,62 @@ /dts-v1/; +#include <dt-bindings/usb/pd.h> #include "rk3588s-orangepi-5.dtsi" / { model = "Xunlong Orange Pi 5"; compatible = "xunlong,orangepi-5", "rockchip,rk3588s"; + aliases { + ethernet0 = &gmac1; + mmc0 = &sdmmc; + }; + + analog-sound { + compatible = "simple-audio-card"; + pinctrl-names = "default"; + pinctrl-0 = <&hp_detect>; + simple-audio-card,name = "rockchip,es8388"; + simple-audio-card,bitclock-master = <&masterdai>; + simple-audio-card,format = "i2s"; + simple-audio-card,frame-master = <&masterdai>; + simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; + simple-audio-card,mclk-fs = <256>; + simple-audio-card,routing = + "Headphones", "LOUT1", + "Headphones", "ROUT1", + "LINPUT1", "Microphone Jack", + "RINPUT1", "Microphone Jack", + "LINPUT2", "Onboard Microphone", + "RINPUT2", "Onboard Microphone"; + simple-audio-card,widgets = + "Microphone", "Microphone Jack", + "Microphone", "Onboard Microphone", + "Headphone", "Headphones"; + + simple-audio-card,cpu { + sound-dai = <&i2s1_8ch>; + }; + + masterdai: simple-audio-card,codec { + sound-dai = <&es8388>; + system-clock-frequency = <12288000>; + }; + }; + + pwm-leds { + compatible = "pwm-leds"; + + led { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_STATUS; + linux,default-trigger = "heartbeat"; + max-brightness = <255>; + pwms = <&pwm0 0 25000 0>; + }; + }; + vcc3v3_pcie20: regulator-vcc3v3-pcie20 { compatible = "regulator-fixed"; enable-active-high; @@ -21,12 +71,146 @@ vcc3v3_pcie20: regulator-vcc3v3-pcie20 { }; }; +&gmac1 { + clock_in_out = "output"; + phy-handle = <&rgmii_phy1>; + phy-mode = "rgmii-rxid"; + pinctrl-0 = <&gmac1_miim + &gmac1_tx_bus2 + &gmac1_rx_bus2 + &gmac1_rgmii_clk + &gmac1_rgmii_bus>; + pinctrl-names = "default"; + tx_delay = <0x42>; + status = "okay"; +}; + +&i2c6 { + es8388: audio-codec@10 { + compatible = "everest,es8388", "everest,es8328"; + reg = <0x10>; + clocks = <&cru I2S1_8CH_MCLKOUT>; + AVDD-supply = <&vcc_3v3_s0>; + DVDD-supply = <&vcc_1v8_s0>; + HPVDD-supply = <&vcc_3v3_s0>; + PVDD-supply = <&vcc_3v3_s0>; + assigned-clocks = <&cru I2S1_8CH_MCLKOUT>; + assigned-clock-rates = <12288000>; + #sound-dai-cells = <0>; + }; + + usbc0: usb-typec@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio0>; + interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus_typec>; + status = "okay"; + + usb_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + op-sink-microwatt = <1000000>; + power-role = "dual"; + sink-pdos = + <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>; + source-pdos = + <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; + try-power-role = "source"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_hs: endpoint { + remote-endpoint = <&usb_host0_xhci_drd_sw>; + }; + }; + + port@1 { + reg = <1>; + usbc0_ss: endpoint { + remote-endpoint = <&usbdp_phy0_typec_ss>; + }; + }; + + port@2 { + reg = <2>; + usbc0_sbu: endpoint { + remote-endpoint = <&usbdp_phy0_typec_sbu>; + }; + }; + }; + }; + }; +}; + +&i2s1_8ch { + rockchip,i2s-tx-route = <3 2 1 0>; + rockchip,i2s-rx-route = <1 3 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&i2s1m0_sclk + &i2s1m0_mclk + &i2s1m0_lrck + &i2s1m0_sdi1 + &i2s1m0_sdo3>; + status = "okay"; +}; + &pcie2x1l2 { reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc3v3_pcie20>; status = "okay"; }; +&pwm0 { + pinctrl-0 = <&pwm0m2_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + &sfc { status = "okay"; }; + +&usb_host0_xhci { + dr_mode = "otg"; + usb-role-switch; + + port { + usb_host0_xhci_drd_sw: endpoint { + remote-endpoint = <&usbc0_hs>; + }; + }; +}; + +&usb_host2_xhci { + status = "okay"; +}; + +&usbdp_phy0 { + mode-switch; + orientation-switch; + sbu1-dc-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; + sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; + + port { + #address-cells = <1>; + #size-cells = <0>; + + usbdp_phy0_typec_ss: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_ss>; + }; + + usbdp_phy0_typec_sbu: endpoint@1 { + reg = <1>; + remote-endpoint = <&usbc0_sbu>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtsi index dafad29f9854..7c7276968d95 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dtsi @@ -3,19 +3,13 @@ /dts-v1/; #include <dt-bindings/gpio/gpio.h> -#include <dt-bindings/leds/common.h> #include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> #include <dt-bindings/pinctrl/rockchip.h> #include <dt-bindings/soc/rockchip,vop2.h> -#include <dt-bindings/usb/pd.h> #include "rk3588s.dtsi" / { - aliases { - ethernet0 = &gmac1; - mmc0 = &sdmmc; - }; - chosen { stdout-path = "serial2:1500000n8"; }; @@ -34,38 +28,6 @@ button-recovery { }; }; - analog-sound { - compatible = "simple-audio-card"; - pinctrl-names = "default"; - pinctrl-0 = <&hp_detect>; - simple-audio-card,name = "rockchip,es8388"; - simple-audio-card,bitclock-master = <&masterdai>; - simple-audio-card,format = "i2s"; - simple-audio-card,frame-master = <&masterdai>; - simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; - simple-audio-card,mclk-fs = <256>; - simple-audio-card,routing = - "Headphones", "LOUT1", - "Headphones", "ROUT1", - "LINPUT1", "Microphone Jack", - "RINPUT1", "Microphone Jack", - "LINPUT2", "Onboard Microphone", - "RINPUT2", "Onboard Microphone"; - simple-audio-card,widgets = - "Microphone", "Microphone Jack", - "Microphone", "Onboard Microphone", - "Headphone", "Headphones"; - - simple-audio-card,cpu { - sound-dai = <&i2s1_8ch>; - }; - - masterdai: simple-audio-card,codec { - sound-dai = <&es8388>; - system-clock-frequency = <12288000>; - }; - }; - hdmi0-con { compatible = "hdmi-connector"; type = "a"; @@ -77,18 +39,6 @@ hdmi0_con_in: endpoint { }; }; - pwm-leds { - compatible = "pwm-leds"; - - led { - color = <LED_COLOR_ID_GREEN>; - function = LED_FUNCTION_STATUS; - linux,default-trigger = "heartbeat"; - max-brightness = <255>; - pwms = <&pwm0 0 25000 0>; - }; - }; - vbus_typec: regulator-vbus-typec { compatible = "regulator-fixed"; enable-active-high; @@ -101,15 +51,6 @@ vbus_typec: regulator-vbus-typec { vin-supply = <&vcc5v0_sys>; }; - vcc5v0_sys: regulator-vcc5v0-sys { - compatible = "regulator-fixed"; - regulator-name = "vcc5v0_sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - }; - vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 { compatible = "regulator-fixed"; gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>; @@ -119,6 +60,15 @@ vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 { regulator-max-microvolt = <3300000>; vin-supply = <&vcc_3v3_s3>; }; + + vcc5v0_sys: regulator-vcc5v0-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; }; &combphy0_ps { @@ -161,20 +111,6 @@ &cpu_l3 { cpu-supply = <&vdd_cpu_lit_s0>; }; -&gmac1 { - clock_in_out = "output"; - phy-handle = <&rgmii_phy1>; - phy-mode = "rgmii-rxid"; - pinctrl-0 = <&gmac1_miim - &gmac1_tx_bus2 - &gmac1_rx_bus2 - &gmac1_rgmii_clk - &gmac1_rgmii_bus>; - pinctrl-names = "default"; - tx_delay = <0x42>; - status = "okay"; -}; - &gpu { mali-supply = <&vdd_gpu_s0>; status = "okay"; @@ -270,69 +206,6 @@ &i2c6 { pinctrl-0 = <&i2c6m3_xfer>; status = "okay"; - es8388: audio-codec@10 { - compatible = "everest,es8388", "everest,es8328"; - reg = <0x10>; - clocks = <&cru I2S1_8CH_MCLKOUT>; - AVDD-supply = <&vcc_3v3_s0>; - DVDD-supply = <&vcc_1v8_s0>; - HPVDD-supply = <&vcc_3v3_s0>; - PVDD-supply = <&vcc_3v3_s0>; - assigned-clocks = <&cru I2S1_8CH_MCLKOUT>; - assigned-clock-rates = <12288000>; - #sound-dai-cells = <0>; - }; - - usbc0: usb-typec@22 { - compatible = "fcs,fusb302"; - reg = <0x22>; - interrupt-parent = <&gpio0>; - interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>; - pinctrl-names = "default"; - pinctrl-0 = <&usbc0_int>; - vbus-supply = <&vbus_typec>; - status = "okay"; - - usb_con: connector { - compatible = "usb-c-connector"; - label = "USB-C"; - data-role = "dual"; - op-sink-microwatt = <1000000>; - power-role = "dual"; - sink-pdos = - <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>; - source-pdos = - <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; - try-power-role = "source"; - - ports { - #address-cells = <1>; - #size-cells = <0>; - - port@0 { - reg = <0>; - usbc0_hs: endpoint { - remote-endpoint = <&usb_host0_xhci_drd_sw>; - }; - }; - - port@1 { - reg = <1>; - usbc0_ss: endpoint { - remote-endpoint = <&usbdp_phy0_typec_ss>; - }; - }; - - port@2 { - reg = <2>; - usbc0_sbu: endpoint { - remote-endpoint = <&usbdp_phy0_typec_sbu>; - }; - }; - }; - }; - }; - hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; @@ -346,18 +219,6 @@ hym8563: rtc@51 { }; }; -&i2s1_8ch { - rockchip,i2s-tx-route = <3 2 1 0>; - rockchip,i2s-rx-route = <1 3 2 0>; - pinctrl-names = "default"; - pinctrl-0 = <&i2s1m0_sclk - &i2s1m0_mclk - &i2s1m0_lrck - &i2s1m0_sdi1 - &i2s1m0_sdo3>; - status = "okay"; -}; - &i2s5_8ch { status = "okay"; }; @@ -404,12 +265,6 @@ typec5v_pwren: typec5v-pwren { }; }; -&pwm0 { - pinctrl-0 = <&pwm0m2_pins>; - pinctrl-names = "default"; - status = "okay"; -}; - &rknn_core_0 { npu-supply = <&vdd_npu_s0>; sram-supply = <&vdd_npu_s0>; @@ -840,29 +695,6 @@ &uart2 { status = "okay"; }; -&usbdp_phy0 { - mode-switch; - orientation-switch; - sbu1-dc-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; - sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; - status = "okay"; - - port { - #address-cells = <1>; - #size-cells = <0>; - - usbdp_phy0_typec_ss: endpoint@0 { - reg = <0>; - remote-endpoint = <&usbc0_ss>; - }; - - usbdp_phy0_typec_sbu: endpoint@1 { - reg = <1>; - remote-endpoint = <&usbc0_sbu>; - }; - }; -}; - &usb_host0_ehci { status = "okay"; }; @@ -872,15 +704,7 @@ &usb_host0_ohci { }; &usb_host0_xhci { - dr_mode = "otg"; - usb-role-switch; status = "okay"; - - port { - usb_host0_xhci_drd_sw: endpoint { - remote-endpoint = <&usbc0_hs>; - }; - }; }; &usb_host1_ehci { @@ -891,15 +715,15 @@ &usb_host1_ohci { status = "okay"; }; -&usb_host2_xhci { +&usbdp_phy0 { status = "okay"; }; -&vop_mmu { +&vop { status = "okay"; }; -&vop { +&vop_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5b.dts index d21ec320d295..5acd96969ddf 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5b.dts +++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5b.dts @@ -2,6 +2,7 @@ /dts-v1/; +#include <dt-bindings/usb/pd.h> #include "rk3588s-orangepi-5.dtsi" / { @@ -9,11 +10,191 @@ / { compatible = "xunlong,orangepi-5b", "rockchip,rk3588s"; aliases { + ethernet0 = &gmac1; mmc0 = &sdhci; mmc1 = &sdmmc; }; + + analog-sound { + compatible = "simple-audio-card"; + pinctrl-names = "default"; + pinctrl-0 = <&hp_detect>; + simple-audio-card,name = "rockchip,es8388"; + simple-audio-card,bitclock-master = <&masterdai>; + simple-audio-card,format = "i2s"; + simple-audio-card,frame-master = <&masterdai>; + simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; + simple-audio-card,mclk-fs = <256>; + simple-audio-card,routing = + "Headphones", "LOUT1", + "Headphones", "ROUT1", + "LINPUT1", "Microphone Jack", + "RINPUT1", "Microphone Jack", + "LINPUT2", "Onboard Microphone", + "RINPUT2", "Onboard Microphone"; + simple-audio-card,widgets = + "Microphone", "Microphone Jack", + "Microphone", "Onboard Microphone", + "Headphone", "Headphones"; + + simple-audio-card,cpu { + sound-dai = <&i2s1_8ch>; + }; + + masterdai: simple-audio-card,codec { + sound-dai = <&es8388>; + system-clock-frequency = <12288000>; + }; + }; + + pwm-leds { + compatible = "pwm-leds"; + + led { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_STATUS; + linux,default-trigger = "heartbeat"; + max-brightness = <255>; + pwms = <&pwm0 0 25000 0>; + }; + }; + +}; + +&gmac1 { + clock_in_out = "output"; + phy-handle = <&rgmii_phy1>; + phy-mode = "rgmii-rxid"; + pinctrl-0 = <&gmac1_miim + &gmac1_tx_bus2 + &gmac1_rx_bus2 + &gmac1_rgmii_clk + &gmac1_rgmii_bus>; + pinctrl-names = "default"; + tx_delay = <0x42>; + status = "okay"; +}; + +&i2c6 { + es8388: audio-codec@10 { + compatible = "everest,es8388", "everest,es8328"; + reg = <0x10>; + clocks = <&cru I2S1_8CH_MCLKOUT>; + AVDD-supply = <&vcc_3v3_s0>; + DVDD-supply = <&vcc_1v8_s0>; + HPVDD-supply = <&vcc_3v3_s0>; + PVDD-supply = <&vcc_3v3_s0>; + assigned-clocks = <&cru I2S1_8CH_MCLKOUT>; + assigned-clock-rates = <12288000>; + #sound-dai-cells = <0>; + }; + + usbc0: usb-typec@22 { + compatible = "fcs,fusb302"; + reg = <0x22>; + interrupt-parent = <&gpio0>; + interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&usbc0_int>; + vbus-supply = <&vbus_typec>; + status = "okay"; + + usb_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + data-role = "dual"; + op-sink-microwatt = <1000000>; + power-role = "dual"; + sink-pdos = + <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>; + source-pdos = + <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>; + try-power-role = "source"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usbc0_hs: endpoint { + remote-endpoint = <&usb_host0_xhci_drd_sw>; + }; + }; + + port@1 { + reg = <1>; + usbc0_ss: endpoint { + remote-endpoint = <&usbdp_phy0_typec_ss>; + }; + }; + + port@2 { + reg = <2>; + usbc0_sbu: endpoint { + remote-endpoint = <&usbdp_phy0_typec_sbu>; + }; + }; + }; + }; + }; +}; + +&i2s1_8ch { + rockchip,i2s-tx-route = <3 2 1 0>; + rockchip,i2s-rx-route = <1 3 2 0>; + pinctrl-names = "default"; + pinctrl-0 = <&i2s1m0_sclk + &i2s1m0_mclk + &i2s1m0_lrck + &i2s1m0_sdi1 + &i2s1m0_sdo3>; + status = "okay"; +}; + +&pwm0 { + pinctrl-0 = <&pwm0m2_pins>; + pinctrl-names = "default"; + status = "okay"; }; &sdhci { status = "okay"; }; + +&usb_host0_xhci { + dr_mode = "otg"; + usb-role-switch; + + port { + usb_host0_xhci_drd_sw: endpoint { + remote-endpoint = <&usbc0_hs>; + }; + }; +}; + +&usb_host2_xhci { + status = "okay"; +}; + +&usbdp_phy0 { + mode-switch; + orientation-switch; + sbu1-dc-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; + sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; + + port { + #address-cells = <1>; + #size-cells = <0>; + + usbdp_phy0_typec_ss: endpoint@0 { + reg = <0>; + remote-endpoint = <&usbc0_ss>; + }; + + usbdp_phy0_typec_sbu: endpoint@1 { + reg = <1>; + remote-endpoint = <&usbc0_sbu>; + }; + }; +}; -- 2.53.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V2 2/3] arm64: dts: rockchip: refactor items from Orange Pi 5/b to prep for Pro 2026-03-04 2:55 ` [PATCH V2 2/3] arm64: dts: rockchip: refactor items from Orange Pi 5/b to prep for Pro dennis @ 2026-03-04 14:32 ` Andrew Lunn 0 siblings, 0 replies; 7+ messages in thread From: Andrew Lunn @ 2026-03-04 14:32 UTC (permalink / raw) To: dennis Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner, FUKAUMI Naoki, Hsun Lai, Jonas Karlman, Chaoyi Chen, John Clark, Michael Opdenacker, Quentin Schulz, Alexey Charkov, Peter Robinson, devicetree, linux-arm-kernel, linux-rockchip, linux-kernel > +&gmac1 { > + clock_in_out = "output"; > + phy-handle = <&rgmii_phy1>; > + phy-mode = "rgmii-rxid"; I know you are just moving things around, but please try rgmii-id... > + pinctrl-0 = <&gmac1_miim > + &gmac1_tx_bus2 > + &gmac1_rx_bus2 > + &gmac1_rgmii_clk > + &gmac1_rgmii_bus>; > + pinctrl-names = "default"; > + tx_delay = <0x42>; and remove the delay. Andrew ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support 2026-03-04 2:55 [PATCH V2 0/3] Add support for Orange Pi 5 Pro dennis 2026-03-04 2:55 ` [PATCH V2 1/3] dt-bindings: arm: rockchip: Add " dennis 2026-03-04 2:55 ` [PATCH V2 2/3] arm64: dts: rockchip: refactor items from Orange Pi 5/b to prep for Pro dennis @ 2026-03-04 2:55 ` dennis 2026-03-05 4:24 ` Jimmy Hon 2026-03-05 5:19 ` Shawn Lin 2 siblings, 2 replies; 7+ messages in thread From: dennis @ 2026-03-04 2:55 UTC (permalink / raw) To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner Cc: FUKAUMI Naoki, Hsun Lai, Jonas Karlman, Chaoyi Chen, John Clark, Michael Opdenacker, Quentin Schulz, Andrew Lunn, Alexey Charkov, Peter Robinson, devicetree, linux-arm-kernel, linux-rockchip, linux-kernel, Dennis Gilmore From: Dennis Gilmore <dennis@ausil.us> Add device tree for the Xunlong Orange Pi 5 Pro (RK3588S). The Pro differs from the base Orange Pi 5 in the following ways: - No SPI NOR flash; eMMC module slot instead, you can optionally solder a SPI NOR fin place and turn off the eMMC - PCIe-attached NIC (pcie2x1l1) replaces the GMAC1 ethernet - PCIe NVMe slot (pcie2x1l2) - AP6256 WiFi (BCM43456) via SDIO with mmc-pwrseq - BCM4345C5 Bluetooth via uart9 with full RTS/CTS - Two-colour (blue/green) GPIO LED using modern color/function binding - audio is wired up differently Vendors description and links to schematics available: http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-Pro.html Signed-off-by: Dennis Gilmore <dennis@ausil.us> --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../dts/rockchip/rk3588s-orangepi-5-pro.dts | 376 ++++++++++++++++++ 2 files changed, 377 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 4d384f153c13..c99dca2ae9e7 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -214,6 +214,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5b.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5-pro.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-cm5-base.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-radxa-cm5-io.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-roc-pc.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts new file mode 100644 index 000000000000..d656328c906d --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts @@ -0,0 +1,376 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include "rk3588s-orangepi-5.dtsi" + +/ { + model = "Xunlong Orange Pi 5 Pro"; + compatible = "xunlong,orangepi-5-pro", "rockchip,rk3588s"; + + aliases { + /delete-property/ ethernet0; + mmc0 = &sdhci; + mmc1 = &sdmmc; + mmc2 = &sdio; + }; + + /* Pro uses gpio-leds instead; pwm0 LED is not wired up */ + /delete-node/ pwm-leds; + + /* + * Pro uses i2s2 (i2s2m1 mux) for audio, not i2s1. Recreate the sound + * card node pointing at i2s2_2ch instead. + */ + /delete-node/ analog-sound; + + analog-sound { + compatible = "simple-audio-card"; + pinctrl-names = "default"; + pinctrl-0 = <&hp_detect>; + simple-audio-card,bitclock-master = <&masterdai>; + simple-audio-card,format = "i2s"; + simple-audio-card,frame-master = <&masterdai>; + simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; + simple-audio-card,mclk-fs = <256>; + simple-audio-card,name = "rockchip,es8388"; + simple-audio-card,routing = + "Headphones", "LOUT1", + "Headphones", "ROUT1", + "LINPUT1", "Microphone Jack", + "RINPUT1", "Microphone Jack", + "LINPUT2", "Onboard Microphone", + "RINPUT2", "Onboard Microphone"; + simple-audio-card,widgets = + "Microphone", "Microphone Jack", + "Microphone", "Onboard Microphone", + "Headphone", "Headphones"; + + simple-audio-card,cpu { + sound-dai = <&i2s2_2ch>; + }; + + masterdai: simple-audio-card,codec { + sound-dai = <&es8388>; + system-clock-frequency = <12288000>; + }; + }; + + fan: pwm-fan { + compatible = "pwm-fan"; + #cooling-cells = <2>; + cooling-levels = <0 50 100 150 200 255>; + fan-supply = <&vcc5v0_sys>; + pwms = <&pwm2 0 20000000 0>; + }; + + gpio-leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&leds_rgb>; + + blue-led { + color = <LED_COLOR_ID_BLUE>; + function = LED_FUNCTION_STATUS; + gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + + green-led { + color = <LED_COLOR_ID_GREEN>; + function = LED_FUNCTION_ACTIVITY; + gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "mmc0"; + }; + }; + + vcc5v0_otg: regulator-vcc5v0-otg { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&vcc5v0_otg_en>; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "vcc5v0_otg"; + vin-supply = <&vcc5v0_sys>; + }; + + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&hym8563>; + clock-names = "ext_clock"; + post-power-on-delay-ms = <200>; + reset-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_LOW>; + }; + + vcc3v3_pcie20: regulator-vcc3v3-pcie20 { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "vcc3v3_pcie20"; + startup-delay-us = <50000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc3v3_pcie_eth: regulator-vcc3v3-pcie-eth { + compatible = "regulator-fixed"; + regulator-always-on; + regulator-boot-on; + regulator-max-microvolt = <3300000>; + regulator-min-microvolt = <3300000>; + regulator-name = "vcc3v3_pcie_eth"; + vin-supply = <&vcc5v0_sys>; + }; +}; + +/* disable gmac1 as the pro has a PCIe attached NIC */ +&gmac1 { + status = "disabled"; +}; + +/* 40-pin header pins 3/5 */ +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1m4_xfer>; + status = "okay"; +}; + +/* + * Pro routes audio codec via i2c3 (not i2c6) and i2s2m1 (not i2s1m0). + * Delete the inherited es8388 node from i2c6 and redeclare it here. + */ +/delete-node/ &es8388; + +&i2c3 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c3m0_xfer>; + status = "okay"; + + es8388: audio-codec@11 { + compatible = "everest,es8388", "everest,es8328"; + reg = <0x11>; + #sound-dai-cells = <0>; + AVDD-supply = <&vcc_3v3_s0>; + DVDD-supply = <&vcc_1v8_s0>; + HPVDD-supply = <&vcc_3v3_s0>; + PVDD-supply = <&vcc_3v3_s0>; + assigned-clock-rates = <12288000>; + assigned-clocks = <&cru I2S2_2CH_MCLKOUT>; + clocks = <&cru I2S2_2CH_MCLKOUT>; + }; +}; + +/* 40-pin header pins 27/28 */ +&i2c4 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c4m3_xfer>; + status = "okay"; +}; + +/* + * i2s1_8ch uses i2s1m0 which occupies GPIO4_PA0 (CLKREQ#) and GPIO4_PA1 + * (WAKE#) needed for the NVMe M.2 slot. Disable it; audio is on i2s2_2ch. + */ +&i2s1_8ch { + status = "disabled"; +}; + +/* Audio codec on i2s2, m1 mux; add mclk pin to the base pinctrl */ +&i2s2_2ch { + pinctrl-0 = <&i2s2m1_lrck &i2s2m1_mclk &i2s2m1_sclk + &i2s2m1_sdi &i2s2m1_sdo>; + status = "okay"; +}; + +&package_thermal { + polling-delay = <1000>; + + cooling-maps { + map0 { + trip = <&package_fan0>; + cooling-device = <&fan THERMAL_NO_LIMIT 1>; + }; + + map1 { + trip = <&package_fan1>; + cooling-device = <&fan 2 THERMAL_NO_LIMIT>; + }; + }; + + trips { + package_fan0: package-fan0 { + hysteresis = <2000>; + temperature = <55000>; + type = "active"; + }; + + package_fan1: package-fan1 { + hysteresis = <2000>; + temperature = <65000>; + type = "active"; + }; + }; +}; + +/* NVMe */ +&pcie2x1l1 { + pinctrl-names = "default"; + pinctrl-0 = <&pcie30x1m1_1_clkreqn &pcie30x1m1_1_waken>; + reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; + supports-clkreq; + vpcie3v3-supply = <&vcc3v3_pcie_eth>; + status = "okay"; +}; + +/* NIC */ +&pcie2x1l2 { + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie20>; + status = "okay"; +}; + +&pinctrl { + bluetooth { + bt_wake_gpio: bt-wake-pin { + rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + bt_wake_host_irq: bt-wake-host-irq { + rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; + + gpio-leds { + leds_rgb: leds-rgb { + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>, + <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + vcc5v0_otg_en: vcc5v0-otg-en { + rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + wlan { + wifi_host_wake_irq: wifi-host-wake-irq { + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; +}; + +/* pwm0 pin conflicts with i2c4 pin 27 Pro */ +&pwm0 { + status = "disabled"; +}; + +&pwm2 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm2m1_pins>; + status = "okay"; +}; + +&sdhci { + status = "okay"; +}; + +&sdio { + #address-cells = <1>; + #size-cells = <0>; + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + disable-wp; + keep-power-in-suspend; + max-frequency = <150000000>; + mmc-pwrseq = <&sdio_pwrseq>; + no-mmc; + no-sd; + non-removable; + sd-uhs-sdr104; + status = "okay"; + + ap6256: wifi@1 { + compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; + reg = <1>; + interrupt-names = "host-wake"; + interrupt-parent = <&gpio0>; + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_host_wake_irq>; + }; +}; + +&uart9 { + pinctrl-names = "default"; + pinctrl-0 = <&uart9m2_xfer &uart9m2_ctsn &uart9m2_rtsn>; + uart-has-rtscts; + status = "okay"; + + bluetooth { + compatible = "brcm,bcm4345c5"; + clocks = <&hym8563>; + clock-names = "lpo"; + device-wakeup-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; + interrupt-names = "host-wakeup"; + interrupt-parent = <&gpio0>; + interrupts = <RK_PC5 IRQ_TYPE_LEVEL_HIGH>; + max-speed = <1500000>; + pinctrl-names = "default"; + pinctrl-0 = <&bt_wake_host_irq &bt_wake_gpio>; + shutdown-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; + vbat-supply = <&vcc_3v3_s3>; + vddio-supply = <&vcc_1v8_s3>; + }; +}; + +/* USB2 OTG PHY for usb_host0_xhci; phy-supply enables VBUS to USB3 Type-A port */ +&u2phy0_otg { + phy-supply = <&vcc5v0_otg>; +}; + +/* Pro has no FUSB302; the USB-C port is power delivery only */ +/delete-node/ &usbc0; + +/* + * The Pro's USB-C port is power delivery only: no FUSB302, no data lines, + * no alt-mode switching. The parent DTSI enables usbdp_phy0 (status = "okay") + * and adds FUSB302 alt-mode/orientation properties; delete those here. + * + * dp-lane-mux = <0 1>: PHY lanes 0/1 are DP (physically routed to the + * LT8711UXD DP→HDMI2 bridge), lanes 2/3 are USB3 SuperSpeed (physically + * routed to the USB3 Type-A port P3). Without this property the driver + * defaults to USB-only mode and places USB3 on lanes 0/1, which do not + * reach the Type-A connector and makes the USB3 port non-functional. + */ +&usbdp_phy0 { + rockchip,dp-lane-mux = <0 1>; + /delete-property/ mode-switch; + /delete-property/ orientation-switch; + /delete-property/ sbu1-dc-gpios; + /delete-property/ sbu2-dc-gpios; + /delete-node/ port; +}; + +/* USB3 Type-A port*/ +&usb_host0_xhci { + dr_mode = "host"; + /delete-property/ usb-role-switch; + status = "okay"; + /delete-node/ port; +}; + +/* + * combphy2_psu is shared between usb_host2_xhci (USB3) and pcie2x1l1 (PCIe). + * Disable USB3 so the PHY can be used for the NVMe M.2 slot. + */ +&usb_host2_xhci { + status = "disabled"; +}; -- 2.53.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support 2026-03-04 2:55 ` [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support dennis @ 2026-03-05 4:24 ` Jimmy Hon 2026-03-05 5:19 ` Shawn Lin 1 sibling, 0 replies; 7+ messages in thread From: Jimmy Hon @ 2026-03-05 4:24 UTC (permalink / raw) To: dennis Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner, FUKAUMI Naoki, Hsun Lai, Jonas Karlman, Chaoyi Chen, John Clark, Michael Opdenacker, Quentin Schulz, Andrew Lunn, Alexey Charkov, Peter Robinson, devicetree, linux-arm-kernel, linux-rockchip, linux-kernel On Tue, Mar 3, 2026 at 8:55 PM <dennis@ausil.us> wrote: > > From: Dennis Gilmore <dennis@ausil.us> > > Add device tree for the Xunlong Orange Pi 5 Pro (RK3588S). The Pro > differs from the base Orange Pi 5 in the following ways: > > - No SPI NOR flash; eMMC module slot instead, you can optionally solder > a SPI NOR fin place and turn off the eMMC > - PCIe-attached NIC (pcie2x1l1) replaces the GMAC1 ethernet > - PCIe NVMe slot (pcie2x1l2) > - AP6256 WiFi (BCM43456) via SDIO with mmc-pwrseq > - BCM4345C5 Bluetooth via uart9 with full RTS/CTS > - Two-colour (blue/green) GPIO LED using modern color/function binding > - audio is wired up differently > > Vendors description and links to schematics available: > http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-Pro.html > > Signed-off-by: Dennis Gilmore <dennis@ausil.us> > --- > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../dts/rockchip/rk3588s-orangepi-5-pro.dts | 376 ++++++++++++++++++ > 2 files changed, 377 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts > > diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile > index 4d384f153c13..c99dca2ae9e7 100644 > --- a/arch/arm64/boot/dts/rockchip/Makefile > +++ b/arch/arm64/boot/dts/rockchip/Makefile > @@ -214,6 +214,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5b.dtb > +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5-pro.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-cm5-base.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-radxa-cm5-io.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-roc-pc.dtb > diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts > new file mode 100644 > index 000000000000..d656328c906d > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts > @@ -0,0 +1,376 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > + > +/dts-v1/; > + > +#include "rk3588s-orangepi-5.dtsi" > + > +/ { > + model = "Xunlong Orange Pi 5 Pro"; > + compatible = "xunlong,orangepi-5-pro", "rockchip,rk3588s"; > + > + aliases { > + /delete-property/ ethernet0; This looks the same as the V1. Can you send the updated version. > + mmc0 = &sdhci; > + mmc1 = &sdmmc; > + mmc2 = &sdio; > + }; > + > + /* Pro uses gpio-leds instead; pwm0 LED is not wired up */ > + /delete-node/ pwm-leds; > + > + /* > + * Pro uses i2s2 (i2s2m1 mux) for audio, not i2s1. Recreate the sound > + * card node pointing at i2s2_2ch instead. > + */ > + /delete-node/ analog-sound; > + > + analog-sound { > + compatible = "simple-audio-card"; > + pinctrl-names = "default"; > + pinctrl-0 = <&hp_detect>; > + simple-audio-card,bitclock-master = <&masterdai>; > + simple-audio-card,format = "i2s"; > + simple-audio-card,frame-master = <&masterdai>; > + simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; > + simple-audio-card,mclk-fs = <256>; > + simple-audio-card,name = "rockchip,es8388"; > + simple-audio-card,routing = > + "Headphones", "LOUT1", > + "Headphones", "ROUT1", > + "LINPUT1", "Microphone Jack", > + "RINPUT1", "Microphone Jack", > + "LINPUT2", "Onboard Microphone", > + "RINPUT2", "Onboard Microphone"; > + simple-audio-card,widgets = > + "Microphone", "Microphone Jack", > + "Microphone", "Onboard Microphone", > + "Headphone", "Headphones"; > + > + simple-audio-card,cpu { > + sound-dai = <&i2s2_2ch>; > + }; > + > + masterdai: simple-audio-card,codec { > + sound-dai = <&es8388>; > + system-clock-frequency = <12288000>; > + }; > + }; > + > + fan: pwm-fan { > + compatible = "pwm-fan"; > + #cooling-cells = <2>; > + cooling-levels = <0 50 100 150 200 255>; > + fan-supply = <&vcc5v0_sys>; > + pwms = <&pwm2 0 20000000 0>; > + }; > + > + gpio-leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&leds_rgb>; > + > + blue-led { > + color = <LED_COLOR_ID_BLUE>; > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + }; > + > + green-led { > + color = <LED_COLOR_ID_GREEN>; > + function = LED_FUNCTION_ACTIVITY; > + gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "mmc0"; > + }; > + }; > + > + vcc5v0_otg: regulator-vcc5v0-otg { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&vcc5v0_otg_en>; > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <5000000>; > + regulator-min-microvolt = <5000000>; > + regulator-name = "vcc5v0_otg"; > + vin-supply = <&vcc5v0_sys>; > + }; > + > + sdio_pwrseq: sdio-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + clocks = <&hym8563>; > + clock-names = "ext_clock"; > + post-power-on-delay-ms = <200>; > + reset-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_LOW>; > + }; > + > + vcc3v3_pcie20: regulator-vcc3v3-pcie20 { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; > + regulator-boot-on; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "vcc3v3_pcie20"; > + startup-delay-us = <50000>; > + vin-supply = <&vcc5v0_sys>; > + }; > + > + vcc3v3_pcie_eth: regulator-vcc3v3-pcie-eth { > + compatible = "regulator-fixed"; > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "vcc3v3_pcie_eth"; > + vin-supply = <&vcc5v0_sys>; > + }; > +}; > + > +/* disable gmac1 as the pro has a PCIe attached NIC */ > +&gmac1 { > + status = "disabled"; > +}; > + > +/* 40-pin header pins 3/5 */ > +&i2c1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c1m4_xfer>; > + status = "okay"; > +}; > + > +/* > + * Pro routes audio codec via i2c3 (not i2c6) and i2s2m1 (not i2s1m0). > + * Delete the inherited es8388 node from i2c6 and redeclare it here. > + */ > +/delete-node/ &es8388; > + > +&i2c3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c3m0_xfer>; > + status = "okay"; > + > + es8388: audio-codec@11 { > + compatible = "everest,es8388", "everest,es8328"; > + reg = <0x11>; > + #sound-dai-cells = <0>; > + AVDD-supply = <&vcc_3v3_s0>; > + DVDD-supply = <&vcc_1v8_s0>; > + HPVDD-supply = <&vcc_3v3_s0>; > + PVDD-supply = <&vcc_3v3_s0>; > + assigned-clock-rates = <12288000>; > + assigned-clocks = <&cru I2S2_2CH_MCLKOUT>; > + clocks = <&cru I2S2_2CH_MCLKOUT>; > + }; > +}; > + > +/* 40-pin header pins 27/28 */ > +&i2c4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c4m3_xfer>; > + status = "okay"; > +}; > + > +/* > + * i2s1_8ch uses i2s1m0 which occupies GPIO4_PA0 (CLKREQ#) and GPIO4_PA1 > + * (WAKE#) needed for the NVMe M.2 slot. Disable it; audio is on i2s2_2ch. > + */ > +&i2s1_8ch { > + status = "disabled"; > +}; > + > +/* Audio codec on i2s2, m1 mux; add mclk pin to the base pinctrl */ > +&i2s2_2ch { > + pinctrl-0 = <&i2s2m1_lrck &i2s2m1_mclk &i2s2m1_sclk > + &i2s2m1_sdi &i2s2m1_sdo>; > + status = "okay"; > +}; > + > +&package_thermal { > + polling-delay = <1000>; > + > + cooling-maps { > + map0 { > + trip = <&package_fan0>; > + cooling-device = <&fan THERMAL_NO_LIMIT 1>; > + }; > + > + map1 { > + trip = <&package_fan1>; > + cooling-device = <&fan 2 THERMAL_NO_LIMIT>; > + }; > + }; > + > + trips { > + package_fan0: package-fan0 { > + hysteresis = <2000>; > + temperature = <55000>; > + type = "active"; > + }; > + > + package_fan1: package-fan1 { > + hysteresis = <2000>; > + temperature = <65000>; > + type = "active"; > + }; > + }; > +}; > + > +/* NVMe */ > +&pcie2x1l1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pcie30x1m1_1_clkreqn &pcie30x1m1_1_waken>; > + reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; > + supports-clkreq; > + vpcie3v3-supply = <&vcc3v3_pcie_eth>; > + status = "okay"; > +}; > + > +/* NIC */ > +&pcie2x1l2 { > + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; > + vpcie3v3-supply = <&vcc3v3_pcie20>; > + status = "okay"; > +}; > + > +&pinctrl { > + bluetooth { > + bt_wake_gpio: bt-wake-pin { > + rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + > + bt_wake_host_irq: bt-wake-host-irq { > + rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>; > + }; > + }; > + > + gpio-leds { > + leds_rgb: leds-rgb { > + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>, > + <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > + usb { > + vcc5v0_otg_en: vcc5v0-otg-en { > + rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > + wlan { > + wifi_host_wake_irq: wifi-host-wake-irq { > + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; > + }; > + }; > +}; > + > +/* pwm0 pin conflicts with i2c4 pin 27 Pro */ > +&pwm0 { > + status = "disabled"; > +}; > + > +&pwm2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pwm2m1_pins>; > + status = "okay"; > +}; > + > +&sdhci { > + status = "okay"; > +}; > + > +&sdio { > + #address-cells = <1>; > + #size-cells = <0>; > + bus-width = <4>; > + cap-sd-highspeed; > + cap-sdio-irq; > + disable-wp; > + keep-power-in-suspend; > + max-frequency = <150000000>; > + mmc-pwrseq = <&sdio_pwrseq>; > + no-mmc; > + no-sd; > + non-removable; > + sd-uhs-sdr104; > + status = "okay"; > + > + ap6256: wifi@1 { > + compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; > + reg = <1>; > + interrupt-names = "host-wake"; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_host_wake_irq>; > + }; > +}; > + > +&uart9 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart9m2_xfer &uart9m2_ctsn &uart9m2_rtsn>; > + uart-has-rtscts; > + status = "okay"; > + > + bluetooth { > + compatible = "brcm,bcm4345c5"; > + clocks = <&hym8563>; > + clock-names = "lpo"; > + device-wakeup-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; > + interrupt-names = "host-wakeup"; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PC5 IRQ_TYPE_LEVEL_HIGH>; > + max-speed = <1500000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&bt_wake_host_irq &bt_wake_gpio>; > + shutdown-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; > + vbat-supply = <&vcc_3v3_s3>; > + vddio-supply = <&vcc_1v8_s3>; > + }; > +}; > + > +/* USB2 OTG PHY for usb_host0_xhci; phy-supply enables VBUS to USB3 Type-A port */ > +&u2phy0_otg { > + phy-supply = <&vcc5v0_otg>; > +}; > + > +/* Pro has no FUSB302; the USB-C port is power delivery only */ > +/delete-node/ &usbc0; > + > +/* > + * The Pro's USB-C port is power delivery only: no FUSB302, no data lines, > + * no alt-mode switching. The parent DTSI enables usbdp_phy0 (status = "okay") > + * and adds FUSB302 alt-mode/orientation properties; delete those here. > + * > + * dp-lane-mux = <0 1>: PHY lanes 0/1 are DP (physically routed to the > + * LT8711UXD DP→HDMI2 bridge), lanes 2/3 are USB3 SuperSpeed (physically > + * routed to the USB3 Type-A port P3). Without this property the driver > + * defaults to USB-only mode and places USB3 on lanes 0/1, which do not > + * reach the Type-A connector and makes the USB3 port non-functional. > + */ > +&usbdp_phy0 { > + rockchip,dp-lane-mux = <0 1>; > + /delete-property/ mode-switch; > + /delete-property/ orientation-switch; > + /delete-property/ sbu1-dc-gpios; > + /delete-property/ sbu2-dc-gpios; > + /delete-node/ port; > +}; > + > +/* USB3 Type-A port*/ > +&usb_host0_xhci { > + dr_mode = "host"; > + /delete-property/ usb-role-switch; > + status = "okay"; > + /delete-node/ port; > +}; > + > +/* > + * combphy2_psu is shared between usb_host2_xhci (USB3) and pcie2x1l1 (PCIe). > + * Disable USB3 so the PHY can be used for the NVMe M.2 slot. > + */ > +&usb_host2_xhci { > + status = "disabled"; > +}; > -- > 2.53.0 > > > _______________________________________________ > Linux-rockchip mailing list > Linux-rockchip@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-rockchip ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support 2026-03-04 2:55 ` [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support dennis 2026-03-05 4:24 ` Jimmy Hon @ 2026-03-05 5:19 ` Shawn Lin 1 sibling, 0 replies; 7+ messages in thread From: Shawn Lin @ 2026-03-05 5:19 UTC (permalink / raw) To: dennis, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner Cc: shawn.lin, FUKAUMI Naoki, Hsun Lai, Jonas Karlman, Chaoyi Chen, John Clark, Michael Opdenacker, Quentin Schulz, Andrew Lunn, Alexey Charkov, Peter Robinson, devicetree, linux-arm-kernel, linux-rockchip, linux-kernel 在 2026/03/04 星期三 10:55, dennis@ausil.us 写道: > From: Dennis Gilmore <dennis@ausil.us> > > Add device tree for the Xunlong Orange Pi 5 Pro (RK3588S). The Pro > differs from the base Orange Pi 5 in the following ways: > > - No SPI NOR flash; eMMC module slot instead, you can optionally solder > a SPI NOR fin place and turn off the eMMC > - PCIe-attached NIC (pcie2x1l1) replaces the GMAC1 ethernet > - PCIe NVMe slot (pcie2x1l2) > - AP6256 WiFi (BCM43456) via SDIO with mmc-pwrseq > - BCM4345C5 Bluetooth via uart9 with full RTS/CTS > - Two-colour (blue/green) GPIO LED using modern color/function binding > - audio is wired up differently > > Vendors description and links to schematics available: > http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-Pro.html > > Signed-off-by: Dennis Gilmore <dennis@ausil.us> > --- > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../dts/rockchip/rk3588s-orangepi-5-pro.dts | 376 ++++++++++++++++++ > 2 files changed, 377 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts > > diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile > index 4d384f153c13..c99dca2ae9e7 100644 > --- a/arch/arm64/boot/dts/rockchip/Makefile > +++ b/arch/arm64/boot/dts/rockchip/Makefile > @@ -214,6 +214,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5b.dtb > +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-5-pro.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-orangepi-cm5-base.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-radxa-cm5-io.dtb > dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-roc-pc.dtb > diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts > new file mode 100644 > index 000000000000..d656328c906d > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5-pro.dts > @@ -0,0 +1,376 @@ > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > + > +/dts-v1/; > + > +#include "rk3588s-orangepi-5.dtsi" > + > +/ { > + model = "Xunlong Orange Pi 5 Pro"; > + compatible = "xunlong,orangepi-5-pro", "rockchip,rk3588s"; > + > + aliases { > + /delete-property/ ethernet0; > + mmc0 = &sdhci; > + mmc1 = &sdmmc; > + mmc2 = &sdio; > + }; > + > + /* Pro uses gpio-leds instead; pwm0 LED is not wired up */ > + /delete-node/ pwm-leds; > + > + /* > + * Pro uses i2s2 (i2s2m1 mux) for audio, not i2s1. Recreate the sound > + * card node pointing at i2s2_2ch instead. > + */ > + /delete-node/ analog-sound; > + > + analog-sound { > + compatible = "simple-audio-card"; > + pinctrl-names = "default"; > + pinctrl-0 = <&hp_detect>; > + simple-audio-card,bitclock-master = <&masterdai>; > + simple-audio-card,format = "i2s"; > + simple-audio-card,frame-master = <&masterdai>; > + simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; > + simple-audio-card,mclk-fs = <256>; > + simple-audio-card,name = "rockchip,es8388"; > + simple-audio-card,routing = > + "Headphones", "LOUT1", > + "Headphones", "ROUT1", > + "LINPUT1", "Microphone Jack", > + "RINPUT1", "Microphone Jack", > + "LINPUT2", "Onboard Microphone", > + "RINPUT2", "Onboard Microphone"; > + simple-audio-card,widgets = > + "Microphone", "Microphone Jack", > + "Microphone", "Onboard Microphone", > + "Headphone", "Headphones"; > + > + simple-audio-card,cpu { > + sound-dai = <&i2s2_2ch>; > + }; > + > + masterdai: simple-audio-card,codec { > + sound-dai = <&es8388>; > + system-clock-frequency = <12288000>; > + }; > + }; > + > + fan: pwm-fan { > + compatible = "pwm-fan"; > + #cooling-cells = <2>; > + cooling-levels = <0 50 100 150 200 255>; > + fan-supply = <&vcc5v0_sys>; > + pwms = <&pwm2 0 20000000 0>; > + }; > + > + gpio-leds { > + compatible = "gpio-leds"; > + pinctrl-names = "default"; > + pinctrl-0 = <&leds_rgb>; > + > + blue-led { > + color = <LED_COLOR_ID_BLUE>; > + function = LED_FUNCTION_STATUS; > + gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "heartbeat"; > + }; > + > + green-led { > + color = <LED_COLOR_ID_GREEN>; > + function = LED_FUNCTION_ACTIVITY; > + gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; > + linux,default-trigger = "mmc0"; > + }; > + }; > + > + vcc5v0_otg: regulator-vcc5v0-otg { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&vcc5v0_otg_en>; > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <5000000>; > + regulator-min-microvolt = <5000000>; > + regulator-name = "vcc5v0_otg"; > + vin-supply = <&vcc5v0_sys>; > + }; > + > + sdio_pwrseq: sdio-pwrseq { > + compatible = "mmc-pwrseq-simple"; > + clocks = <&hym8563>; > + clock-names = "ext_clock"; > + post-power-on-delay-ms = <200>; > + reset-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_LOW>; > + }; > + > + vcc3v3_pcie20: regulator-vcc3v3-pcie20 { > + compatible = "regulator-fixed"; > + enable-active-high; > + gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; > + regulator-boot-on; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "vcc3v3_pcie20"; > + startup-delay-us = <50000>; > + vin-supply = <&vcc5v0_sys>; > + }; > + > + vcc3v3_pcie_eth: regulator-vcc3v3-pcie-eth { > + compatible = "regulator-fixed"; > + regulator-always-on; > + regulator-boot-on; > + regulator-max-microvolt = <3300000>; > + regulator-min-microvolt = <3300000>; > + regulator-name = "vcc3v3_pcie_eth"; > + vin-supply = <&vcc5v0_sys>; > + }; > +}; > + > +/* disable gmac1 as the pro has a PCIe attached NIC */ > +&gmac1 { > + status = "disabled"; > +}; > + > +/* 40-pin header pins 3/5 */ > +&i2c1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c1m4_xfer>; > + status = "okay"; > +}; > + > +/* > + * Pro routes audio codec via i2c3 (not i2c6) and i2s2m1 (not i2s1m0). > + * Delete the inherited es8388 node from i2c6 and redeclare it here. > + */ > +/delete-node/ &es8388; > + > +&i2c3 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c3m0_xfer>; > + status = "okay"; > + > + es8388: audio-codec@11 { > + compatible = "everest,es8388", "everest,es8328"; > + reg = <0x11>; > + #sound-dai-cells = <0>; > + AVDD-supply = <&vcc_3v3_s0>; > + DVDD-supply = <&vcc_1v8_s0>; > + HPVDD-supply = <&vcc_3v3_s0>; > + PVDD-supply = <&vcc_3v3_s0>; > + assigned-clock-rates = <12288000>; > + assigned-clocks = <&cru I2S2_2CH_MCLKOUT>; > + clocks = <&cru I2S2_2CH_MCLKOUT>; > + }; > +}; > + > +/* 40-pin header pins 27/28 */ > +&i2c4 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c4m3_xfer>; > + status = "okay"; > +}; > + > +/* > + * i2s1_8ch uses i2s1m0 which occupies GPIO4_PA0 (CLKREQ#) and GPIO4_PA1 > + * (WAKE#) needed for the NVMe M.2 slot. Disable it; audio is on i2s2_2ch. > + */ > +&i2s1_8ch { > + status = "disabled"; > +}; > + > +/* Audio codec on i2s2, m1 mux; add mclk pin to the base pinctrl */ > +&i2s2_2ch { > + pinctrl-0 = <&i2s2m1_lrck &i2s2m1_mclk &i2s2m1_sclk > + &i2s2m1_sdi &i2s2m1_sdo>; > + status = "okay"; > +}; > + > +&package_thermal { > + polling-delay = <1000>; > + > + cooling-maps { > + map0 { > + trip = <&package_fan0>; > + cooling-device = <&fan THERMAL_NO_LIMIT 1>; > + }; > + > + map1 { > + trip = <&package_fan1>; > + cooling-device = <&fan 2 THERMAL_NO_LIMIT>; > + }; > + }; > + > + trips { > + package_fan0: package-fan0 { > + hysteresis = <2000>; > + temperature = <55000>; > + type = "active"; > + }; > + > + package_fan1: package-fan1 { > + hysteresis = <2000>; > + temperature = <65000>; > + type = "active"; > + }; > + }; > +}; > + > +/* NVMe */ > +&pcie2x1l1 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pcie30x1m1_1_clkreqn &pcie30x1m1_1_waken>; > + reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; > + supports-clkreq; > + vpcie3v3-supply = <&vcc3v3_pcie_eth>; I don't get this. NVMe M.2 slot uses power for eth? > + status = "okay"; > +}; > + > +/* NIC */ > +&pcie2x1l2 { > + reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; > + vpcie3v3-supply = <&vcc3v3_pcie20>; The same question as above. > + status = "okay"; > +}; > + > +&pinctrl { > + bluetooth { > + bt_wake_gpio: bt-wake-pin { > + rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + > + bt_wake_host_irq: bt-wake-host-irq { > + rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>; > + }; > + }; > + > + gpio-leds { > + leds_rgb: leds-rgb { > + rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>, > + <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > + usb { > + vcc5v0_otg_en: vcc5v0-otg-en { > + rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; > + }; > + }; > + > + wlan { > + wifi_host_wake_irq: wifi-host-wake-irq { > + rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; > + }; > + }; > +}; > + > +/* pwm0 pin conflicts with i2c4 pin 27 Pro */ > +&pwm0 { > + status = "disabled"; > +}; > + > +&pwm2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pwm2m1_pins>; > + status = "okay"; > +}; > + > +&sdhci { > + status = "okay"; > +}; > + > +&sdio { > + #address-cells = <1>; > + #size-cells = <0>; > + bus-width = <4>; > + cap-sd-highspeed; > + cap-sdio-irq; > + disable-wp; Please remove disable-wp for SDIO device. > + keep-power-in-suspend; > + max-frequency = <150000000>; > + mmc-pwrseq = <&sdio_pwrseq>; > + no-mmc; > + no-sd; > + non-removable; > + sd-uhs-sdr104; > + status = "okay"; > + > + ap6256: wifi@1 { > + compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; > + reg = <1>; > + interrupt-names = "host-wake"; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_host_wake_irq>; > + }; > +}; > + > +&uart9 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart9m2_xfer &uart9m2_ctsn &uart9m2_rtsn>; > + uart-has-rtscts; > + status = "okay"; > + > + bluetooth { > + compatible = "brcm,bcm4345c5"; > + clocks = <&hym8563>; > + clock-names = "lpo"; > + device-wakeup-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; > + interrupt-names = "host-wakeup"; > + interrupt-parent = <&gpio0>; > + interrupts = <RK_PC5 IRQ_TYPE_LEVEL_HIGH>; > + max-speed = <1500000>; > + pinctrl-names = "default"; > + pinctrl-0 = <&bt_wake_host_irq &bt_wake_gpio>; > + shutdown-gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; > + vbat-supply = <&vcc_3v3_s3>; > + vddio-supply = <&vcc_1v8_s3>; > + }; > +}; > + > +/* USB2 OTG PHY for usb_host0_xhci; phy-supply enables VBUS to USB3 Type-A port */ > +&u2phy0_otg { > + phy-supply = <&vcc5v0_otg>; > +}; > + > +/* Pro has no FUSB302; the USB-C port is power delivery only */ > +/delete-node/ &usbc0; > + > +/* > + * The Pro's USB-C port is power delivery only: no FUSB302, no data lines, > + * no alt-mode switching. The parent DTSI enables usbdp_phy0 (status = "okay") > + * and adds FUSB302 alt-mode/orientation properties; delete those here. > + * > + * dp-lane-mux = <0 1>: PHY lanes 0/1 are DP (physically routed to the > + * LT8711UXD DP→HDMI2 bridge), lanes 2/3 are USB3 SuperSpeed (physically > + * routed to the USB3 Type-A port P3). Without this property the driver > + * defaults to USB-only mode and places USB3 on lanes 0/1, which do not > + * reach the Type-A connector and makes the USB3 port non-functional. > + */ > +&usbdp_phy0 { > + rockchip,dp-lane-mux = <0 1>; > + /delete-property/ mode-switch; > + /delete-property/ orientation-switch; > + /delete-property/ sbu1-dc-gpios; > + /delete-property/ sbu2-dc-gpios; > + /delete-node/ port; > +}; > + > +/* USB3 Type-A port*/ > +&usb_host0_xhci { > + dr_mode = "host"; > + /delete-property/ usb-role-switch; > + status = "okay"; > + /delete-node/ port; > +}; > + > +/* > + * combphy2_psu is shared between usb_host2_xhci (USB3) and pcie2x1l1 (PCIe). > + * Disable USB3 so the PHY can be used for the NVMe M.2 slot. > + */ > +&usb_host2_xhci { > + status = "disabled"; > +}; > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-03-05 8:49 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-03-04 2:55 [PATCH V2 0/3] Add support for Orange Pi 5 Pro dennis 2026-03-04 2:55 ` [PATCH V2 1/3] dt-bindings: arm: rockchip: Add " dennis 2026-03-04 2:55 ` [PATCH V2 2/3] arm64: dts: rockchip: refactor items from Orange Pi 5/b to prep for Pro dennis 2026-03-04 14:32 ` Andrew Lunn 2026-03-04 2:55 ` [PATCH V2 3/3] arm64: dts: rockchip: Add Orange Pi 5 Pro board support dennis 2026-03-05 4:24 ` Jimmy Hon 2026-03-05 5:19 ` Shawn Lin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®