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