1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*0e8011faSEmmanuel Vadot/* 3*0e8011faSEmmanuel Vadot * Copyright (c) 2021 Rockchip Electronics Co., Ltd. 4*0e8011faSEmmanuel Vadot * Copyright (c) 2023 Thomas McKahan 5*0e8011faSEmmanuel Vadot * Copyright (c) 2024 Sebastian Kropatsch 6*0e8011faSEmmanuel Vadot * 7*0e8011faSEmmanuel Vadot */ 8*0e8011faSEmmanuel Vadot 9*0e8011faSEmmanuel Vadot/dts-v1/; 10*0e8011faSEmmanuel Vadot 11*0e8011faSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 12*0e8011faSEmmanuel Vadot#include <dt-bindings/input/input.h> 13*0e8011faSEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h> 14*0e8011faSEmmanuel Vadot#include <dt-bindings/usb/pd.h> 15*0e8011faSEmmanuel Vadot#include "rk3588-friendlyelec-cm3588.dtsi" 16*0e8011faSEmmanuel Vadot 17*0e8011faSEmmanuel Vadot/ { 18*0e8011faSEmmanuel Vadot model = "FriendlyElec CM3588 NAS"; 19*0e8011faSEmmanuel Vadot compatible = "friendlyarm,cm3588-nas", "friendlyarm,cm3588", "rockchip,rk3588"; 20*0e8011faSEmmanuel Vadot 21*0e8011faSEmmanuel Vadot adc_key_recovery: adc-key-recovery { 22*0e8011faSEmmanuel Vadot compatible = "adc-keys"; 23*0e8011faSEmmanuel Vadot io-channels = <&saradc 1>; 24*0e8011faSEmmanuel Vadot io-channel-names = "buttons"; 25*0e8011faSEmmanuel Vadot keyup-threshold-microvolt = <1800000>; 26*0e8011faSEmmanuel Vadot poll-interval = <100>; 27*0e8011faSEmmanuel Vadot 28*0e8011faSEmmanuel Vadot button-recovery { 29*0e8011faSEmmanuel Vadot label = "Recovery"; 30*0e8011faSEmmanuel Vadot linux,code = <KEY_VENDOR>; 31*0e8011faSEmmanuel Vadot press-threshold-microvolt = <17000>; 32*0e8011faSEmmanuel Vadot }; 33*0e8011faSEmmanuel Vadot }; 34*0e8011faSEmmanuel Vadot 35*0e8011faSEmmanuel Vadot analog-sound { 36*0e8011faSEmmanuel Vadot compatible = "simple-audio-card"; 37*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 38*0e8011faSEmmanuel Vadot pinctrl-0 = <&headphone_detect>; 39*0e8011faSEmmanuel Vadot 40*0e8011faSEmmanuel Vadot simple-audio-card,format = "i2s"; 41*0e8011faSEmmanuel Vadot simple-audio-card,hp-det-gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>; 42*0e8011faSEmmanuel Vadot simple-audio-card,mclk-fs = <256>; 43*0e8011faSEmmanuel Vadot simple-audio-card,name = "realtek,rt5616-codec"; 44*0e8011faSEmmanuel Vadot 45*0e8011faSEmmanuel Vadot simple-audio-card,routing = 46*0e8011faSEmmanuel Vadot "Headphones", "HPOL", 47*0e8011faSEmmanuel Vadot "Headphones", "HPOR", 48*0e8011faSEmmanuel Vadot "MIC1", "Microphone Jack", 49*0e8011faSEmmanuel Vadot "Microphone Jack", "micbias1"; 50*0e8011faSEmmanuel Vadot simple-audio-card,widgets = 51*0e8011faSEmmanuel Vadot "Headphone", "Headphones", 52*0e8011faSEmmanuel Vadot "Microphone", "Microphone Jack"; 53*0e8011faSEmmanuel Vadot 54*0e8011faSEmmanuel Vadot simple-audio-card,cpu { 55*0e8011faSEmmanuel Vadot sound-dai = <&i2s0_8ch>; 56*0e8011faSEmmanuel Vadot }; 57*0e8011faSEmmanuel Vadot 58*0e8011faSEmmanuel Vadot simple-audio-card,codec { 59*0e8011faSEmmanuel Vadot sound-dai = <&rt5616>; 60*0e8011faSEmmanuel Vadot }; 61*0e8011faSEmmanuel Vadot }; 62*0e8011faSEmmanuel Vadot 63*0e8011faSEmmanuel Vadot buzzer: pwm-beeper { 64*0e8011faSEmmanuel Vadot compatible = "pwm-beeper"; 65*0e8011faSEmmanuel Vadot amp-supply = <&vcc_5v0_sys>; 66*0e8011faSEmmanuel Vadot beeper-hz = <500>; 67*0e8011faSEmmanuel Vadot pwms = <&pwm8 0 500000 0>; 68*0e8011faSEmmanuel Vadot }; 69*0e8011faSEmmanuel Vadot 70*0e8011faSEmmanuel Vadot fan: pwm-fan { 71*0e8011faSEmmanuel Vadot compatible = "pwm-fan"; 72*0e8011faSEmmanuel Vadot #cooling-cells = <2>; 73*0e8011faSEmmanuel Vadot cooling-levels = <0 50 80 120 160 220>; 74*0e8011faSEmmanuel Vadot fan-supply = <&vcc_5v0_sys>; 75*0e8011faSEmmanuel Vadot pwms = <&pwm1 0 50000 0>; 76*0e8011faSEmmanuel Vadot }; 77*0e8011faSEmmanuel Vadot 78*0e8011faSEmmanuel Vadot gpio_keys: gpio-keys { 79*0e8011faSEmmanuel Vadot compatible = "gpio-keys"; 80*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 81*0e8011faSEmmanuel Vadot pinctrl-0 = <&key1_pin>; 82*0e8011faSEmmanuel Vadot 83*0e8011faSEmmanuel Vadot button-user { 84*0e8011faSEmmanuel Vadot debounce-interval = <50>; 85*0e8011faSEmmanuel Vadot gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_LOW>; 86*0e8011faSEmmanuel Vadot label = "User Button"; 87*0e8011faSEmmanuel Vadot linux,code = <BTN_1>; 88*0e8011faSEmmanuel Vadot wakeup-source; 89*0e8011faSEmmanuel Vadot }; 90*0e8011faSEmmanuel Vadot }; 91*0e8011faSEmmanuel Vadot 92*0e8011faSEmmanuel Vadot ir-receiver { 93*0e8011faSEmmanuel Vadot compatible = "gpio-ir-receiver"; 94*0e8011faSEmmanuel Vadot gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>; 95*0e8011faSEmmanuel Vadot }; 96*0e8011faSEmmanuel Vadot 97*0e8011faSEmmanuel Vadot vcc_12v_dcin: regulator-vcc-12v-dcin { 98*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 99*0e8011faSEmmanuel Vadot regulator-name = "vcc_12v_dcin"; 100*0e8011faSEmmanuel Vadot regulator-always-on; 101*0e8011faSEmmanuel Vadot regulator-boot-on; 102*0e8011faSEmmanuel Vadot regulator-min-microvolt = <12000000>; 103*0e8011faSEmmanuel Vadot regulator-max-microvolt = <12000000>; 104*0e8011faSEmmanuel Vadot }; 105*0e8011faSEmmanuel Vadot 106*0e8011faSEmmanuel Vadot vcc_3v3_m2_a: regulator-vcc-3v3-m2-a { 107*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 108*0e8011faSEmmanuel Vadot regulator-name = "vcc_3v3_m2_a"; 109*0e8011faSEmmanuel Vadot regulator-always-on; 110*0e8011faSEmmanuel Vadot regulator-boot-on; 111*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 112*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 113*0e8011faSEmmanuel Vadot vin-supply = <&vcc_12v_dcin>; 114*0e8011faSEmmanuel Vadot }; 115*0e8011faSEmmanuel Vadot 116*0e8011faSEmmanuel Vadot vcc_3v3_m2_b: regulator-vcc-3v3-m2-b { 117*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 118*0e8011faSEmmanuel Vadot regulator-name = "vcc_3v3_m2_b"; 119*0e8011faSEmmanuel Vadot regulator-always-on; 120*0e8011faSEmmanuel Vadot regulator-boot-on; 121*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 122*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 123*0e8011faSEmmanuel Vadot vin-supply = <&vcc_12v_dcin>; 124*0e8011faSEmmanuel Vadot }; 125*0e8011faSEmmanuel Vadot 126*0e8011faSEmmanuel Vadot vcc_3v3_m2_c: regulator-vcc-3v3-m2-c { 127*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 128*0e8011faSEmmanuel Vadot regulator-name = "vcc_3v3_m2_c"; 129*0e8011faSEmmanuel Vadot regulator-always-on; 130*0e8011faSEmmanuel Vadot regulator-boot-on; 131*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 132*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 133*0e8011faSEmmanuel Vadot vin-supply = <&vcc_12v_dcin>; 134*0e8011faSEmmanuel Vadot }; 135*0e8011faSEmmanuel Vadot 136*0e8011faSEmmanuel Vadot vcc_3v3_m2_d: regulator-vcc-3v3-m2-d { 137*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 138*0e8011faSEmmanuel Vadot regulator-name = "vcc_3v3_m2_d"; 139*0e8011faSEmmanuel Vadot regulator-always-on; 140*0e8011faSEmmanuel Vadot regulator-boot-on; 141*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3300000>; 142*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3300000>; 143*0e8011faSEmmanuel Vadot vin-supply = <&vcc_12v_dcin>; 144*0e8011faSEmmanuel Vadot }; 145*0e8011faSEmmanuel Vadot 146*0e8011faSEmmanuel Vadot /* vcc_5v0_sys powers the peripherals */ 147*0e8011faSEmmanuel Vadot vcc_5v0_sys: regulator-vcc-5v0-sys { 148*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 149*0e8011faSEmmanuel Vadot regulator-name = "vcc_5v0_sys"; 150*0e8011faSEmmanuel Vadot regulator-always-on; 151*0e8011faSEmmanuel Vadot regulator-boot-on; 152*0e8011faSEmmanuel Vadot regulator-min-microvolt = <5000000>; 153*0e8011faSEmmanuel Vadot regulator-max-microvolt = <5000000>; 154*0e8011faSEmmanuel Vadot vin-supply = <&vcc_12v_dcin>; 155*0e8011faSEmmanuel Vadot }; 156*0e8011faSEmmanuel Vadot 157*0e8011faSEmmanuel Vadot /* SY6280AAC power switch (U14 in schematics) */ 158*0e8011faSEmmanuel Vadot vcc_5v0_host_20: regulator-vcc-5v0-host-20 { 159*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 160*0e8011faSEmmanuel Vadot enable-active-high; 161*0e8011faSEmmanuel Vadot gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>; 162*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 163*0e8011faSEmmanuel Vadot pinctrl-0 = <&vcc_5v0_host20_en>; 164*0e8011faSEmmanuel Vadot regulator-name = "vcc_5v0_host_20"; 165*0e8011faSEmmanuel Vadot regulator-min-microvolt = <5000000>; 166*0e8011faSEmmanuel Vadot regulator-max-microvolt = <5000000>; 167*0e8011faSEmmanuel Vadot vin-supply = <&vcc_5v0_sys>; 168*0e8011faSEmmanuel Vadot }; 169*0e8011faSEmmanuel Vadot 170*0e8011faSEmmanuel Vadot /* SY6280AAC power switch (U8 in schematics) */ 171*0e8011faSEmmanuel Vadot vcc_5v0_host_30_p1: regulator-vcc-5v0-host-30-p1 { 172*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 173*0e8011faSEmmanuel Vadot enable-active-high; 174*0e8011faSEmmanuel Vadot gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; 175*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 176*0e8011faSEmmanuel Vadot pinctrl-0 = <&vcc_5v0_host30p1_en>; 177*0e8011faSEmmanuel Vadot regulator-name = "vcc_5v0_host_30_p1"; 178*0e8011faSEmmanuel Vadot regulator-min-microvolt = <5000000>; 179*0e8011faSEmmanuel Vadot regulator-max-microvolt = <5000000>; 180*0e8011faSEmmanuel Vadot vin-supply = <&vcc_5v0_sys>; 181*0e8011faSEmmanuel Vadot }; 182*0e8011faSEmmanuel Vadot 183*0e8011faSEmmanuel Vadot /* SY6280AAC power switch (U9 in schematics) */ 184*0e8011faSEmmanuel Vadot vcc_5v0_host_30_p2: regulator-vcc-5v0-host-30-p2 { 185*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 186*0e8011faSEmmanuel Vadot enable-active-high; 187*0e8011faSEmmanuel Vadot gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_HIGH>; 188*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 189*0e8011faSEmmanuel Vadot pinctrl-0 = <&vcc_5v0_host30p2_en>; 190*0e8011faSEmmanuel Vadot regulator-name = "vcc_5v0_host_30_p2"; 191*0e8011faSEmmanuel Vadot regulator-min-microvolt = <5000000>; 192*0e8011faSEmmanuel Vadot regulator-max-microvolt = <5000000>; 193*0e8011faSEmmanuel Vadot vin-supply = <&vcc_5v0_sys>; 194*0e8011faSEmmanuel Vadot }; 195*0e8011faSEmmanuel Vadot 196*0e8011faSEmmanuel Vadot /* SY6280AAC power switch (U10 in schematics) */ 197*0e8011faSEmmanuel Vadot vbus_5v0_typec: regulator-vbus-5v0-typec { 198*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 199*0e8011faSEmmanuel Vadot enable-active-high; 200*0e8011faSEmmanuel Vadot gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>; 201*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 202*0e8011faSEmmanuel Vadot pinctrl-0 = <&typec_5v_pwr_en>; 203*0e8011faSEmmanuel Vadot regulator-name = "vbus_5v0_typec"; 204*0e8011faSEmmanuel Vadot regulator-min-microvolt = <5000000>; 205*0e8011faSEmmanuel Vadot regulator-max-microvolt = <5000000>; 206*0e8011faSEmmanuel Vadot vin-supply = <&vcc_5v0_sys>; 207*0e8011faSEmmanuel Vadot }; 208*0e8011faSEmmanuel Vadot}; 209*0e8011faSEmmanuel Vadot 210*0e8011faSEmmanuel Vadot/* vcc_4v0_sys powers the RK806 and RK860's */ 211*0e8011faSEmmanuel Vadot&vcc_4v0_sys { 212*0e8011faSEmmanuel Vadot vin-supply = <&vcc_12v_dcin>; 213*0e8011faSEmmanuel Vadot}; 214*0e8011faSEmmanuel Vadot 215*0e8011faSEmmanuel Vadot/* Combo PHY 1 is configured to act as as PCIe 2.0 PHY */ 216*0e8011faSEmmanuel Vadot/* Used by PCIe controller 2 (pcie2x1l0) */ 217*0e8011faSEmmanuel Vadot&combphy1_ps { 218*0e8011faSEmmanuel Vadot status = "okay"; 219*0e8011faSEmmanuel Vadot}; 220*0e8011faSEmmanuel Vadot 221*0e8011faSEmmanuel Vadot/* Combo PHY 2 is configured to act as USB3 PHY */ 222*0e8011faSEmmanuel Vadot/* Used by USB 3.0 OTG 2 controller (USB 3.0 Type-A port 2) */ 223*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB30 HOST2 */ 224*0e8011faSEmmanuel Vadot&combphy2_psu { 225*0e8011faSEmmanuel Vadot status = "okay"; 226*0e8011faSEmmanuel Vadot}; 227*0e8011faSEmmanuel Vadot 228*0e8011faSEmmanuel Vadot/* GPIO names are in the format "Human-readable-name [SIGNAL_LABEL]" */ 229*0e8011faSEmmanuel Vadot/* Signal labels match the official CM3588 NAS SDK schematic revision 2309 */ 230*0e8011faSEmmanuel Vadot&gpio0 { 231*0e8011faSEmmanuel Vadot gpio-line-names = 232*0e8011faSEmmanuel Vadot /* GPIO0 A0-A7 */ 233*0e8011faSEmmanuel Vadot "", "", "", "", 234*0e8011faSEmmanuel Vadot "MicroSD detect [SDMMC_DET_L]", "", "", "", 235*0e8011faSEmmanuel Vadot /* GPIO0 B0-B7 */ 236*0e8011faSEmmanuel Vadot "", "", "", "", 237*0e8011faSEmmanuel Vadot "", "", "", "", 238*0e8011faSEmmanuel Vadot /* GPIO0 C0-C7 */ 239*0e8011faSEmmanuel Vadot "", "", "", "", 240*0e8011faSEmmanuel Vadot "Pin 10 [UART0_RX_M0]", "Pin 08 [UART0_TX_M0/PWM4_M0]", "Pin 32 [PWM5_M1]", "", 241*0e8011faSEmmanuel Vadot /* GPIO0 D0-D7 */ 242*0e8011faSEmmanuel Vadot "", "", "", "USB3 Type-C [CC_INT_L]", 243*0e8011faSEmmanuel Vadot "IR receiver [PWM3_IR_M0]", "User Button", "", ""; 244*0e8011faSEmmanuel Vadot}; 245*0e8011faSEmmanuel Vadot 246*0e8011faSEmmanuel Vadot&gpio1 { 247*0e8011faSEmmanuel Vadot gpio-line-names = 248*0e8011faSEmmanuel Vadot /* GPIO1 A0-A7 */ 249*0e8011faSEmmanuel Vadot "Pin 27 [UART6_RX_M1]", "Pin 28 [UART6_TX_M1]", "", "", 250*0e8011faSEmmanuel Vadot "USB2 Type-A [USB2_PWREN]", "", "", "Pin 15", 251*0e8011faSEmmanuel Vadot /* GPIO1 B0-B7 */ 252*0e8011faSEmmanuel Vadot "Pin 26", "Pin 21 [SPI0_MISO_M2]", "Pin 19 [SPI0_MOSI_M2/UART4_RX_M2]", "Pin 23 [SPI0_CLK_M2/UART4_TX_M2]", 253*0e8011faSEmmanuel Vadot "Pin 24 [SPI0_CS0_M2/UART7_RX_M2]", "Pin 22 [SPI0_CS1_M0/UART7_TX_M2]", "", "CSI-Pin 14 [MIPI_CAM2_CLKOUT]", 254*0e8011faSEmmanuel Vadot /* GPIO1 C0-C7 */ 255*0e8011faSEmmanuel Vadot "", "", "", "", 256*0e8011faSEmmanuel Vadot "Headphone detect [HP_DET_L]", "", "", "", 257*0e8011faSEmmanuel Vadot /* GPIO1 D0-D7 */ 258*0e8011faSEmmanuel Vadot "", "", "USB3 Type-C [TYPEC5V_PWREN_H]", "5V Fan [PWM1_M1]", 259*0e8011faSEmmanuel Vadot "", "HDMI-in detect [HDMIIRX_DET_L]", "Pin 05 [I2C8_SCL_M2]", "Pin 03 [I2C8_SDA_M2]"; 260*0e8011faSEmmanuel Vadot}; 261*0e8011faSEmmanuel Vadot 262*0e8011faSEmmanuel Vadot&gpio2 { 263*0e8011faSEmmanuel Vadot gpio-line-names = 264*0e8011faSEmmanuel Vadot /* GPIO2 A0-A7 */ 265*0e8011faSEmmanuel Vadot "", "", "", "", 266*0e8011faSEmmanuel Vadot "", "", "SPI NOR Flash [FSPI_D0_M1]", "SPI NOR Flash [FSPI_D1_M1]", 267*0e8011faSEmmanuel Vadot /* GPIO2 B0-B7 */ 268*0e8011faSEmmanuel Vadot "SPI NOR Flash [FSPI_D2_M1]", "SPI NOR Flash [FSPI_D3_M1]", "", "SPI NOR Flash [FSPI_CLK_M1]", 269*0e8011faSEmmanuel Vadot "SPI NOR Flash [FSPI_CSN0_M1]", "", "", "", 270*0e8011faSEmmanuel Vadot /* GPIO2 C0-C7 */ 271*0e8011faSEmmanuel Vadot "", "CSI-Pin 11 [MIPI_CAM2_RESET_L]", "CSI-Pin 12 [MIPI_CAM2_PDN_L]", "", 272*0e8011faSEmmanuel Vadot "", "", "", "", 273*0e8011faSEmmanuel Vadot /* GPIO2 D0-D7 */ 274*0e8011faSEmmanuel Vadot "", "", "", "", 275*0e8011faSEmmanuel Vadot "", "", "", ""; 276*0e8011faSEmmanuel Vadot}; 277*0e8011faSEmmanuel Vadot 278*0e8011faSEmmanuel Vadot&gpio3 { 279*0e8011faSEmmanuel Vadot gpio-line-names = 280*0e8011faSEmmanuel Vadot /* GPIO3 A0-A7 */ 281*0e8011faSEmmanuel Vadot "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]", 282*0e8011faSEmmanuel Vadot "Pin 37 [SPI4_CS1_M1]", "USB3-A #2 [USB3_2_PWREN]", "DSI-Pin 12 [LCD_RST]", "Buzzer [PWM8_M0]", 283*0e8011faSEmmanuel Vadot /* GPIO3 B0-B7 */ 284*0e8011faSEmmanuel Vadot "Pin 33 [PWM9_M0]", "DSI-Pin 10 [PWM2_M1/LCD_BL]", "Pin 07", "Pin 16", 285*0e8011faSEmmanuel Vadot "Pin 18", "Pin 29 [UART3_TX_M1/PWM12_M0]", "Pin 31 [UART3_RX_M1/PWM13_M0]", "Pin 12", 286*0e8011faSEmmanuel Vadot /* GPIO3 C0-C7 */ 287*0e8011faSEmmanuel Vadot "DSI-Pin 08 [TP_INT_L]", "DSI-Pin 14 [TP_RST_L]", "Pin 11 [PWM14_M0]", "Pin 13 [PWM15_IR_M0]", 288*0e8011faSEmmanuel Vadot "", "", "", "DSI-Pin 06 [I2C5_SCL_M0_TP]", 289*0e8011faSEmmanuel Vadot /* GPIO3 D0-D7 */ 290*0e8011faSEmmanuel Vadot "DSI-Pin 05 [I2C5_SDA_M0_TP]", "", "", "", 291*0e8011faSEmmanuel Vadot "", "", "", ""; 292*0e8011faSEmmanuel Vadot}; 293*0e8011faSEmmanuel Vadot 294*0e8011faSEmmanuel Vadot&gpio4 { 295*0e8011faSEmmanuel Vadot gpio-line-names = 296*0e8011faSEmmanuel Vadot /* GPIO4 A0-A7 */ 297*0e8011faSEmmanuel Vadot "", "", "M.2 M-Key Slot4 [M2_D_PERST_L]", "", 298*0e8011faSEmmanuel Vadot "", "", "", "", 299*0e8011faSEmmanuel Vadot /* GPIO4 B0-B7 */ 300*0e8011faSEmmanuel Vadot "USB3-A #1 [USB3_TYPEC1_PWREN]", "", "", "M.2 M-Key Slot3 [M2_C_PERST_L]", 301*0e8011faSEmmanuel Vadot "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]", "", 302*0e8011faSEmmanuel Vadot /* GPIO4 C0-C7 */ 303*0e8011faSEmmanuel Vadot "", "", "", "", 304*0e8011faSEmmanuel Vadot "", "", "", "", 305*0e8011faSEmmanuel Vadot /* GPIO4 D0-D7 */ 306*0e8011faSEmmanuel Vadot "", "", "", "", 307*0e8011faSEmmanuel Vadot "", "", "", ""; 308*0e8011faSEmmanuel Vadot}; 309*0e8011faSEmmanuel Vadot 310*0e8011faSEmmanuel Vadot/* Connected to MIPI-DSI0 */ 311*0e8011faSEmmanuel Vadot&i2c5 { 312*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 313*0e8011faSEmmanuel Vadot pinctrl-0 = <&i2c5m0_xfer>; 314*0e8011faSEmmanuel Vadot status = "disabled"; 315*0e8011faSEmmanuel Vadot}; 316*0e8011faSEmmanuel Vadot 317*0e8011faSEmmanuel Vadot&i2c6 { 318*0e8011faSEmmanuel Vadot fusb302: typec-portc@22 { 319*0e8011faSEmmanuel Vadot compatible = "fcs,fusb302"; 320*0e8011faSEmmanuel Vadot reg = <0x22>; 321*0e8011faSEmmanuel Vadot interrupt-parent = <&gpio0>; 322*0e8011faSEmmanuel Vadot interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>; 323*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 324*0e8011faSEmmanuel Vadot pinctrl-0 = <&usbc0_int>; 325*0e8011faSEmmanuel Vadot vbus-supply = <&vbus_5v0_typec>; 326*0e8011faSEmmanuel Vadot 327*0e8011faSEmmanuel Vadot usb_con: connector { 328*0e8011faSEmmanuel Vadot compatible = "usb-c-connector"; 329*0e8011faSEmmanuel Vadot data-role = "dual"; 330*0e8011faSEmmanuel Vadot label = "USB-C"; 331*0e8011faSEmmanuel Vadot power-role = "source"; 332*0e8011faSEmmanuel Vadot source-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)>; 333*0e8011faSEmmanuel Vadot try-power-role = "source"; 334*0e8011faSEmmanuel Vadot vbus-supply = <&vbus_5v0_typec>; 335*0e8011faSEmmanuel Vadot 336*0e8011faSEmmanuel Vadot ports { 337*0e8011faSEmmanuel Vadot #address-cells = <1>; 338*0e8011faSEmmanuel Vadot #size-cells = <0>; 339*0e8011faSEmmanuel Vadot 340*0e8011faSEmmanuel Vadot port@0 { 341*0e8011faSEmmanuel Vadot reg = <0>; 342*0e8011faSEmmanuel Vadot 343*0e8011faSEmmanuel Vadot usbc0_orien_sw: endpoint { 344*0e8011faSEmmanuel Vadot remote-endpoint = <&usbdp_phy0_orientation_switch>; 345*0e8011faSEmmanuel Vadot }; 346*0e8011faSEmmanuel Vadot }; 347*0e8011faSEmmanuel Vadot 348*0e8011faSEmmanuel Vadot port@1 { 349*0e8011faSEmmanuel Vadot reg = <1>; 350*0e8011faSEmmanuel Vadot 351*0e8011faSEmmanuel Vadot usbc0_role_sw: endpoint { 352*0e8011faSEmmanuel Vadot remote-endpoint = <&dwc3_0_role_switch>; 353*0e8011faSEmmanuel Vadot }; 354*0e8011faSEmmanuel Vadot }; 355*0e8011faSEmmanuel Vadot 356*0e8011faSEmmanuel Vadot port@2 { 357*0e8011faSEmmanuel Vadot reg = <2>; 358*0e8011faSEmmanuel Vadot 359*0e8011faSEmmanuel Vadot dp_altmode_mux: endpoint { 360*0e8011faSEmmanuel Vadot remote-endpoint = <&usbdp_phy0_dp_altmode_mux>; 361*0e8011faSEmmanuel Vadot }; 362*0e8011faSEmmanuel Vadot }; 363*0e8011faSEmmanuel Vadot }; 364*0e8011faSEmmanuel Vadot }; 365*0e8011faSEmmanuel Vadot }; 366*0e8011faSEmmanuel Vadot}; 367*0e8011faSEmmanuel Vadot 368*0e8011faSEmmanuel Vadot/* Connected to MIPI-CSI1 */ 369*0e8011faSEmmanuel Vadot/* &i2c7 */ 370*0e8011faSEmmanuel Vadot 371*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 372*0e8011faSEmmanuel Vadot&i2c8 { 373*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 374*0e8011faSEmmanuel Vadot pinctrl-0 = <&i2c8m2_xfer>; 375*0e8011faSEmmanuel Vadot status = "okay"; 376*0e8011faSEmmanuel Vadot}; 377*0e8011faSEmmanuel Vadot 378*0e8011faSEmmanuel Vadot&pcie2x1l0 { 379*0e8011faSEmmanuel Vadot /* 2. M.2 socket, CON14: pcie30phy port0 lane1, @fe170000 */ 380*0e8011faSEmmanuel Vadot max-link-speed = <3>; 381*0e8011faSEmmanuel Vadot num-lanes = <1>; 382*0e8011faSEmmanuel Vadot phys = <&pcie30phy>; 383*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 384*0e8011faSEmmanuel Vadot pinctrl-0 = <&pcie2_0_rst>; 385*0e8011faSEmmanuel Vadot reset-gpios = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; 386*0e8011faSEmmanuel Vadot vpcie3v3-supply = <&vcc_3v3_m2_b>; 387*0e8011faSEmmanuel Vadot status = "okay"; 388*0e8011faSEmmanuel Vadot}; 389*0e8011faSEmmanuel Vadot 390*0e8011faSEmmanuel Vadot&pcie2x1l1 { 391*0e8011faSEmmanuel Vadot /* 4. M.2 socket, CON16: pcie30phy port1 lane1, @fe180000 */ 392*0e8011faSEmmanuel Vadot max-link-speed = <3>; 393*0e8011faSEmmanuel Vadot num-lanes = <1>; 394*0e8011faSEmmanuel Vadot phys = <&pcie30phy>; 395*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 396*0e8011faSEmmanuel Vadot pinctrl-0 = <&pcie2_1_rst>; 397*0e8011faSEmmanuel Vadot reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; 398*0e8011faSEmmanuel Vadot vpcie3v3-supply = <&vcc_3v3_m2_d>; 399*0e8011faSEmmanuel Vadot status = "okay"; 400*0e8011faSEmmanuel Vadot}; 401*0e8011faSEmmanuel Vadot 402*0e8011faSEmmanuel Vadot&pcie30phy { 403*0e8011faSEmmanuel Vadot /* 404*0e8011faSEmmanuel Vadot * Data lane mapping <1 3 2 4> = x1x1 x1x1 (bifurcation of both ports) 405*0e8011faSEmmanuel Vadot * port 0 lane 0 - always mapped to controller 0 (4L) 406*0e8011faSEmmanuel Vadot * port 0 lane 1 - map to controller 2 (1L0) 407*0e8011faSEmmanuel Vadot * port 1 lane 0 - map to controller 1 (2L) 408*0e8011faSEmmanuel Vadot * port 1 lane 1 - map to controller 3 (1L1) 409*0e8011faSEmmanuel Vadot */ 410*0e8011faSEmmanuel Vadot data-lanes = <1 3 2 4>; 411*0e8011faSEmmanuel Vadot status = "okay"; 412*0e8011faSEmmanuel Vadot}; 413*0e8011faSEmmanuel Vadot 414*0e8011faSEmmanuel Vadot&pcie3x4 { 415*0e8011faSEmmanuel Vadot /* 1. M.2 socket, CON13: pcie30phy port0 lane0, @fe150000 */ 416*0e8011faSEmmanuel Vadot max-link-speed = <3>; 417*0e8011faSEmmanuel Vadot num-lanes = <1>; 418*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 419*0e8011faSEmmanuel Vadot pinctrl-0 = <&pcie3x4_rst>; 420*0e8011faSEmmanuel Vadot reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; 421*0e8011faSEmmanuel Vadot vpcie3v3-supply = <&vcc_3v3_m2_a>; 422*0e8011faSEmmanuel Vadot status = "okay"; 423*0e8011faSEmmanuel Vadot}; 424*0e8011faSEmmanuel Vadot 425*0e8011faSEmmanuel Vadot&pcie3x2 { 426*0e8011faSEmmanuel Vadot /* 3. M.2 socket, CON15: pcie30phy port1 lane0, @fe160000 */ 427*0e8011faSEmmanuel Vadot max-link-speed = <3>; 428*0e8011faSEmmanuel Vadot num-lanes = <1>; 429*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 430*0e8011faSEmmanuel Vadot pinctrl-0 = <&pcie3x2_rst>; 431*0e8011faSEmmanuel Vadot reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; 432*0e8011faSEmmanuel Vadot vpcie3v3-supply = <&vcc_3v3_m2_c>; 433*0e8011faSEmmanuel Vadot status = "okay"; 434*0e8011faSEmmanuel Vadot}; 435*0e8011faSEmmanuel Vadot 436*0e8011faSEmmanuel Vadot&pinctrl { 437*0e8011faSEmmanuel Vadot audio { 438*0e8011faSEmmanuel Vadot headphone_detect: headphone-detect { 439*0e8011faSEmmanuel Vadot rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; 440*0e8011faSEmmanuel Vadot }; 441*0e8011faSEmmanuel Vadot }; 442*0e8011faSEmmanuel Vadot 443*0e8011faSEmmanuel Vadot gpio-key { 444*0e8011faSEmmanuel Vadot key1_pin: key1-pin { 445*0e8011faSEmmanuel Vadot rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; 446*0e8011faSEmmanuel Vadot }; 447*0e8011faSEmmanuel Vadot }; 448*0e8011faSEmmanuel Vadot 449*0e8011faSEmmanuel Vadot pcie { 450*0e8011faSEmmanuel Vadot pcie2_0_rst: pcie2-0-rst { 451*0e8011faSEmmanuel Vadot rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 452*0e8011faSEmmanuel Vadot }; 453*0e8011faSEmmanuel Vadot 454*0e8011faSEmmanuel Vadot pcie2_1_rst: pcie2-1-rst { 455*0e8011faSEmmanuel Vadot rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 456*0e8011faSEmmanuel Vadot }; 457*0e8011faSEmmanuel Vadot 458*0e8011faSEmmanuel Vadot pcie3x2_rst: pcie3x2-rst { 459*0e8011faSEmmanuel Vadot rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 460*0e8011faSEmmanuel Vadot }; 461*0e8011faSEmmanuel Vadot 462*0e8011faSEmmanuel Vadot pcie3x4_rst: pcie3x4-rst { 463*0e8011faSEmmanuel Vadot rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 464*0e8011faSEmmanuel Vadot }; 465*0e8011faSEmmanuel Vadot }; 466*0e8011faSEmmanuel Vadot 467*0e8011faSEmmanuel Vadot usb { 468*0e8011faSEmmanuel Vadot vcc_5v0_host20_en: vcc-5v0-host20-en { 469*0e8011faSEmmanuel Vadot rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 470*0e8011faSEmmanuel Vadot }; 471*0e8011faSEmmanuel Vadot 472*0e8011faSEmmanuel Vadot vcc_5v0_host30p1_en: vcc-5v0-host30p1-en { 473*0e8011faSEmmanuel Vadot rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 474*0e8011faSEmmanuel Vadot }; 475*0e8011faSEmmanuel Vadot 476*0e8011faSEmmanuel Vadot vcc_5v0_host30p2_en: vcc-5v0-host30p2-en { 477*0e8011faSEmmanuel Vadot rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 478*0e8011faSEmmanuel Vadot }; 479*0e8011faSEmmanuel Vadot }; 480*0e8011faSEmmanuel Vadot 481*0e8011faSEmmanuel Vadot usb-typec { 482*0e8011faSEmmanuel Vadot usbc0_int: usbc0-int { 483*0e8011faSEmmanuel Vadot rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>; 484*0e8011faSEmmanuel Vadot }; 485*0e8011faSEmmanuel Vadot 486*0e8011faSEmmanuel Vadot typec_5v_pwr_en: typec-5v-pwr-en { 487*0e8011faSEmmanuel Vadot rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 488*0e8011faSEmmanuel Vadot }; 489*0e8011faSEmmanuel Vadot }; 490*0e8011faSEmmanuel Vadot}; 491*0e8011faSEmmanuel Vadot 492*0e8011faSEmmanuel Vadot/* Connected to 5V Fan */ 493*0e8011faSEmmanuel Vadot&pwm1 { 494*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 495*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm1m1_pins>; 496*0e8011faSEmmanuel Vadot status = "okay"; 497*0e8011faSEmmanuel Vadot}; 498*0e8011faSEmmanuel Vadot 499*0e8011faSEmmanuel Vadot/* Connected to MIPI-DSI0 */ 500*0e8011faSEmmanuel Vadot&pwm2 { 501*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 502*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm2m1_pins>; 503*0e8011faSEmmanuel Vadot}; 504*0e8011faSEmmanuel Vadot 505*0e8011faSEmmanuel Vadot/* Connected to IR Receiver */ 506*0e8011faSEmmanuel Vadot&pwm3 { 507*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 508*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm3m0_pins>; 509*0e8011faSEmmanuel Vadot status = "okay"; 510*0e8011faSEmmanuel Vadot}; 511*0e8011faSEmmanuel Vadot 512*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 513*0e8011faSEmmanuel Vadot/* Shared with UART0 */ 514*0e8011faSEmmanuel Vadot&pwm4 { 515*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 516*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm4m1_pins>; 517*0e8011faSEmmanuel Vadot status = "disabled"; 518*0e8011faSEmmanuel Vadot}; 519*0e8011faSEmmanuel Vadot 520*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 521*0e8011faSEmmanuel Vadot&pwm5 { 522*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 523*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm5m1_pins>; 524*0e8011faSEmmanuel Vadot status = "okay"; 525*0e8011faSEmmanuel Vadot}; 526*0e8011faSEmmanuel Vadot 527*0e8011faSEmmanuel Vadot/* Connected to Buzzer */ 528*0e8011faSEmmanuel Vadot&pwm8 { 529*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 530*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm8m0_pins>; 531*0e8011faSEmmanuel Vadot status = "okay"; 532*0e8011faSEmmanuel Vadot}; 533*0e8011faSEmmanuel Vadot 534*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 535*0e8011faSEmmanuel Vadot&pwm9 { 536*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 537*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm9m0_pins>; 538*0e8011faSEmmanuel Vadot status = "okay"; 539*0e8011faSEmmanuel Vadot}; 540*0e8011faSEmmanuel Vadot 541*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 542*0e8011faSEmmanuel Vadot/* Shared with SPI4 */ 543*0e8011faSEmmanuel Vadot&pwm10 { 544*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 545*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm10m0_pins>; 546*0e8011faSEmmanuel Vadot status = "disabled"; 547*0e8011faSEmmanuel Vadot}; 548*0e8011faSEmmanuel Vadot 549*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 550*0e8011faSEmmanuel Vadot/* Shared with UART3 */ 551*0e8011faSEmmanuel Vadot&pwm12 { 552*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 553*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm12m0_pins>; 554*0e8011faSEmmanuel Vadot status = "disabled"; 555*0e8011faSEmmanuel Vadot}; 556*0e8011faSEmmanuel Vadot 557*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 558*0e8011faSEmmanuel Vadot/* Shared with UART3 */ 559*0e8011faSEmmanuel Vadot&pwm13 { 560*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 561*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm13m0_pins>; 562*0e8011faSEmmanuel Vadot status = "disabled"; 563*0e8011faSEmmanuel Vadot}; 564*0e8011faSEmmanuel Vadot 565*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 566*0e8011faSEmmanuel Vadot&pwm14 { 567*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 568*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm14m0_pins>; 569*0e8011faSEmmanuel Vadot status = "okay"; 570*0e8011faSEmmanuel Vadot}; 571*0e8011faSEmmanuel Vadot 572*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 573*0e8011faSEmmanuel Vadot/* Optimized for infrared applications */ 574*0e8011faSEmmanuel Vadot&pwm15 { 575*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 576*0e8011faSEmmanuel Vadot pinctrl-0 = <&pwm15m0_pins>; 577*0e8011faSEmmanuel Vadot status = "disabled"; 578*0e8011faSEmmanuel Vadot}; 579*0e8011faSEmmanuel Vadot 580*0e8011faSEmmanuel Vadot/* microSD card */ 581*0e8011faSEmmanuel Vadot&sdmmc { 582*0e8011faSEmmanuel Vadot status = "okay"; 583*0e8011faSEmmanuel Vadot}; 584*0e8011faSEmmanuel Vadot 585*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 586*0e8011faSEmmanuel Vadot/* Shared with UART4, UART7 and PWM10 */ 587*0e8011faSEmmanuel Vadot&spi0 { 588*0e8011faSEmmanuel Vadot num-cs = <1>; 589*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 590*0e8011faSEmmanuel Vadot pinctrl-0 = <&spi0m2_cs0 &spi0m2_pins>; 591*0e8011faSEmmanuel Vadot status = "disabled"; 592*0e8011faSEmmanuel Vadot}; 593*0e8011faSEmmanuel Vadot 594*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 595*0e8011faSEmmanuel Vadot/* Shared with UART8 */ 596*0e8011faSEmmanuel Vadot&spi4 { 597*0e8011faSEmmanuel Vadot num-cs = <1>; 598*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 599*0e8011faSEmmanuel Vadot pinctrl-0 = <&spi4m1_cs0 &spi4m1_pins>; 600*0e8011faSEmmanuel Vadot status = "disabled"; 601*0e8011faSEmmanuel Vadot}; 602*0e8011faSEmmanuel Vadot 603*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 604*0e8011faSEmmanuel Vadot/* Shared with PWM4 */ 605*0e8011faSEmmanuel Vadot&uart0 { 606*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 607*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart0m0_xfer>; 608*0e8011faSEmmanuel Vadot status = "disabled"; 609*0e8011faSEmmanuel Vadot}; 610*0e8011faSEmmanuel Vadot 611*0e8011faSEmmanuel Vadot/* Debug UART */ 612*0e8011faSEmmanuel Vadot&uart2 { 613*0e8011faSEmmanuel Vadot status = "okay"; 614*0e8011faSEmmanuel Vadot}; 615*0e8011faSEmmanuel Vadot 616*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 617*0e8011faSEmmanuel Vadot/* Shared with PWM12 and PWM13 */ 618*0e8011faSEmmanuel Vadot&uart3 { 619*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 620*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart3m1_xfer>; 621*0e8011faSEmmanuel Vadot status = "disabled"; 622*0e8011faSEmmanuel Vadot}; 623*0e8011faSEmmanuel Vadot 624*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 625*0e8011faSEmmanuel Vadot/* Shared with SPI0 */ 626*0e8011faSEmmanuel Vadot&uart4 { 627*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 628*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart4m2_xfer>; 629*0e8011faSEmmanuel Vadot status = "disabled"; 630*0e8011faSEmmanuel Vadot}; 631*0e8011faSEmmanuel Vadot 632*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 633*0e8011faSEmmanuel Vadot&uart6 { 634*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 635*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart6m1_xfer>; 636*0e8011faSEmmanuel Vadot status = "okay"; 637*0e8011faSEmmanuel Vadot}; 638*0e8011faSEmmanuel Vadot 639*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 640*0e8011faSEmmanuel Vadot/* Shared with SPI0 */ 641*0e8011faSEmmanuel Vadot&uart7 { 642*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 643*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart7m2_xfer>; 644*0e8011faSEmmanuel Vadot status = "disabled"; 645*0e8011faSEmmanuel Vadot}; 646*0e8011faSEmmanuel Vadot 647*0e8011faSEmmanuel Vadot/* GPIO Connector, connected to 40-pin GPIO header */ 648*0e8011faSEmmanuel Vadot/* Shared with SPI4 */ 649*0e8011faSEmmanuel Vadot&uart8 { 650*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 651*0e8011faSEmmanuel Vadot pinctrl-0 = <&uart8m1_xfer>; 652*0e8011faSEmmanuel Vadot status = "disabled"; 653*0e8011faSEmmanuel Vadot}; 654*0e8011faSEmmanuel Vadot 655*0e8011faSEmmanuel Vadot/* USB2 PHY for USB Type-C port */ 656*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 OTG0 */ 657*0e8011faSEmmanuel Vadot&u2phy0 { 658*0e8011faSEmmanuel Vadot status = "okay"; 659*0e8011faSEmmanuel Vadot}; 660*0e8011faSEmmanuel Vadot 661*0e8011faSEmmanuel Vadot&u2phy0_otg { 662*0e8011faSEmmanuel Vadot phy-supply = <&vbus_5v0_typec>; 663*0e8011faSEmmanuel Vadot status = "okay"; 664*0e8011faSEmmanuel Vadot}; 665*0e8011faSEmmanuel Vadot 666*0e8011faSEmmanuel Vadot/* USB2 PHY for USB 3.0 Type-A port 1 */ 667*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 OTG1 */ 668*0e8011faSEmmanuel Vadot&u2phy1 { 669*0e8011faSEmmanuel Vadot status = "okay"; 670*0e8011faSEmmanuel Vadot}; 671*0e8011faSEmmanuel Vadot 672*0e8011faSEmmanuel Vadot&u2phy1_otg { 673*0e8011faSEmmanuel Vadot phy-supply = <&vcc_5v0_host_30_p1>; 674*0e8011faSEmmanuel Vadot status = "okay"; 675*0e8011faSEmmanuel Vadot}; 676*0e8011faSEmmanuel Vadot 677*0e8011faSEmmanuel Vadot/* USB2 PHY for USB 2.0 Type-A */ 678*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 HOST0 */ 679*0e8011faSEmmanuel Vadot&u2phy2 { 680*0e8011faSEmmanuel Vadot status = "okay"; 681*0e8011faSEmmanuel Vadot}; 682*0e8011faSEmmanuel Vadot 683*0e8011faSEmmanuel Vadot&u2phy2_host { 684*0e8011faSEmmanuel Vadot phy-supply = <&vcc_5v0_host_20>; 685*0e8011faSEmmanuel Vadot status = "okay"; 686*0e8011faSEmmanuel Vadot}; 687*0e8011faSEmmanuel Vadot 688*0e8011faSEmmanuel Vadot/* USB2 PHY for USB 3.0 Type-A port 2 */ 689*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB20 HOST1 */ 690*0e8011faSEmmanuel Vadot&u2phy3 { 691*0e8011faSEmmanuel Vadot status = "okay"; 692*0e8011faSEmmanuel Vadot}; 693*0e8011faSEmmanuel Vadot 694*0e8011faSEmmanuel Vadot&u2phy3_host { 695*0e8011faSEmmanuel Vadot phy-supply = <&vcc_5v0_host_30_p2>; 696*0e8011faSEmmanuel Vadot status = "okay"; 697*0e8011faSEmmanuel Vadot}; 698*0e8011faSEmmanuel Vadot 699*0e8011faSEmmanuel Vadot/* USB 2.0 Type-A */ 700*0e8011faSEmmanuel Vadot/* PHY: <&u2phy2_host> */ 701*0e8011faSEmmanuel Vadot&usb_host0_ehci { 702*0e8011faSEmmanuel Vadot status = "okay"; 703*0e8011faSEmmanuel Vadot}; 704*0e8011faSEmmanuel Vadot 705*0e8011faSEmmanuel Vadot/* USB 2.0 Type-A */ 706*0e8011faSEmmanuel Vadot/* PHY: <&u2phy2_host> */ 707*0e8011faSEmmanuel Vadot&usb_host0_ohci { 708*0e8011faSEmmanuel Vadot status = "okay"; 709*0e8011faSEmmanuel Vadot}; 710*0e8011faSEmmanuel Vadot 711*0e8011faSEmmanuel Vadot/* USB Type-C */ 712*0e8011faSEmmanuel Vadot/* PHYs: <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3> */ 713*0e8011faSEmmanuel Vadot&usb_host0_xhci { 714*0e8011faSEmmanuel Vadot usb-role-switch; 715*0e8011faSEmmanuel Vadot status = "okay"; 716*0e8011faSEmmanuel Vadot 717*0e8011faSEmmanuel Vadot port { 718*0e8011faSEmmanuel Vadot dwc3_0_role_switch: endpoint { 719*0e8011faSEmmanuel Vadot remote-endpoint = <&usbc0_role_sw>; 720*0e8011faSEmmanuel Vadot }; 721*0e8011faSEmmanuel Vadot }; 722*0e8011faSEmmanuel Vadot}; 723*0e8011faSEmmanuel Vadot 724*0e8011faSEmmanuel Vadot/* Lower USB 3.0 Type-A (port 2) */ 725*0e8011faSEmmanuel Vadot/* PHY: <&u2phy3_host> */ 726*0e8011faSEmmanuel Vadot&usb_host1_ehci { 727*0e8011faSEmmanuel Vadot status = "okay"; 728*0e8011faSEmmanuel Vadot}; 729*0e8011faSEmmanuel Vadot 730*0e8011faSEmmanuel Vadot/* Lower USB 3.0 Type-A (port 2) */ 731*0e8011faSEmmanuel Vadot/* PHY: <&u2phy3_host> */ 732*0e8011faSEmmanuel Vadot&usb_host1_ohci { 733*0e8011faSEmmanuel Vadot status = "okay"; 734*0e8011faSEmmanuel Vadot}; 735*0e8011faSEmmanuel Vadot 736*0e8011faSEmmanuel Vadot/* Upper USB 3.0 Type-A (port 1) */ 737*0e8011faSEmmanuel Vadot/* PHYs: <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3> */ 738*0e8011faSEmmanuel Vadot&usb_host1_xhci { 739*0e8011faSEmmanuel Vadot dr_mode = "host"; 740*0e8011faSEmmanuel Vadot status = "okay"; 741*0e8011faSEmmanuel Vadot}; 742*0e8011faSEmmanuel Vadot 743*0e8011faSEmmanuel Vadot/* Lower USB 3.0 Type-A (port 2) */ 744*0e8011faSEmmanuel Vadot/* PHYs: <&combphy2_psu PHY_TYPE_USB3> */ 745*0e8011faSEmmanuel Vadot&usb_host2_xhci { 746*0e8011faSEmmanuel Vadot status = "okay"; 747*0e8011faSEmmanuel Vadot}; 748*0e8011faSEmmanuel Vadot 749*0e8011faSEmmanuel Vadot/* USB3 PHY for USB Type-C port */ 750*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB30 OTG0 */ 751*0e8011faSEmmanuel Vadot&usbdp_phy0 { 752*0e8011faSEmmanuel Vadot mode-switch; 753*0e8011faSEmmanuel Vadot orientation-switch; 754*0e8011faSEmmanuel Vadot sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>; 755*0e8011faSEmmanuel Vadot sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; 756*0e8011faSEmmanuel Vadot status = "okay"; 757*0e8011faSEmmanuel Vadot 758*0e8011faSEmmanuel Vadot port { 759*0e8011faSEmmanuel Vadot #address-cells = <1>; 760*0e8011faSEmmanuel Vadot #size-cells = <0>; 761*0e8011faSEmmanuel Vadot 762*0e8011faSEmmanuel Vadot usbdp_phy0_orientation_switch: endpoint@0 { 763*0e8011faSEmmanuel Vadot reg = <0>; 764*0e8011faSEmmanuel Vadot remote-endpoint = <&usbc0_orien_sw>; 765*0e8011faSEmmanuel Vadot }; 766*0e8011faSEmmanuel Vadot 767*0e8011faSEmmanuel Vadot usbdp_phy0_dp_altmode_mux: endpoint@1 { 768*0e8011faSEmmanuel Vadot reg = <1>; 769*0e8011faSEmmanuel Vadot remote-endpoint = <&dp_altmode_mux>; 770*0e8011faSEmmanuel Vadot }; 771*0e8011faSEmmanuel Vadot }; 772*0e8011faSEmmanuel Vadot}; 773*0e8011faSEmmanuel Vadot 774*0e8011faSEmmanuel Vadot/* USB3 PHY for USB 3.0 Type-A port 1 */ 775*0e8011faSEmmanuel Vadot/* CM3588 USB Controller Config Table: USB30 OTG1 */ 776*0e8011faSEmmanuel Vadot&usbdp_phy1 { 777*0e8011faSEmmanuel Vadot status = "okay"; 778*0e8011faSEmmanuel Vadot}; 779