// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2023 Ondřej Jirman */ /dts-v1/; #include #include #include #include #include "rk3588-orangepi-5.dtsi" / { model = "Xunlong Orange Pi 5 Plus"; compatible = "xunlong,orangepi-5-plus", "rockchip,rk3588"; hdmi0-con { compatible = "hdmi-connector"; type = "a"; port { hdmi0_con_in: endpoint { remote-endpoint = <&hdmi0_out_con>; }; }; }; ir-receiver { compatible = "gpio-ir-receiver"; gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&ir_receiver_pin>; }; rfkill { compatible = "rfkill-gpio"; label = "rfkill-pcie-wlan"; radio-type = "wlan"; shutdown-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>; }; vbus5v0_typec: regulator-vbus-typec { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&typec5v_pwren>; regulator-name = "vbus5v0_typec"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vcc5v0_sys>; }; }; &speaker_amp { enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>; status = "okay"; }; &headphone_amp { enable-gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>; }; &analog_sound { pinctrl-names = "default"; pinctrl-0 = <&hp_detect>; simple-audio-card,aux-devs = <&speaker_amp>, <&headphone_amp>; simple-audio-card,hp-det-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_LOW>; simple-audio-card,widgets = "Microphone", "Onboard Microphone", "Microphone", "Microphone Jack", "Speaker", "Speaker", "Headphone", "Headphones"; simple-audio-card,routing = "Headphones", "LOUT1", "Headphones", "ROUT1", "Speaker", "LOUT2", "Speaker", "ROUT2", "Headphones", "Headphones Amp OUTL", "Headphones", "Headphones Amp OUTR", "Headphones Amp INL", "LOUT1", "Headphones Amp INR", "ROUT1", "Speaker", "Speaker Amp OUTL", "Speaker", "Speaker Amp OUTR", "Speaker Amp INL", "LOUT2", "Speaker Amp INR", "ROUT2", /* single ended signal to LINPUT1 */ "LINPUT1", "Microphone Jack", "RINPUT1", "Microphone Jack", /* differential signal */ "LINPUT2", "Onboard Microphone", "RINPUT2", "Onboard Microphone"; }; &combphy0_ps { status = "okay"; }; &combphy1_ps { status = "okay"; }; &fan { pwms = <&pwm3 0 50000 0>; }; &hdmi0 { status = "okay"; }; &hdmi0_in { hdmi0_in_vp0: endpoint { remote-endpoint = <&vp0_out_hdmi0>; }; }; &hdmi0_out { hdmi0_out_con: endpoint { remote-endpoint = <&hdmi0_con_in>; }; }; &hdptxphy_hdmi0 { status = "okay"; }; &hym8563 { interrupt-parent = <&gpio0>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&hym8563_int>; }; &i2c6 { usbc0: usb-typec@22 { compatible = "fcs,fusb302"; reg = <0x22>; interrupt-parent = <&gpio0>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&usbc0_int>; vbus-supply = <&vbus5v0_typec>; status = "okay"; usb_con: connector { compatible = "usb-c-connector"; data-role = "dual"; label = "USB-C"; power-role = "dual"; op-sink-microwatt = <10>; source-pdos = ; sink-pdos = ; 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>; }; }; }; }; }; }; &led_blue_gpio { gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_HIGH>; status = "okay"; }; &led_green_pwm { pwms = <&pwm2 0 25000 0>; }; /* phy1 - M.KEY socket */ &pcie2x1l0 { reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc3v3_wf>; status = "okay"; }; /* phy2 - right ethernet port */ &pcie2x1l1 { reset-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc3v3_pcie_eth>; status = "okay"; }; /* phy0 - left ethernet port */ &pcie2x1l2 { reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc3v3_pcie_eth>; status = "okay"; }; &pinctrl { hym8563 { hym8563_int: hym8563-int { rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; }; leds { blue_led_pin: blue-led { rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; }; }; ir-receiver { ir_receiver_pin: ir-receiver-pin { rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; }; }; sound { hp_detect: hp-detect { rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; }; }; usb { vcc5v0_usb20_en: vcc5v0-usb20-en { rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; }; }; usb-typec { usbc0_int: usbc0-int { rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; }; typec5v_pwren: typec5v-pwren { rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; }; }; &pwm2 { pinctrl-0 = <&pwm2m1_pins>; pinctrl-names = "default"; status = "okay"; }; &pwm3 { pinctrl-0 = <&pwm3m1_pins>; status = "okay"; }; &recovery_button { status = "okay"; }; &sfc { pinctrl-names = "default"; pinctrl-0 = <&fspim1_pins>; }; &u2phy1_otg { phy-supply = <&vcc5v0_sys>; }; &uart9 { pinctrl-0 = <&uart9m0_xfer>; status = "okay"; }; &usbdp_phy0 { mode-switch; orientation-switch; sbu1-dc-gpios = <&gpio4 RK_PA6 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>; }; }; }; &usb_host0_xhci { usb-role-switch; port { usb_host0_xhci_drd_sw: endpoint { remote-endpoint = <&usbc0_hs>; }; }; }; &vcc3v3_pcie_eth { gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; }; &vcc3v3_wf { status = "okay"; }; &vcc5v0_usb20 { gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&vcc5v0_usb20_en>; }; &vp0 { vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { reg = ; remote-endpoint = <&hdmi0_in_vp0>; }; };