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/pinctrl/rockchip.h> 7#include <dt-bindings/soc/rockchip,vop2.h> 8#include "rk3568.dtsi" 9 10/ { 11 model = "Ariaboard Photonicat"; 12 compatible = "ariaboard,photonicat", "rockchip,rk3568"; 13 14 aliases { 15 ethernet0 = &gmac0; 16 ethernet1 = &gmac1; 17 mmc0 = &sdhci; 18 mmc1 = &sdmmc0; 19 mmc2 = &sdmmc1; 20 }; 21 22 battery: battery { 23 compatible = "simple-battery"; 24 device-chemistry = "lithium-ion"; 25 charge-full-design-microamp-hours = <6800000>; 26 energy-full-design-microwatt-hours = <25000000>; 27 voltage-max-design-microvolt = <4200000>; 28 voltage-min-design-microvolt = <3400000>; 29 30 ocv-capacity-celsius = <25>; 31 ocv-capacity-table-0 = <4100000 100>, <4040000 90>, 32 <3980000 80>, <3920000 70>, 33 <3870000 60>, <3820000 50>, 34 <3790000 40>, <3770000 30>, 35 <3740000 20>, <3680000 10>, 36 <3450000 0>; 37 }; 38 39 chosen: chosen { 40 stdout-path = "serial2:1500000n8"; 41 }; 42 43 hdmi_con: hdmi-con { 44 compatible = "hdmi-connector"; 45 type = "a"; 46 47 port { 48 hdmi_con_in: endpoint { 49 remote-endpoint = <&hdmi_out_con>; 50 }; 51 }; 52 }; 53 54 vcc_1v8: regulator-vcc-1v8 { 55 compatible = "regulator-fixed"; 56 regulator-name = "vcc_1v8"; 57 regulator-always-on; 58 regulator-boot-on; 59 regulator-min-microvolt = <1800000>; 60 regulator-max-microvolt = <1800000>; 61 vin-supply = <&vcc3v3_sys>; 62 }; 63 64 vcc_3v3: regulator-vcc-3v3 { 65 compatible = "regulator-fixed"; 66 regulator-name = "vcc_3v3"; 67 regulator-always-on; 68 regulator-boot-on; 69 regulator-min-microvolt = <3300000>; 70 regulator-max-microvolt = <3300000>; 71 vin-supply = <&vcc3v3_sys>; 72 }; 73 74 /* actually fed by vcc_syson, dependent 75 * on pi6c clock generator 76 */ 77 vcc3v3_pcie: regulator-vcc3v3-pcie { 78 compatible = "regulator-fixed"; 79 regulator-name = "vcc3v3_pcie"; 80 regulator-always-on; 81 regulator-boot-on; 82 regulator-min-microvolt = <3300000>; 83 regulator-max-microvolt = <3300000>; 84 vin-supply = <&vcc3v3_pi6c>; 85 }; 86 87 /* pi6c pcie clock generator */ 88 vcc3v3_pi6c: regulator-vcc3v3-pi6c { 89 compatible = "regulator-fixed"; 90 enable-active-high; 91 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 92 pinctrl-names = "default"; 93 pinctrl-0 = <&pcie_pwren_h>; 94 regulator-name = "vcc3v3_pi6c"; 95 regulator-min-microvolt = <3300000>; 96 regulator-max-microvolt = <3300000>; 97 vin-supply = <&vcc_syson>; 98 }; 99 100 vcc3v3_sd: regulator-vcc3v3-sd { 101 compatible = "regulator-fixed"; 102 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_LOW>; 103 pinctrl-names = "default"; 104 pinctrl-0 = <&sdmmc0_pwren>; 105 regulator-boot-on; 106 regulator-name = "vcc3v3_sd"; 107 regulator-min-microvolt = <3300000>; 108 regulator-max-microvolt = <3300000>; 109 vin-supply = <&vcc_3v3>; 110 }; 111 112 vcc3v3_sys: regulator-vcc3v3-sys { 113 compatible = "regulator-fixed"; 114 regulator-name = "vcc3v3_sys"; 115 regulator-always-on; 116 regulator-boot-on; 117 regulator-min-microvolt = <3300000>; 118 regulator-max-microvolt = <3300000>; 119 vin-supply = <&vcc_syson>; 120 }; 121 122 vcc3v4_rf: regulator-vcc3v4-rf { 123 compatible = "regulator-fixed"; 124 enable-active-high; 125 gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; 126 pinctrl-names = "default"; 127 pinctrl-0 = <&rf_pwr_en>; 128 regulator-name = "vcc3v4_rf"; 129 regulator-min-microvolt = <3400000>; 130 regulator-max-microvolt = <3400000>; 131 vin-supply = <&vccin_5v>; 132 }; 133 134 vcc5v0_usb30_otg0: regulator-vcc5v0-usb30-otg0 { 135 compatible = "regulator-fixed"; 136 enable-active-high; 137 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>; 138 pinctrl-names = "default"; 139 pinctrl-0 = <&usb_host_pwren_h>; 140 regulator-name = "vcc5v0_usb30_otg0"; 141 regulator-min-microvolt = <5000000>; 142 regulator-max-microvolt = <5000000>; 143 vin-supply = <&vccin_5v>; 144 }; 145 146 vccin_5v: regulator-vccin-5v { 147 compatible = "regulator-fixed"; 148 regulator-name = "vccin_5v"; 149 regulator-always-on; 150 regulator-boot-on; 151 regulator-min-microvolt = <5000000>; 152 regulator-max-microvolt = <5000000>; 153 }; 154 155 vcc_sysin: regulator-vcc-sysin { 156 compatible = "regulator-fixed"; 157 regulator-name = "vcc_sysin"; 158 regulator-always-on; 159 regulator-boot-on; 160 regulator-min-microvolt = <5000000>; 161 regulator-max-microvolt = <5000000>; 162 vin-supply = <&vccin_5v>; 163 }; 164 165 vcc_syson: regulator-vcc-syson { 166 compatible = "regulator-fixed"; 167 regulator-name = "vcc_syson"; 168 regulator-always-on; 169 regulator-boot-on; 170 regulator-min-microvolt = <5000000>; 171 regulator-max-microvolt = <5000000>; 172 vin-supply = <&vcc_sysin>; 173 }; 174 175 vcca_1v8: regulator-vcca-1v8 { 176 compatible = "regulator-fixed"; 177 regulator-name = "vcca_1v8"; 178 regulator-always-on; 179 regulator-boot-on; 180 regulator-min-microvolt = <1800000>; 181 regulator-max-microvolt = <1800000>; 182 vin-supply = <&vcc3v3_sys>; 183 }; 184 185 vdda_0v9: regulator-vdda-0v9 { 186 compatible = "regulator-fixed"; 187 regulator-name = "vdda_0v9"; 188 regulator-always-on; 189 regulator-boot-on; 190 regulator-min-microvolt = <900000>; 191 regulator-max-microvolt = <900000>; 192 vin-supply = <&vcc3v3_sys>; 193 }; 194 195 vdd_gpu: regulator-vdd-gpu { 196 compatible = "pwm-regulator"; 197 pwms = <&pwm2 0 5000 1>; 198 pwm-supply = <&vcc_syson>; 199 regulator-name = "vdd_gpu"; 200 regulator-min-microvolt = <800000>; 201 regulator-max-microvolt = <1350000>; 202 regulator-ramp-delay = <6001>; 203 regulator-settling-time-up-us = <250>; 204 }; 205 206 vdd_logic: regulator-vdd-logic { 207 compatible = "pwm-regulator"; 208 pwms = <&pwm1 0 5000 1>; 209 pwm-supply = <&vcc_syson>; 210 regulator-name = "vdd_logic"; 211 regulator-min-microvolt = <500000>; 212 regulator-max-microvolt = <1350000>; 213 regulator-ramp-delay = <6001>; 214 regulator-settling-time-up-us = <250>; 215 }; 216 217 rfkill-modem { 218 compatible = "rfkill-gpio"; 219 label = "M.2 USB Modem"; 220 radio-type = "wwan"; 221 shutdown-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>; 222 }; 223 224 wifi_pwrseq: wifi-pwrseq { 225 compatible = "mmc-pwrseq-simple"; 226 clocks = <&pmucru CLK_RTC_32K>; 227 clock-names = "ext_clock"; 228 pinctrl-names = "default"; 229 pinctrl-0 = <&wifi_reg_on_h &clk32k_out1>; 230 post-power-on-delay-ms = <200>; 231 reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 232 }; 233}; 234 235&combphy0 { 236 status = "okay"; 237}; 238 239&combphy1 { 240 status = "okay"; 241}; 242 243&combphy2 { 244 status = "okay"; 245}; 246 247&cpu0 { 248 cpu-supply = <&vdd_cpu>; 249}; 250 251&cpu1 { 252 cpu-supply = <&vdd_cpu>; 253}; 254 255&cpu2 { 256 cpu-supply = <&vdd_cpu>; 257}; 258 259&cpu3 { 260 cpu-supply = <&vdd_cpu>; 261}; 262 263/* Motorcomm YT8521SC LAN port (require SGMII) */ 264&gmac0 { 265 status = "disabled"; 266}; 267 268/* Motorcomm YT8521SC WAN port */ 269&gmac1 { 270 assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; 271 assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>; 272 assigned-clock-rates = <0>, <125000000>; 273 clock_in_out = "output"; 274 phy-handle = <&rgmii_phy>; 275 phy-mode = "rgmii-id"; 276 phy-supply = <&vcc_3v3>; 277 pinctrl-names = "default"; 278 pinctrl-0 = <&gmac1m1_miim 279 &gmac1m1_tx_bus2 280 &gmac1m1_rx_bus2 281 &gmac1m1_rgmii_clk 282 &gmac1m1_rgmii_bus>; 283 status = "okay"; 284}; 285 286&gpu { 287 mali-supply = <&vdd_gpu>; 288 status = "okay"; 289}; 290 291&hdmi { 292 avdd-0v9-supply = <&vdda_0v9>; 293 avdd-1v8-supply = <&vcca_1v8>; 294 status = "okay"; 295}; 296 297&hdmi_in { 298 hdmi_in_vp0: endpoint { 299 remote-endpoint = <&vp0_out_hdmi>; 300 }; 301}; 302 303&hdmi_out { 304 hdmi_out_con: endpoint { 305 remote-endpoint = <&hdmi_con_in>; 306 }; 307}; 308 309&hdmi_sound { 310 status = "okay"; 311}; 312 313&i2c0 { 314 status = "okay"; 315 316 vdd_cpu: regulator@1c { 317 compatible = "tcs,tcs4525"; 318 reg = <0x1c>; 319 fcs,suspend-voltage-selector = <1>; 320 regulator-name = "vdd_cpu"; 321 regulator-always-on; 322 regulator-boot-on; 323 regulator-min-microvolt = <800000>; 324 regulator-max-microvolt = <1150000>; 325 regulator-ramp-delay = <2300>; 326 vin-supply = <&vcc_syson>; 327 328 regulator-state-mem { 329 regulator-off-in-suspend; 330 }; 331 }; 332}; 333 334&i2c2 { 335 pinctrl-names = "default"; 336 pinctrl-0 = <&i2c2m1_xfer>; 337 status = "okay"; 338}; 339 340&i2s0_8ch { 341 status = "okay"; 342}; 343 344&mdio1 { 345 rgmii_phy: ethernet-phy@3 { 346 compatible = "ethernet-phy-ieee802.3-c22"; 347 reg = <0x3>; 348 reset-assert-us = <20000>; 349 reset-deassert-us = <100000>; 350 reset-gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_LOW>; 351 rx-internal-delay-ps = <1500>; 352 tx-internal-delay-ps = <1500>; 353 }; 354}; 355 356&pcie30phy { 357 status = "okay"; 358}; 359 360/* M.2 E-Key for PCIe WLAN */ 361&pcie3x2 { 362 max-link-speed = <1>; 363 num-lanes = <1>; 364 pinctrl-names = "default"; 365 pinctrl-0 = <&pcie30x1m0_pins>; 366 reset-gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; 367 vpcie3v3-supply = <&vcc3v3_pcie>; 368 status = "okay"; 369}; 370 371&pinctrl { 372 bt { 373 bt_reg_on_h: bt-reg-on-h { 374 rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 375 }; 376 }; 377 378 pcie { 379 pcie_pwren_h: pcie-pwren-h { 380 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 381 }; 382 }; 383 384 sdmmc0 { 385 sdmmc0_pwren: sdmmc0-pwren { 386 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 387 }; 388 }; 389 390 usb { 391 rf_pwr_en: rf-pwr-en { 392 rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; 393 }; 394 395 usb_host_pwren_h: usb-host-pwren-h { 396 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 397 }; 398 }; 399 400 wifi { 401 wifi_reg_on_h: wifi-reg-on-h { 402 rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 403 }; 404 }; 405}; 406 407&pmu_io_domains { 408 pmuio1-supply = <&vcc_3v3>; 409 pmuio2-supply = <&vcc_3v3>; 410 vccio1-supply = <&vcc_3v3>; 411 vccio2-supply = <&vcc_1v8>; 412 vccio3-supply = <&vcc_3v3>; 413 vccio4-supply = <&vcc_1v8>; 414 vccio5-supply = <&vcc_3v3>; 415 vccio6-supply = <&vcc_3v3>; 416 vccio7-supply = <&vcc_3v3>; 417 status = "okay"; 418}; 419 420&pwm1 { 421 status = "okay"; 422}; 423 424&pwm2 { 425 status = "okay"; 426}; 427 428&saradc { 429 vref-supply = <&vcca_1v8>; 430 status = "okay"; 431}; 432 433/* eMMC */ 434&sdhci { 435 bus-width = <8>; 436 max-frequency = <200000000>; 437 mmc-hs200-1_8v; 438 non-removable; 439 pinctrl-names = "default"; 440 pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd>; 441 vmmc-supply = <&vcc_3v3>; 442 vqmmc-supply = <&vcc_1v8>; 443 status = "okay"; 444}; 445 446/* Micro SD card slot */ 447&sdmmc0 { 448 bus-width = <4>; 449 cap-sd-highspeed; 450 cd-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_LOW>; 451 disable-wp; 452 no-1-8-v; 453 pinctrl-names = "default"; 454 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd>; 455 vmmc-supply = <&vcc3v3_sd>; 456 vqmmc-supply = <&vcc_3v3>; 457 status = "okay"; 458}; 459 460/* Qualcomm Atheros QCA9377 WiFi */ 461&sdmmc1 { 462 bus-width = <4>; 463 cap-sd-highspeed; 464 cap-sdio-irq; 465 keep-power-in-suspend; 466 mmc-pwrseq = <&wifi_pwrseq>; 467 non-removable; 468 pinctrl-names = "default"; 469 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 470 sd-uhs-sdr104; 471 vmmc-supply = <&vcc3v3_sys>; 472 vqmmc-supply = <&vcc_1v8>; 473 #address-cells = <1>; 474 #size-cells = <0>; 475 status = "okay"; 476 477 wifi: wifi@1 { 478 reg = <1>; 479 interrupt-parent = <&gpio2>; 480 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>; 481 interrupt-names = "host-wake"; 482 }; 483}; 484 485&tsadc { 486 rockchip,hw-tshut-mode = <1>; 487 rockchip,hw-tshut-polarity = <0>; 488 status = "okay"; 489}; 490 491/* Qualcomm Atheros QCA9377 Bluetooth */ 492&uart1 { 493 dma-names = "tx", "rx"; 494 pinctrl-names = "default"; 495 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 496 uart-has-rtscts; 497 status = "okay"; 498 499 bluetooth { 500 compatible = "qcom,qca9377-bt"; 501 clocks = <&pmucru CLK_RTC_32K>; 502 enable-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 503 pinctrl-names = "default"; 504 pinctrl-0 = <&bt_reg_on_h>; 505 vddio-supply = <&vcc_1v8>; 506 }; 507}; 508 509/* Debug UART */ 510&uart2 { 511 status = "okay"; 512}; 513 514&uart3 { 515 dma-names = "tx", "rx"; 516 status = "okay"; 517}; 518 519/* Onboard power management MCU */ 520&uart4 { 521 dma-names = "tx", "rx"; 522 status = "okay"; 523}; 524 525/* M.2 E-Key for USB Bluetooth */ 526&usb_host0_ehci { 527 status = "okay"; 528}; 529 530&usb_host0_ohci { 531 status = "okay"; 532}; 533 534/* USB Type-A Port */ 535&usb_host0_xhci { 536 dr_mode = "host"; 537 status = "okay"; 538}; 539 540/* M.2 B-Key for USB Modem WWAN */ 541&usb_host1_xhci { 542 status = "okay"; 543}; 544 545&usb2phy0 { 546 status = "okay"; 547}; 548 549&usb2phy0_host { 550 phy-supply = <&vcc3v4_rf>; 551 status = "okay"; 552}; 553 554&usb2phy0_otg { 555 phy-supply = <&vcc5v0_usb30_otg0>; 556 status = "okay"; 557}; 558 559&usb2phy1 { 560 status = "okay"; 561}; 562 563&usb2phy1_otg { 564 phy-supply = <&vcc5v0_usb30_otg0>; 565 status = "okay"; 566}; 567 568&vop { 569 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 570 assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 571 status = "okay"; 572}; 573 574&vop_mmu { 575 status = "okay"; 576}; 577 578&vp0 { 579 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 580 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 581 remote-endpoint = <&hdmi_in_vp0>; 582 }; 583}; 584 585&xin32k { 586 pinctrl-names = "default"; 587 pinctrl-0 = <&clk32k_out1>; 588}; 589