1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 3/dts-v1/; 4#include <dt-bindings/gpio/gpio.h> 5#include <dt-bindings/leds/common.h> 6#include <dt-bindings/pinctrl/rockchip.h> 7#include "rk3568.dtsi" 8 9/ { 10 model = "Radxa ROCK3 Model A"; 11 compatible = "radxa,rock3a", "rockchip,rk3568"; 12 13 aliases { 14 ethernet0 = &gmac1; 15 mmc0 = &sdmmc0; 16 mmc1 = &sdhci; 17 }; 18 19 chosen: chosen { 20 stdout-path = "serial2:1500000n8"; 21 }; 22 23 leds { 24 compatible = "gpio-leds"; 25 26 led_user: led-0 { 27 gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>; 28 function = LED_FUNCTION_HEARTBEAT; 29 color = <LED_COLOR_ID_BLUE>; 30 linux,default-trigger = "heartbeat"; 31 pinctrl-names = "default"; 32 pinctrl-0 = <&led_user_en>; 33 }; 34 }; 35 36 rk809-sound { 37 compatible = "simple-audio-card"; 38 simple-audio-card,format = "i2s"; 39 simple-audio-card,name = "Analog RK809"; 40 simple-audio-card,mclk-fs = <256>; 41 42 simple-audio-card,cpu { 43 sound-dai = <&i2s1_8ch>; 44 }; 45 46 simple-audio-card,codec { 47 sound-dai = <&rk809>; 48 }; 49 }; 50 51 vcc12v_dcin: vcc12v-dcin { 52 compatible = "regulator-fixed"; 53 regulator-name = "vcc12v_dcin"; 54 regulator-always-on; 55 regulator-boot-on; 56 }; 57 58 vcc3v3_sys: vcc3v3-sys { 59 compatible = "regulator-fixed"; 60 regulator-name = "vcc3v3_sys"; 61 regulator-always-on; 62 regulator-boot-on; 63 regulator-min-microvolt = <3300000>; 64 regulator-max-microvolt = <3300000>; 65 vin-supply = <&vcc12v_dcin>; 66 }; 67 68 vcc5v0_sys: vcc5v0-sys { 69 compatible = "regulator-fixed"; 70 regulator-name = "vcc5v0_sys"; 71 regulator-always-on; 72 regulator-boot-on; 73 regulator-min-microvolt = <5000000>; 74 regulator-max-microvolt = <5000000>; 75 vin-supply = <&vcc12v_dcin>; 76 }; 77 78 vcc5v0_usb: vcc5v0-usb { 79 compatible = "regulator-fixed"; 80 regulator-name = "vcc5v0_usb"; 81 regulator-always-on; 82 regulator-boot-on; 83 regulator-min-microvolt = <5000000>; 84 regulator-max-microvolt = <5000000>; 85 vin-supply = <&vcc12v_dcin>; 86 }; 87 88 vcc5v0_usb_host: vcc5v0-usb-host { 89 compatible = "regulator-fixed"; 90 enable-active-high; 91 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 92 pinctrl-names = "default"; 93 pinctrl-0 = <&vcc5v0_usb_host_en>; 94 regulator-name = "vcc5v0_usb_host"; 95 regulator-min-microvolt = <5000000>; 96 regulator-max-microvolt = <5000000>; 97 vin-supply = <&vcc5v0_usb>; 98 }; 99 100 vcc5v0_usb_hub: vcc5v0-usb-hub-regulator { 101 compatible = "regulator-fixed"; 102 enable-active-high; 103 gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>; 104 pinctrl-names = "default"; 105 pinctrl-0 = <&vcc5v0_usb_hub_en>; 106 regulator-name = "vcc5v0_usb_hub"; 107 regulator-always-on; 108 vin-supply = <&vcc5v0_usb>; 109 }; 110 111 vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { 112 compatible = "regulator-fixed"; 113 enable-active-high; 114 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 115 pinctrl-names = "default"; 116 pinctrl-0 = <&vcc5v0_usb_otg_en>; 117 regulator-name = "vcc5v0_usb_otg"; 118 regulator-min-microvolt = <5000000>; 119 regulator-max-microvolt = <5000000>; 120 vin-supply = <&vcc5v0_usb>; 121 }; 122}; 123 124&combphy0 { 125 status = "okay"; 126}; 127 128&combphy1 { 129 status = "okay"; 130}; 131 132&cpu0 { 133 cpu-supply = <&vdd_cpu>; 134}; 135 136&cpu1 { 137 cpu-supply = <&vdd_cpu>; 138}; 139 140&cpu2 { 141 cpu-supply = <&vdd_cpu>; 142}; 143 144&cpu3 { 145 cpu-supply = <&vdd_cpu>; 146}; 147 148&gmac1 { 149 assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; 150 assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; 151 assigned-clock-rates = <0>, <125000000>; 152 clock_in_out = "output"; 153 phy-handle = <&rgmii_phy1>; 154 phy-mode = "rgmii-id"; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&gmac1m1_miim 157 &gmac1m1_tx_bus2 158 &gmac1m1_rx_bus2 159 &gmac1m1_rgmii_clk 160 &gmac1m1_rgmii_bus>; 161 status = "okay"; 162}; 163 164&gpu { 165 mali-supply = <&vdd_gpu>; 166 status = "okay"; 167}; 168 169&i2c0 { 170 status = "okay"; 171 172 vdd_cpu: regulator@1c { 173 compatible = "tcs,tcs4525"; 174 reg = <0x1c>; 175 fcs,suspend-voltage-selector = <1>; 176 regulator-name = "vdd_cpu"; 177 regulator-always-on; 178 regulator-boot-on; 179 regulator-min-microvolt = <800000>; 180 regulator-max-microvolt = <1150000>; 181 regulator-ramp-delay = <2300>; 182 vin-supply = <&vcc5v0_sys>; 183 184 regulator-state-mem { 185 regulator-off-in-suspend; 186 }; 187 }; 188 189 rk809: pmic@20 { 190 compatible = "rockchip,rk809"; 191 reg = <0x20>; 192 interrupt-parent = <&gpio0>; 193 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 194 assigned-clocks = <&cru I2S1_MCLKOUT_TX>; 195 assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; 196 #clock-cells = <1>; 197 clock-names = "mclk"; 198 clocks = <&cru I2S1_MCLKOUT_TX>; 199 pinctrl-names = "default"; 200 pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>; 201 rockchip,system-power-controller; 202 #sound-dai-cells = <0>; 203 vcc1-supply = <&vcc3v3_sys>; 204 vcc2-supply = <&vcc3v3_sys>; 205 vcc3-supply = <&vcc3v3_sys>; 206 vcc4-supply = <&vcc3v3_sys>; 207 vcc5-supply = <&vcc3v3_sys>; 208 vcc6-supply = <&vcc3v3_sys>; 209 vcc7-supply = <&vcc3v3_sys>; 210 vcc8-supply = <&vcc3v3_sys>; 211 vcc9-supply = <&vcc3v3_sys>; 212 wakeup-source; 213 214 regulators { 215 vdd_logic: DCDC_REG1 { 216 regulator-name = "vdd_logic"; 217 regulator-always-on; 218 regulator-boot-on; 219 regulator-init-microvolt = <900000>; 220 regulator-initial-mode = <0x2>; 221 regulator-min-microvolt = <500000>; 222 regulator-max-microvolt = <1350000>; 223 regulator-ramp-delay = <6001>; 224 225 regulator-state-mem { 226 regulator-off-in-suspend; 227 }; 228 }; 229 230 vdd_gpu: DCDC_REG2 { 231 regulator-name = "vdd_gpu"; 232 regulator-always-on; 233 regulator-init-microvolt = <900000>; 234 regulator-initial-mode = <0x2>; 235 regulator-min-microvolt = <500000>; 236 regulator-max-microvolt = <1350000>; 237 regulator-ramp-delay = <6001>; 238 239 regulator-state-mem { 240 regulator-off-in-suspend; 241 }; 242 }; 243 244 vcc_ddr: DCDC_REG3 { 245 regulator-name = "vcc_ddr"; 246 regulator-always-on; 247 regulator-boot-on; 248 regulator-initial-mode = <0x2>; 249 250 regulator-state-mem { 251 regulator-on-in-suspend; 252 }; 253 }; 254 255 vdd_npu: DCDC_REG4 { 256 regulator-name = "vdd_npu"; 257 regulator-init-microvolt = <900000>; 258 regulator-initial-mode = <0x2>; 259 regulator-min-microvolt = <500000>; 260 regulator-max-microvolt = <1350000>; 261 regulator-ramp-delay = <6001>; 262 263 regulator-state-mem { 264 regulator-off-in-suspend; 265 }; 266 }; 267 268 vcc_1v8: DCDC_REG5 { 269 regulator-name = "vcc_1v8"; 270 regulator-always-on; 271 regulator-boot-on; 272 regulator-min-microvolt = <1800000>; 273 regulator-max-microvolt = <1800000>; 274 275 regulator-state-mem { 276 regulator-off-in-suspend; 277 }; 278 }; 279 280 vdda0v9_image: LDO_REG1 { 281 regulator-name = "vdda0v9_image"; 282 regulator-min-microvolt = <900000>; 283 regulator-max-microvolt = <900000>; 284 285 regulator-state-mem { 286 regulator-off-in-suspend; 287 }; 288 }; 289 290 vdda_0v9: LDO_REG2 { 291 regulator-name = "vdda_0v9"; 292 regulator-always-on; 293 regulator-boot-on; 294 regulator-min-microvolt = <900000>; 295 regulator-max-microvolt = <900000>; 296 297 regulator-state-mem { 298 regulator-off-in-suspend; 299 }; 300 }; 301 302 vdda0v9_pmu: LDO_REG3 { 303 regulator-name = "vdda0v9_pmu"; 304 regulator-always-on; 305 regulator-boot-on; 306 regulator-min-microvolt = <900000>; 307 regulator-max-microvolt = <900000>; 308 309 regulator-state-mem { 310 regulator-on-in-suspend; 311 regulator-suspend-microvolt = <900000>; 312 }; 313 }; 314 315 vccio_acodec: LDO_REG4 { 316 regulator-name = "vccio_acodec"; 317 regulator-always-on; 318 regulator-min-microvolt = <3300000>; 319 regulator-max-microvolt = <3300000>; 320 321 regulator-state-mem { 322 regulator-off-in-suspend; 323 }; 324 }; 325 326 vccio_sd: LDO_REG5 { 327 regulator-name = "vccio_sd"; 328 regulator-min-microvolt = <1800000>; 329 regulator-max-microvolt = <3300000>; 330 331 regulator-state-mem { 332 regulator-off-in-suspend; 333 }; 334 }; 335 336 vcc3v3_pmu: LDO_REG6 { 337 regulator-name = "vcc3v3_pmu"; 338 regulator-always-on; 339 regulator-boot-on; 340 regulator-min-microvolt = <3300000>; 341 regulator-max-microvolt = <3300000>; 342 343 regulator-state-mem { 344 regulator-on-in-suspend; 345 regulator-suspend-microvolt = <3300000>; 346 }; 347 }; 348 349 vcca_1v8: LDO_REG7 { 350 regulator-name = "vcca_1v8"; 351 regulator-always-on; 352 regulator-boot-on; 353 regulator-min-microvolt = <1800000>; 354 regulator-max-microvolt = <1800000>; 355 356 regulator-state-mem { 357 regulator-off-in-suspend; 358 }; 359 }; 360 361 vcca1v8_pmu: LDO_REG8 { 362 regulator-name = "vcca1v8_pmu"; 363 regulator-always-on; 364 regulator-boot-on; 365 regulator-min-microvolt = <1800000>; 366 regulator-max-microvolt = <1800000>; 367 368 regulator-state-mem { 369 regulator-on-in-suspend; 370 regulator-suspend-microvolt = <1800000>; 371 }; 372 }; 373 374 vcca1v8_image: LDO_REG9 { 375 regulator-name = "vcca1v8_image"; 376 regulator-min-microvolt = <1800000>; 377 regulator-max-microvolt = <1800000>; 378 379 regulator-state-mem { 380 regulator-off-in-suspend; 381 }; 382 }; 383 384 vcc_3v3: SWITCH_REG1 { 385 regulator-name = "vcc_3v3"; 386 regulator-always-on; 387 regulator-boot-on; 388 389 regulator-state-mem { 390 regulator-off-in-suspend; 391 }; 392 }; 393 394 vcc3v3_sd: SWITCH_REG2 { 395 regulator-name = "vcc3v3_sd"; 396 397 regulator-state-mem { 398 regulator-off-in-suspend; 399 }; 400 }; 401 }; 402 403 codec { 404 mic-in-differential; 405 }; 406 }; 407}; 408 409&i2s1_8ch { 410 rockchip,trcm-sync-tx-only; 411 status = "okay"; 412}; 413 414&mdio1 { 415 rgmii_phy1: ethernet-phy@0 { 416 compatible = "ethernet-phy-ieee802.3-c22"; 417 reg = <0x0>; 418 pinctrl-names = "default"; 419 pinctrl-0 = <ð_phy_rst>; 420 reset-assert-us = <20000>; 421 reset-deassert-us = <100000>; 422 reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>; 423 }; 424}; 425 426&pinctrl { 427 ethernet { 428 eth_phy_rst: eth_phy_rst { 429 rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 430 }; 431 }; 432 433 leds { 434 led_user_en: led_user_en { 435 rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 436 }; 437 }; 438 439 pmic { 440 pmic_int: pmic_int { 441 rockchip,pins = 442 <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 443 }; 444 }; 445 446 usb { 447 vcc5v0_usb_host_en: vcc5v0_usb_host_en { 448 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 449 }; 450 vcc5v0_usb_hub_en: vcc5v0_usb_hub_en { 451 rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; 452 }; 453 vcc5v0_usb_otg_en: vcc5v0_usb_otg_en { 454 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 455 }; 456 }; 457}; 458 459&pmu_io_domains { 460 pmuio1-supply = <&vcc3v3_pmu>; 461 pmuio2-supply = <&vcc3v3_pmu>; 462 vccio1-supply = <&vccio_acodec>; 463 vccio2-supply = <&vcc_1v8>; 464 vccio3-supply = <&vccio_sd>; 465 vccio4-supply = <&vcc_1v8>; 466 vccio5-supply = <&vcc_3v3>; 467 vccio6-supply = <&vcc_1v8>; 468 vccio7-supply = <&vcc_3v3>; 469 status = "okay"; 470}; 471 472&saradc { 473 vref-supply = <&vcca_1v8>; 474 status = "okay"; 475}; 476 477&sdhci { 478 bus-width = <8>; 479 max-frequency = <200000000>; 480 non-removable; 481 pinctrl-names = "default"; 482 pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>; 483 vmmc-supply = <&vcc_3v3>; 484 vqmmc-supply = <&vcc_1v8>; 485 status = "okay"; 486}; 487 488&sdmmc0 { 489 bus-width = <4>; 490 cap-sd-highspeed; 491 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 492 disable-wp; 493 pinctrl-names = "default"; 494 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 495 sd-uhs-sdr104; 496 vmmc-supply = <&vcc3v3_sd>; 497 vqmmc-supply = <&vccio_sd>; 498 status = "okay"; 499}; 500 501&tsadc { 502 rockchip,hw-tshut-mode = <1>; 503 rockchip,hw-tshut-polarity = <0>; 504 status = "okay"; 505}; 506 507&uart2 { 508 status = "okay"; 509}; 510 511&usb_host0_ehci { 512 status = "okay"; 513}; 514 515&usb_host0_ohci { 516 status = "okay"; 517}; 518 519&usb_host0_xhci { 520 extcon = <&usb2phy0>; 521 status = "okay"; 522}; 523 524&usb_host1_ehci { 525 status = "okay"; 526}; 527 528&usb_host1_ohci { 529 status = "okay"; 530}; 531 532&usb_host1_xhci { 533 status = "okay"; 534}; 535 536&usb2phy0 { 537 status = "okay"; 538}; 539 540&usb2phy0_host { 541 phy-supply = <&vcc5v0_usb_host>; 542 status = "okay"; 543}; 544 545&usb2phy0_otg { 546 vbus-supply = <&vcc5v0_usb_otg>; 547 status = "okay"; 548}; 549 550&usb2phy1 { 551 status = "okay"; 552}; 553 554&usb2phy1_host { 555 phy-supply = <&vcc5v0_usb_host>; 556 status = "okay"; 557}; 558 559&usb2phy1_otg { 560 phy-supply = <&vcc5v0_usb_host>; 561 status = "okay"; 562}; 563