// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2021 Rockchip Electronics Co., Ltd. * Copyright (c) 2023 Thomas McKahan * Copyright (c) 2024 Sebastian Kropatsch * */ /dts-v1/; #include #include #include #include #include #include "rk3588-friendlyelec-cm3588.dtsi" / { model = "FriendlyElec CM3588 NAS"; compatible = "friendlyarm,cm3588-nas", "friendlyarm,cm3588", "rockchip,rk3588"; adc_key_recovery: adc-key-recovery { compatible = "adc-keys"; io-channels = <&saradc 1>; io-channel-names = "buttons"; keyup-threshold-microvolt = <1800000>; poll-interval = <100>; button-recovery { label = "Recovery"; linux,code = ; press-threshold-microvolt = <17000>; }; }; analog-sound { compatible = "simple-audio-card"; pinctrl-names = "default"; pinctrl-0 = <&headphone_detect>; simple-audio-card,format = "i2s"; simple-audio-card,hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>; simple-audio-card,mclk-fs = <256>; simple-audio-card,name = "realtek,rt5616-codec"; simple-audio-card,routing = "Headphones", "HPOL", "Headphones", "HPOR", "MIC1", "Microphone Jack", "Microphone Jack", "micbias1"; simple-audio-card,widgets = "Headphone", "Headphones", "Microphone", "Microphone Jack"; simple-audio-card,cpu { sound-dai = <&i2s0_8ch>; }; simple-audio-card,codec { sound-dai = <&rt5616>; }; }; buzzer: pwm-beeper { compatible = "pwm-beeper"; amp-supply = <&vcc_5v0_sys>; beeper-hz = <500>; pwms = <&pwm8 0 500000 0>; }; fan: pwm-fan { compatible = "pwm-fan"; #cooling-cells = <2>; cooling-levels = <0 50 80 120 160 220>; fan-supply = <&vcc_5v0_sys>; pwms = <&pwm1 0 50000 0>; }; gpio_keys: gpio-keys { compatible = "gpio-keys"; pinctrl-names = "default"; pinctrl-0 = <&key1_pin>; button-user { debounce-interval = <50>; gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>; label = "User Button"; linux,code = ; wakeup-source; }; }; hdmi0-con { compatible = "hdmi-connector"; type = "a"; port { hdmi0_con_in: endpoint { remote-endpoint = <&hdmi0_out_con>; }; }; }; ir-receiver { compatible = "gpio-ir-receiver"; gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>; }; vcc_12v_dcin: regulator-vcc-12v-dcin { compatible = "regulator-fixed"; regulator-name = "vcc_12v_dcin"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <12000000>; regulator-max-microvolt = <12000000>; }; vcc_3v3_m2_a: regulator-vcc-3v3-m2-a { compatible = "regulator-fixed"; regulator-name = "vcc_3v3_m2_a"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_12v_dcin>; }; vcc_3v3_m2_b: regulator-vcc-3v3-m2-b { compatible = "regulator-fixed"; regulator-name = "vcc_3v3_m2_b"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_12v_dcin>; }; vcc_3v3_m2_c: regulator-vcc-3v3-m2-c { compatible = "regulator-fixed"; regulator-name = "vcc_3v3_m2_c"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_12v_dcin>; }; vcc_3v3_m2_d: regulator-vcc-3v3-m2-d { compatible = "regulator-fixed"; regulator-name = "vcc_3v3_m2_d"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_12v_dcin>; }; /* vcc_5v0_sys powers the peripherals */ vcc_5v0_sys: regulator-vcc-5v0-sys { compatible = "regulator-fixed"; regulator-name = "vcc_5v0_sys"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vcc_12v_dcin>; }; /* SY6280AAC power switch (U14 in schematics) */ vcc_5v0_host_20: regulator-vcc-5v0-host-20 { compatible = "regulator-fixed"; enable-active-high; gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&vcc_5v0_host20_en>; regulator-name = "vcc_5v0_host_20"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vcc_5v0_sys>; }; /* SY6280AAC power switch (U8 in schematics) */ vcc_5v0_host_30_p1: regulator-vcc-5v0-host-30-p1 { compatible = "regulator-fixed"; enable-active-high; gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&vcc_5v0_host30p1_en>; regulator-name = "vcc_5v0_host_30_p1"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vcc_5v0_sys>; }; /* SY6280AAC power switch (U9 in schematics) */ vcc_5v0_host_30_p2: regulator-vcc-5v0-host-30-p2 { compatible = "regulator-fixed"; enable-active-high; gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&vcc_5v0_host30p2_en>; regulator-name = "vcc_5v0_host_30_p2"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vcc_5v0_sys>; }; /* SY6280AAC power switch (U10 in schematics) */ vbus_5v0_typec: regulator-vbus-5v0-typec { compatible = "regulator-fixed"; enable-active-high; gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&typec_5v_pwr_en>; regulator-name = "vbus_5v0_typec"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; vin-supply = <&vcc_5v0_sys>; }; }; /* vcc_4v0_sys powers the RK806 and RK860's */ &vcc_4v0_sys { vin-supply = <&vcc_12v_dcin>; }; /* Combo PHY 1 is configured to act as as PCIe 2.0 PHY */ /* Used by PCIe controller 2 (pcie2x1l0) */ &combphy1_ps { status = "okay"; }; /* Combo PHY 2 is configured to act as USB3 PHY */ /* Used by USB 3.0 OTG 2 controller (USB 3.0 Type-A port 2) */ /* CM3588 USB Controller Config Table: USB30 HOST2 */ &combphy2_psu { status = "okay"; }; /* GPIO names are in the format "Human-readable-name [SIGNAL_LABEL]" */ /* Signal labels match the official CM3588 NAS SDK schematic revision 2309 */ &gpio0 { gpio-line-names = /* GPIO0 A0-A7 */ "", "", "", "", "MicroSD detect [SDMMC_DET_L]", "", "", "", /* GPIO0 B0-B7 */ "", "", "", "", "", "", "", "", /* GPIO0 C0-C7 */ "", "", "", "", "Pin 10 [UART0_RX_M0]", "Pin 08 [UART0_TX_M0/PWM4_M0]", "Pin 32 [PWM5_M1]", "", /* GPIO0 D0-D7 */ "", "", "", "USB3 Type-C [CC_INT_L]", "IR receiver [PWM3_IR_M0]", "User Button", "", ""; }; &gpio1 { gpio-line-names = /* GPIO1 A0-A7 */ "Pin 27 [UART6_RX_M1]", "Pin 28 [UART6_TX_M1]", "", "", "USB2 Type-A [USB2_PWREN]", "", "", "Pin 15", /* GPIO1 B0-B7 */ "Pin 26", "Pin 21 [SPI0_MISO_M2]", "Pin 19 [SPI0_MOSI_M2/UART4_RX_M2]", "Pin 23 [SPI0_CLK_M2/UART4_TX_M2]", "Pin 24 [SPI0_CS0_M2/UART7_RX_M2]", "Pin 22 [SPI0_CS1_M0/UART7_TX_M2]", "", "CSI-Pin 14 [MIPI_CAM2_CLKOUT]", /* GPIO1 C0-C7 */ "", "", "", "", "Headphone detect [HP_DET_L]", "", "", "", /* GPIO1 D0-D7 */ "", "", "USB3 Type-C [TYPEC5V_PWREN_H]", "5V Fan [PWM1_M1]", "", "HDMI-in detect [HDMIIRX_DET_L]", "Pin 05 [I2C8_SCL_M2]", "Pin 03 [I2C8_SDA_M2]"; }; &gpio2 { gpio-line-names = /* GPIO2 A0-A7 */ "", "", "", "", "", "", "SPI NOR Flash [FSPI_D0_M1]", "SPI NOR Flash [FSPI_D1_M1]", /* GPIO2 B0-B7 */ "SPI NOR Flash [FSPI_D2_M1]", "SPI NOR Flash [FSPI_D3_M1]", "", "SPI NOR Flash [FSPI_CLK_M1]", "SPI NOR Flash [FSPI_CSN0_M1]", "", "", "", /* GPIO2 C0-C7 */ "", "CSI-Pin 11 [MIPI_CAM2_RESET_L]", "CSI-Pin 12 [MIPI_CAM2_PDN_L]", "", "", "", "", "", /* GPIO2 D0-D7 */ "", "", "", "", "", "", "", ""; }; &gpio3 { gpio-line-names = /* GPIO3 A0-A7 */ "Pin 35 [SPI4_MISO_M1/PWM10_M0]", "Pin 38 [SPI4_MOSI_M1]", "Pin 40 [SPI4_CLK_M1/UART8_TX_M1]", "Pin 36 [SPI4_CS0_M1/UART8_RX_M1]", "Pin 37 [SPI4_CS1_M1]", "USB3-A #2 [USB3_2_PWREN]", "DSI-Pin 12 [LCD_RST]", "Buzzer [PWM8_M0]", /* GPIO3 B0-B7 */ "Pin 33 [PWM9_M0]", "DSI-Pin 10 [PWM2_M1/LCD_BL]", "Pin 07", "Pin 16", "Pin 18", "Pin 29 [UART3_TX_M1/PWM12_M0]", "Pin 31 [UART3_RX_M1/PWM13_M0]", "Pin 12", /* GPIO3 C0-C7 */ "DSI-Pin 08 [TP_INT_L]", "DSI-Pin 14 [TP_RST_L]", "Pin 11 [PWM14_M0]", "Pin 13 [PWM15_IR_M0]", "", "", "", "DSI-Pin 06 [I2C5_SCL_M0_TP]", /* GPIO3 D0-D7 */ "DSI-Pin 05 [I2C5_SDA_M0_TP]", "", "", "", "", "", "", ""; }; &gpio4 { gpio-line-names = /* GPIO4 A0-A7 */ "", "", "M.2 M-Key Slot4 [M2_D_PERST_L]", "", "", "", "", "", /* GPIO4 B0-B7 */ "USB3-A #1 [USB3_TYPEC1_PWREN]", "", "", "M.2 M-Key Slot3 [M2_C_PERST_L]", "M.2 M-Key Slot2 [M2_B_PERST_L]", "M.2 M-Key Slot1 [M2_A_CLKREQ_L]", "M.2 M-Key Slot1 [M2_A_PERST_L]", "", /* GPIO4 C0-C7 */ "", "", "", "", "", "", "", "", /* GPIO4 D0-D7 */ "", "", "", "", "", "", "", ""; }; &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"; }; /* Connected to MIPI-DSI0 */ &i2c5 { pinctrl-names = "default"; pinctrl-0 = <&i2c5m0_xfer>; status = "disabled"; }; &i2c6 { fusb302: typec-portc@22 { compatible = "fcs,fusb302"; reg = <0x22>; interrupt-parent = <&gpio0>; interrupts = ; pinctrl-names = "default"; pinctrl-0 = <&usbc0_int>; vbus-supply = <&vbus_5v0_typec>; usb_con: connector { compatible = "usb-c-connector"; data-role = "dual"; label = "USB-C"; power-role = "source"; source-pdos = ; try-power-role = "source"; vbus-supply = <&vbus_5v0_typec>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; usbc0_orien_sw: endpoint { remote-endpoint = <&usbdp_phy0_orientation_switch>; }; }; port@1 { reg = <1>; usbc0_role_sw: endpoint { remote-endpoint = <&dwc3_0_role_switch>; }; }; port@2 { reg = <2>; dp_altmode_mux: endpoint { remote-endpoint = <&usbdp_phy0_dp_altmode_mux>; }; }; }; }; }; }; /* Connected to MIPI-CSI1 */ /* &i2c7 */ /* GPIO Connector, connected to 40-pin GPIO header */ &i2c8 { pinctrl-names = "default"; pinctrl-0 = <&i2c8m2_xfer>; status = "okay"; }; &pcie2x1l0 { /* 2. M.2 socket, CON14: pcie30phy port0 lane1, @fe170000 */ max-link-speed = <3>; num-lanes = <1>; phys = <&pcie30phy>; pinctrl-names = "default"; pinctrl-0 = <&pcie2_0_rst>; reset-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc_3v3_m2_b>; status = "okay"; }; &pcie2x1l1 { /* 4. M.2 socket, CON16: pcie30phy port1 lane1, @fe180000 */ max-link-speed = <3>; num-lanes = <1>; phys = <&pcie30phy>; pinctrl-names = "default"; pinctrl-0 = <&pcie2_1_rst>; reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc_3v3_m2_d>; status = "okay"; }; &pcie30phy { /* * Data lane mapping <1 3 2 4> = x1x1 x1x1 (bifurcation of both ports) * port 0 lane 0 - always mapped to controller 0 (4L) * port 0 lane 1 - map to controller 2 (1L0) * port 1 lane 0 - map to controller 1 (2L) * port 1 lane 1 - map to controller 3 (1L1) */ data-lanes = <1 3 2 4>; status = "okay"; }; &pcie3x4 { /* 1. M.2 socket, CON13: pcie30phy port0 lane0, @fe150000 */ max-link-speed = <3>; num-lanes = <1>; pinctrl-names = "default"; pinctrl-0 = <&pcie3x4_rst>; reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc_3v3_m2_a>; status = "okay"; }; &pcie3x2 { /* 3. M.2 socket, CON15: pcie30phy port1 lane0, @fe160000 */ max-link-speed = <3>; num-lanes = <1>; pinctrl-names = "default"; pinctrl-0 = <&pcie3x2_rst>; reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc_3v3_m2_c>; status = "okay"; }; &pinctrl { audio { headphone_detect: headphone-detect { rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; }; }; gpio-key { key1_pin: key1-pin { rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; }; }; pcie { pcie2_0_rst: pcie2-0-rst { rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; }; pcie2_1_rst: pcie2-1-rst { rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; }; pcie3x2_rst: pcie3x2-rst { rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; }; pcie3x4_rst: pcie3x4-rst { rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; }; }; usb { vcc_5v0_host20_en: vcc-5v0-host20-en { rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; }; vcc_5v0_host30p1_en: vcc-5v0-host30p1-en { rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; vcc_5v0_host30p2_en: vcc-5v0-host30p2-en { rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; }; }; usb-typec { usbc0_int: usbc0-int { rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; }; typec_5v_pwr_en: typec-5v-pwr-en { rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; }; }; }; /* Connected to 5V Fan */ &pwm1 { pinctrl-names = "default"; pinctrl-0 = <&pwm1m1_pins>; status = "okay"; }; /* Connected to MIPI-DSI0 */ &pwm2 { pinctrl-names = "default"; pinctrl-0 = <&pwm2m1_pins>; }; /* Connected to IR Receiver */ &pwm3 { pinctrl-names = "default"; pinctrl-0 = <&pwm3m0_pins>; status = "okay"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with UART0 */ &pwm4 { pinctrl-names = "default"; pinctrl-0 = <&pwm4m1_pins>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ &pwm5 { pinctrl-names = "default"; pinctrl-0 = <&pwm5m1_pins>; status = "okay"; }; /* Connected to Buzzer */ &pwm8 { pinctrl-names = "default"; pinctrl-0 = <&pwm8m0_pins>; status = "okay"; }; /* GPIO Connector, connected to 40-pin GPIO header */ &pwm9 { pinctrl-names = "default"; pinctrl-0 = <&pwm9m0_pins>; status = "okay"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with SPI4 */ &pwm10 { pinctrl-names = "default"; pinctrl-0 = <&pwm10m0_pins>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with UART3 */ &pwm12 { pinctrl-names = "default"; pinctrl-0 = <&pwm12m0_pins>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with UART3 */ &pwm13 { pinctrl-names = "default"; pinctrl-0 = <&pwm13m0_pins>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ &pwm14 { pinctrl-names = "default"; pinctrl-0 = <&pwm14m0_pins>; status = "okay"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Optimized for infrared applications */ &pwm15 { pinctrl-names = "default"; pinctrl-0 = <&pwm15m0_pins>; status = "disabled"; }; /* microSD card */ &sdmmc { status = "okay"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with UART4, UART7 and PWM10 */ &spi0 { num-cs = <1>; pinctrl-names = "default"; pinctrl-0 = <&spi0m2_cs0 &spi0m2_pins>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with UART8 */ &spi4 { num-cs = <1>; pinctrl-names = "default"; pinctrl-0 = <&spi4m1_cs0 &spi4m1_pins>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with PWM4 */ &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0m0_xfer>; status = "disabled"; }; /* Debug UART */ &uart2 { status = "okay"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with PWM12 and PWM13 */ &uart3 { pinctrl-names = "default"; pinctrl-0 = <&uart3m1_xfer>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with SPI0 */ &uart4 { pinctrl-names = "default"; pinctrl-0 = <&uart4m2_xfer>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ &uart6 { pinctrl-names = "default"; pinctrl-0 = <&uart6m1_xfer>; status = "okay"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with SPI0 */ &uart7 { pinctrl-names = "default"; pinctrl-0 = <&uart7m2_xfer>; status = "disabled"; }; /* GPIO Connector, connected to 40-pin GPIO header */ /* Shared with SPI4 */ &uart8 { pinctrl-names = "default"; pinctrl-0 = <&uart8m1_xfer>; status = "disabled"; }; /* USB2 PHY for USB Type-C port */ /* CM3588 USB Controller Config Table: USB20 OTG0 */ &u2phy0 { status = "okay"; }; &u2phy0_otg { phy-supply = <&vbus_5v0_typec>; status = "okay"; }; /* USB2 PHY for USB 3.0 Type-A port 1 */ /* CM3588 USB Controller Config Table: USB20 OTG1 */ &u2phy1 { status = "okay"; }; &u2phy1_otg { phy-supply = <&vcc_5v0_host_30_p1>; status = "okay"; }; /* USB2 PHY for USB 2.0 Type-A */ /* CM3588 USB Controller Config Table: USB20 HOST0 */ &u2phy2 { status = "okay"; }; &u2phy2_host { phy-supply = <&vcc_5v0_host_20>; status = "okay"; }; /* USB2 PHY for USB 3.0 Type-A port 2 */ /* CM3588 USB Controller Config Table: USB20 HOST1 */ &u2phy3 { status = "okay"; }; &u2phy3_host { phy-supply = <&vcc_5v0_host_30_p2>; status = "okay"; }; /* USB 2.0 Type-A */ /* PHY: <&u2phy2_host> */ &usb_host0_ehci { status = "okay"; }; /* USB 2.0 Type-A */ /* PHY: <&u2phy2_host> */ &usb_host0_ohci { status = "okay"; }; /* USB Type-C */ /* PHYs: <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3> */ &usb_host0_xhci { usb-role-switch; status = "okay"; port { dwc3_0_role_switch: endpoint { remote-endpoint = <&usbc0_role_sw>; }; }; }; /* Lower USB 3.0 Type-A (port 2) */ /* PHY: <&u2phy3_host> */ &usb_host1_ehci { status = "okay"; }; /* Lower USB 3.0 Type-A (port 2) */ /* PHY: <&u2phy3_host> */ &usb_host1_ohci { status = "okay"; }; /* Upper USB 3.0 Type-A (port 1) */ /* PHYs: <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3> */ &usb_host1_xhci { dr_mode = "host"; status = "okay"; }; /* Lower USB 3.0 Type-A (port 2) */ /* PHYs: <&combphy2_psu PHY_TYPE_USB3> */ &usb_host2_xhci { status = "okay"; }; /* USB3 PHY for USB Type-C port */ /* CM3588 USB Controller Config Table: USB30 OTG0 */ &usbdp_phy0 { mode-switch; orientation-switch; sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>; sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; status = "okay"; port { #address-cells = <1>; #size-cells = <0>; usbdp_phy0_orientation_switch: endpoint@0 { reg = <0>; remote-endpoint = <&usbc0_orien_sw>; }; usbdp_phy0_dp_altmode_mux: endpoint@1 { reg = <1>; remote-endpoint = <&dp_altmode_mux>; }; }; }; /* USB3 PHY for USB 3.0 Type-A port 1 */ /* CM3588 USB Controller Config Table: USB30 OTG1 */ &usbdp_phy1 { status = "okay"; }; &vop { status = "okay"; }; &vop_mmu { status = "okay"; }; &vp0 { vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { reg = ; remote-endpoint = <&hdmi0_in_vp0>; }; };