1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 3/dts-v1/; 4 5#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/leds/common.h> 7#include <dt-bindings/soc/rockchip,vop2.h> 8#include "rk3588-armsom-lm7.dtsi" 9 10/ { 11 model = "ArmSoM W3"; 12 compatible = "armsom,w3", "armsom,lm7", "rockchip,rk3588"; 13 14 aliases { 15 mmc1 = &sdmmc; 16 mmc2 = &sdio; 17 }; 18 19 analog-sound { 20 compatible = "audio-graph-card"; 21 label = "rk3588-es8316"; 22 23 widgets = "Microphone", "Mic Jack", 24 "Headphone", "Headphones"; 25 26 routing = "MIC2", "Mic Jack", 27 "Headphones", "HPOL", 28 "Headphones", "HPOR"; 29 30 dais = <&i2s0_8ch_p0>; 31 hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>; 32 pinctrl-names = "default"; 33 pinctrl-0 = <&hp_detect>; 34 }; 35 36 hdmi0-con { 37 compatible = "hdmi-connector"; 38 type = "a"; 39 40 port { 41 hdmi0_con_in: endpoint { 42 remote-endpoint = <&hdmi0_out_con>; 43 }; 44 }; 45 }; 46 47 hdmi1-con { 48 compatible = "hdmi-connector"; 49 type = "a"; 50 51 port { 52 hdmi1_con_in: endpoint { 53 remote-endpoint = <&hdmi1_out_con>; 54 }; 55 }; 56 }; 57 58 leds { 59 compatible = "gpio-leds"; 60 pinctrl-names = "default"; 61 pinctrl-0 = <&led_rgb_b>; 62 63 led-rgb-b { 64 function = LED_FUNCTION_STATUS; 65 color = <LED_COLOR_ID_BLUE>; 66 gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; 67 linux,default-trigger = "heartbeat"; 68 }; 69 70 led-rgb-r { 71 function = LED_FUNCTION_STATUS; 72 color = <LED_COLOR_ID_RED>; 73 gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>; 74 linux,default-trigger = "none"; 75 }; 76 }; 77 78 fan: pwm-fan { 79 compatible = "pwm-fan"; 80 cooling-levels = <0 120 150 180 210 240 255>; 81 fan-supply = <&vcc5v0_sys>; 82 pwms = <&pwm1 0 50000 0>; 83 #cooling-cells = <2>; 84 }; 85 86 rfkill { 87 compatible = "rfkill-gpio"; 88 label = "rfkill-pcie-wlan"; 89 radio-type = "wlan"; 90 shutdown-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; 91 }; 92 93 rfkill-bt { 94 compatible = "rfkill-gpio"; 95 label = "rfkill-m2-bt"; 96 radio-type = "bluetooth"; 97 shutdown-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_HIGH>; 98 }; 99 100 vcc3v3_pcie2x1l0: regulator-vcc3v3-pcie2x1l0 { 101 compatible = "regulator-fixed"; 102 enable-active-high; 103 gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>; 104 pinctrl-names = "default"; 105 pinctrl-0 = <&pcie2_0_vcc3v3_en>; 106 regulator-name = "vcc3v3_pcie2x1l0"; 107 regulator-always-on; 108 regulator-boot-on; 109 regulator-min-microvolt = <3300000>; 110 regulator-max-microvolt = <3300000>; 111 startup-delay-us = <50000>; 112 vin-supply = <&vcc5v0_sys>; 113 }; 114 115 vcc3v3_pcie2x1l2: regulator-vcc3v3-pcie2x1l2 { 116 compatible = "regulator-fixed"; 117 regulator-name = "vcc3v3_pcie2x1l2"; 118 regulator-min-microvolt = <3300000>; 119 regulator-max-microvolt = <3300000>; 120 startup-delay-us = <5000>; 121 vin-supply = <&vcc_3v3_s3>; 122 }; 123 124 vcc3v3_pcie30: regulator-vcc3v3-pcie30 { 125 compatible = "regulator-fixed"; 126 enable-active-high; 127 gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>; 128 pinctrl-names = "default"; 129 pinctrl-0 = <&pcie3_vcc3v3_en>; 130 regulator-name = "vcc3v3_pcie30"; 131 regulator-min-microvolt = <3300000>; 132 regulator-max-microvolt = <3300000>; 133 startup-delay-us = <5000>; 134 vin-supply = <&vcc5v0_sys>; 135 }; 136 137 vcc5v0_host: regulator-vcc5v0-host { 138 compatible = "regulator-fixed"; 139 regulator-name = "vcc5v0_host"; 140 regulator-boot-on; 141 regulator-always-on; 142 regulator-min-microvolt = <5000000>; 143 regulator-max-microvolt = <5000000>; 144 enable-active-high; 145 gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; 146 pinctrl-names = "default"; 147 pinctrl-0 = <&vcc5v0_host_en>; 148 vin-supply = <&vcc5v0_sys>; 149 }; 150}; 151 152&combphy0_ps { 153 status = "okay"; 154}; 155 156&combphy1_ps { 157 status = "okay"; 158}; 159 160&combphy2_psu { 161 status = "okay"; 162}; 163 164&hdmi0 { 165 status = "okay"; 166}; 167 168&hdmi0_in { 169 hdmi0_in_vp0: endpoint { 170 remote-endpoint = <&vp0_out_hdmi0>; 171 }; 172}; 173 174&hdmi0_out { 175 hdmi0_out_con: endpoint { 176 remote-endpoint = <&hdmi0_con_in>; 177 }; 178}; 179 180&hdmi0_sound { 181 status = "okay"; 182}; 183 184&hdmi1 { 185 status = "okay"; 186}; 187 188&hdmi1_in { 189 hdmi1_in_vp1: endpoint { 190 remote-endpoint = <&vp1_out_hdmi1>; 191 }; 192}; 193 194&hdmi1_out { 195 hdmi1_out_con: endpoint { 196 remote-endpoint = <&hdmi1_con_in>; 197 }; 198}; 199 200&hdmi1_sound { 201 status = "okay"; 202}; 203 204&hdptxphy0 { 205 status = "okay"; 206}; 207 208&hdptxphy1 { 209 status = "okay"; 210}; 211 212&i2c6 { 213 status = "okay"; 214 215 hym8563: rtc@51 { 216 compatible = "haoyu,hym8563"; 217 reg = <0x51>; 218 #clock-cells = <0>; 219 clock-output-names = "hym8563"; 220 pinctrl-names = "default"; 221 pinctrl-0 = <&hym8563_int>; 222 interrupt-parent = <&gpio0>; 223 interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>; 224 wakeup-source; 225 }; 226}; 227 228&i2c7 { 229 status = "okay"; 230 231 es8316: audio-codec@11 { 232 compatible = "everest,es8316"; 233 reg = <0x11>; 234 clocks = <&cru I2S0_8CH_MCLKOUT>; 235 clock-names = "mclk"; 236 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; 237 assigned-clock-rates = <12288000>; 238 #sound-dai-cells = <0>; 239 240 port { 241 es8316_p0_0: endpoint { 242 remote-endpoint = <&i2s0_8ch_p0_0>; 243 }; 244 }; 245 }; 246}; 247 248&i2s0_8ch { 249 pinctrl-names = "default"; 250 pinctrl-0 = <&i2s0_lrck 251 &i2s0_mclk 252 &i2s0_sclk 253 &i2s0_sdi0 254 &i2s0_sdo0>; 255 status = "okay"; 256 257 i2s0_8ch_p0: port { 258 i2s0_8ch_p0_0: endpoint { 259 dai-format = "i2s"; 260 mclk-fs = <256>; 261 remote-endpoint = <&es8316_p0_0>; 262 }; 263 }; 264}; 265 266&i2s5_8ch { 267 status = "okay"; 268}; 269 270&i2s6_8ch { 271 status = "okay"; 272}; 273 274&package_thermal { 275 polling-delay = <1000>; 276 277 trips { 278 package_fan0: package-fan0 { 279 temperature = <55000>; 280 hysteresis = <2000>; 281 type = "active"; 282 }; 283 284 package_fan1: package-fan1 { 285 temperature = <65000>; 286 hysteresis = <2000>; 287 type = "active"; 288 }; 289 }; 290 291 cooling-maps { 292 map0 { 293 trip = <&package_fan0>; 294 cooling-device = <&fan THERMAL_NO_LIMIT 1>; 295 }; 296 297 map1 { 298 trip = <&package_fan1>; 299 cooling-device = <&fan 2 THERMAL_NO_LIMIT>; 300 }; 301 }; 302}; 303 304&pcie2x1l0 { 305 pinctrl-names = "default"; 306 pinctrl-0 = <&pcie2_0_rst>; 307 reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; 308 vpcie3v3-supply = <&vcc3v3_pcie2x1l0>; 309 status = "okay"; 310}; 311 312&pcie2x1l2 { 313 pinctrl-names = "default"; 314 pinctrl-0 = <&pcie2_2_rst>; 315 reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>; 316 vpcie3v3-supply = <&vcc3v3_pcie2x1l2>; 317 status = "okay"; 318}; 319 320&pcie30phy { 321 status = "okay"; 322}; 323 324&pcie3x4 { 325 pinctrl-names = "default"; 326 pinctrl-0 = <&pcie3_rst>; 327 reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; 328 vpcie3v3-supply = <&vcc3v3_pcie30>; 329 status = "okay"; 330}; 331 332&pinctrl { 333 hym8563 { 334 hym8563_int: hym8563-int { 335 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 336 }; 337 }; 338 339 leds { 340 led_rgb_b: led-rgb-b { 341 rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 342 }; 343 }; 344 345 sound { 346 hp_detect: hp-detect { 347 rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; 348 }; 349 }; 350 351 pcie2 { 352 pcie2_0_rst: pcie2-0-rst { 353 rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 354 }; 355 356 pcie2_0_vcc3v3_en: pcie2-0-vcc-en { 357 rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 358 }; 359 360 pcie2_2_rst: pcie2-2-rst { 361 rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 362 }; 363 }; 364 365 pcie3 { 366 pcie3_rst: pcie3-rst { 367 rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 368 }; 369 370 pcie3_vcc3v3_en: pcie3-vcc3v3-en { 371 rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 372 }; 373 }; 374 375 usb { 376 vcc5v0_host_en: vcc5v0-host-en { 377 rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 378 }; 379 }; 380}; 381 382&pwm1 { 383 status = "okay"; 384}; 385 386&sdmmc { 387 bus-width = <4>; 388 cap-mmc-highspeed; 389 cap-sd-highspeed; 390 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 391 disable-wp; 392 max-frequency = <200000000>; 393 no-sdio; 394 no-mmc; 395 sd-uhs-sdr104; 396 vmmc-supply = <&vcc_3v3_s3>; 397 vqmmc-supply = <&vccio_sd_s0>; 398 status = "okay"; 399}; 400 401&sdio { 402 bus-width = <4>; 403 cap-sdio-irq; 404 disable-wp; 405 keep-power-in-suspend; 406 max-frequency = <200000000>; 407 no-sd; 408 no-mmc; 409 non-removable; 410 pinctrl-names = "default"; 411 pinctrl-0 = <&sdiom0_pins>; 412 sd-uhs-sdr12; 413 sd-uhs-sdr25; 414 sd-uhs-sdr50; 415 sd-uhs-sdr104; 416 vmmc-supply = <&vcc3v3_pcie2x1l0>; 417 vqmmc-supply = <&vcc_1v8_s3>; 418 wakeup-source; 419 status = "okay"; 420}; 421 422&uart2 { 423 pinctrl-0 = <&uart2m0_xfer>; 424 status = "okay"; 425}; 426 427&uart6 { 428 pinctrl-names = "default"; 429 pinctrl-0 = <&uart6m1_xfer &uart6m1_ctsn &uart6m1_rtsn>; 430 status = "okay"; 431}; 432 433&u2phy1 { 434 status = "okay"; 435}; 436 437&u2phy1_otg { 438 status = "okay"; 439}; 440 441&u2phy2 { 442 status = "okay"; 443}; 444 445&u2phy2_host { 446 /* connected to USB hub, which is powered by vcc5v0_sys */ 447 phy-supply = <&vcc5v0_sys>; 448 status = "okay"; 449}; 450 451&u2phy3 { 452 status = "okay"; 453}; 454 455&u2phy3_host { 456 phy-supply = <&vcc5v0_host>; 457 status = "okay"; 458}; 459 460&usbdp_phy1 { 461 status = "okay"; 462}; 463 464&usb_host0_ehci { 465 status = "okay"; 466}; 467 468&usb_host0_ohci { 469 status = "okay"; 470}; 471 472&usb_host1_ehci { 473 status = "okay"; 474}; 475 476&usb_host1_ohci { 477 status = "okay"; 478}; 479 480&usb_host1_xhci { 481 dr_mode = "host"; 482 status = "okay"; 483}; 484 485&usb_host2_xhci { 486 status = "okay"; 487}; 488 489&vop { 490 status = "okay"; 491}; 492 493&vop_mmu { 494 status = "okay"; 495}; 496 497&vp0 { 498 vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 499 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 500 remote-endpoint = <&hdmi0_in_vp0>; 501 }; 502}; 503 504&vp1 { 505 vp1_out_hdmi1: endpoint@ROCKCHIP_VOP2_EP_HDMI1 { 506 reg = <ROCKCHIP_VOP2_EP_HDMI1>; 507 remote-endpoint = <&hdmi1_in_vp1>; 508 }; 509}; 510