1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2020 Aditya Prayoga <aditya@kobol.io> 4 */ 5 6/* 7 * The Kobol Helios64 is a board designed to operate as a NAS and optionally 8 * ships with an enclosing that can host five 2.5" hard disks. 9 * 10 * See https://wiki.kobol.io/helios64/intro/ for further details. 11 */ 12 13/dts-v1/; 14#include "rk3399.dtsi" 15#include "rk3399-opp.dtsi" 16 17/ { 18 model = "Kobol Helios64"; 19 compatible = "kobol,helios64", "rockchip,rk3399"; 20 21 aliases { 22 ethernet0 = &gmac; 23 mmc0 = &sdmmc; 24 mmc1 = &sdhci; 25 }; 26 27 avdd_0v9_s0: avdd-0v9-s0 { 28 compatible = "regulator-fixed"; 29 regulator-name = "avdd_0v9_s0"; 30 regulator-always-on; 31 regulator-boot-on; 32 regulator-min-microvolt = <900000>; 33 regulator-max-microvolt = <900000>; 34 vin-supply = <&vcc1v8_sys_s3>; 35 }; 36 37 avdd_1v8_s0: avdd-1v8-s0 { 38 compatible = "regulator-fixed"; 39 regulator-name = "avdd_1v8_s0"; 40 regulator-always-on; 41 regulator-boot-on; 42 regulator-min-microvolt = <1800000>; 43 regulator-max-microvolt = <1800000>; 44 vin-supply = <&vcc3v3_sys_s3>; 45 }; 46 47 chosen { 48 stdout-path = "serial2:1500000n8"; 49 }; 50 51 clkin_gmac: external-gmac-clock { 52 compatible = "fixed-clock"; 53 clock-frequency = <125000000>; 54 clock-output-names = "clkin_gmac"; 55 #clock-cells = <0>; 56 }; 57 58 fan1 { 59 /* fan connected to P7 */ 60 compatible = "pwm-fan"; 61 pwms = <&pwm0 0 40000 0>; 62 cooling-levels = <0 80 170 255>; 63 }; 64 65 fan2 { 66 /* fan connected to P6 */ 67 compatible = "pwm-fan"; 68 pwms = <&pwm1 0 40000 0>; 69 cooling-levels = <0 80 170 255>; 70 }; 71 72 leds { 73 compatible = "gpio-leds"; 74 pinctrl-names = "default"; 75 pinctrl-0 = <&sys_grn_led_on &sys_red_led_on>; 76 77 led-0 { 78 label = "helios64:green:status"; 79 gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; 80 default-state = "on"; 81 }; 82 83 led-1 { 84 label = "helios64:red:fault"; 85 gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>; 86 default-state = "keep"; 87 }; 88 }; 89 90 hdd_a_power: hdd-a-power { 91 compatible = "regulator-fixed"; 92 enable-active-high; 93 gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; 94 pinctrl-0 = <&hdd_a_power_en>; 95 pinctrl-names = "default"; 96 regulator-always-on; 97 regulator-boot-on; 98 regulator-name = "hdd_a_power"; 99 startup-delay-us = <2000000>; 100 }; 101 102 hdd_b_power: hdd-b-power { 103 compatible = "regulator-fixed"; 104 enable-active-high; 105 gpio = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>; 106 pinctrl-0 = <&hdd_b_power_en>; 107 pinctrl-names = "default"; 108 regulator-always-on; 109 regulator-boot-on; 110 regulator-name = "hdd_b_power"; 111 startup-delay-us = <2000000>; 112 }; 113 114 pcie_power: pcie-power { 115 compatible = "regulator-fixed"; 116 enable-active-high; 117 gpio = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>; 118 pinctrl-0 = <&pcie_pwr>; 119 pinctrl-names = "default"; 120 regulator-boot-on; 121 regulator-name = "pcie_power"; 122 startup-delay-us = <10000>; 123 vin-supply = <&vcc5v0_perdev>; 124 }; 125 126 usblan_power: usblan-power { 127 compatible = "regulator-fixed"; 128 enable-active-high; 129 gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; 130 pinctrl-names = "default"; 131 pinctrl-0 = <&usb_lan_en>; 132 regulator-name = "usblan_power"; 133 regulator-always-on; 134 regulator-boot-on; 135 vin-supply = <&vcc5v0_usb>; 136 }; 137 138 vcc1v8_sys_s0: vcc1v8-sys-s0 { 139 compatible = "regulator-fixed"; 140 regulator-name = "vcc1v8_sys_s0"; 141 regulator-always-on; 142 regulator-boot-on; 143 regulator-min-microvolt = <1800000>; 144 regulator-max-microvolt = <1800000>; 145 vin-supply = <&vcc1v8_sys_s3>; 146 }; 147 148 vcc3v0_sd: vcc3v0-sd { 149 compatible = "regulator-fixed"; 150 enable-active-high; 151 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; 152 regulator-name = "vcc3v0_sd"; 153 regulator-boot-on; 154 regulator-min-microvolt = <3000000>; 155 regulator-max-microvolt = <3000000>; 156 pinctrl-names = "default"; 157 pinctrl-0 = <&sdmmc0_pwr_h>; 158 vin-supply = <&vcc3v3_sys_s3>; 159 }; 160 161 vcc3v3_sys_s3: vcc_lan: vcc3v3-sys-s3 { 162 compatible = "regulator-fixed"; 163 regulator-name = "vcc3v3_sys_s3"; 164 regulator-always-on; 165 regulator-boot-on; 166 regulator-min-microvolt = <3300000>; 167 regulator-max-microvolt = <3300000>; 168 vin-supply = <&vcc5v0_sys>; 169 170 regulator-state-mem { 171 regulator-on-in-suspend; 172 }; 173 }; 174 175 vcc5v0_perdev: vcc5v0-perdev { 176 compatible = "regulator-fixed"; 177 regulator-name = "vcc5v0_perdev"; 178 regulator-always-on; 179 regulator-boot-on; 180 regulator-min-microvolt = <5000000>; 181 regulator-max-microvolt = <5000000>; 182 vin-supply = <&vcc12v_dcin_bkup>; 183 }; 184 185 vcc5v0_sys: vcc5v0-sys { 186 compatible = "regulator-fixed"; 187 regulator-name = "vcc5v0_sys"; 188 regulator-always-on; 189 regulator-boot-on; 190 regulator-min-microvolt = <5000000>; 191 regulator-max-microvolt = <5000000>; 192 vin-supply = <&vcc12v_dcin_bkup>; 193 194 regulator-state-mem { 195 regulator-on-in-suspend; 196 }; 197 }; 198 199 vcc5v0_usb: vcc5v0-usb { 200 compatible = "regulator-fixed"; 201 enable-active-high; 202 gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; 203 pinctrl-names = "default"; 204 pinctrl-0 = <&vcc5v0_usb_en>; 205 regulator-name = "vcc5v0_usb"; 206 regulator-always-on; 207 regulator-boot-on; 208 regulator-min-microvolt = <5000000>; 209 regulator-max-microvolt = <5000000>; 210 vin-supply = <&vcc5v0_perdev>; 211 }; 212 213 vcc12v_dcin: vcc12v-dcin { 214 compatible = "regulator-fixed"; 215 regulator-name = "vcc12v_dcin"; 216 regulator-always-on; 217 regulator-boot-on; 218 regulator-min-microvolt = <12000000>; 219 regulator-max-microvolt = <12000000>; 220 }; 221 222 vcc12v_dcin_bkup: vcc12v-dcin-bkup { 223 compatible = "regulator-fixed"; 224 regulator-name = "vcc12v_dcin_bkup"; 225 regulator-always-on; 226 regulator-boot-on; 227 regulator-min-microvolt = <12000000>; 228 regulator-max-microvolt = <12000000>; 229 vin-supply = <&vcc12v_dcin>; 230 }; 231}; 232 233/* 234 * The system doesn't run stable with cpu freq enabled, so disallow the lower 235 * frequencies until this problem is properly understood and resolved. 236 */ 237&cluster0_opp { 238 /delete-node/ opp00; 239 /delete-node/ opp01; 240 /delete-node/ opp02; 241 /delete-node/ opp03; 242 /delete-node/ opp04; 243}; 244 245&cluster1_opp { 246 /delete-node/ opp00; 247 /delete-node/ opp01; 248 /delete-node/ opp02; 249 /delete-node/ opp03; 250 /delete-node/ opp04; 251 /delete-node/ opp05; 252 /delete-node/ opp06; 253}; 254 255&cpu_b0 { 256 cpu-supply = <&vdd_cpu_b>; 257}; 258 259&cpu_b1 { 260 cpu-supply = <&vdd_cpu_b>; 261}; 262 263&cpu_l0 { 264 cpu-supply = <&vdd_cpu_l>; 265}; 266 267&cpu_l1 { 268 cpu-supply = <&vdd_cpu_l>; 269}; 270 271&cpu_l2 { 272 cpu-supply = <&vdd_cpu_l>; 273}; 274 275&cpu_l3 { 276 cpu-supply = <&vdd_cpu_l>; 277}; 278 279&emmc_phy { 280 status = "okay"; 281}; 282 283&gmac { 284 assigned-clock-parents = <&clkin_gmac>; 285 assigned-clocks = <&cru SCLK_RMII_SRC>; 286 clock_in_out = "input"; 287 phy-mode = "rgmii"; 288 phy-supply = <&vcc_lan>; 289 pinctrl-names = "default"; 290 pinctrl-0 = <&rgmii_pins &gphy_reset>; 291 rx_delay = <0x20>; 292 tx_delay = <0x28>; 293 snps,reset-active-low; 294 snps,reset-delays-us = <0 10000 50000>; 295 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>; 296 status = "okay"; 297}; 298 299&i2c0 { 300 clock-frequency = <400000>; 301 i2c-scl-rising-time-ns = <168>; 302 i2c-scl-falling-time-ns = <4>; 303 status = "okay"; 304 305 rk808: pmic@1b { 306 compatible = "rockchip,rk808"; 307 reg = <0x1b>; 308 interrupt-parent = <&gpio0>; 309 interrupts = <10 IRQ_TYPE_LEVEL_LOW>; 310 clock-output-names = "xin32k", "rk808-clkout2"; 311 pinctrl-names = "default"; 312 pinctrl-0 = <&pmic_int_l>; 313 rockchip,system-power-controller; 314 vcc1-supply = <&vcc5v0_sys>; 315 vcc2-supply = <&vcc5v0_sys>; 316 vcc3-supply = <&vcc5v0_sys>; 317 vcc4-supply = <&vcc5v0_sys>; 318 vcc6-supply = <&vcc5v0_sys>; 319 vcc7-supply = <&vcc5v0_sys>; 320 vcc8-supply = <&vcc3v3_sys_s3>; 321 vcc9-supply = <&vcc5v0_sys>; 322 vcc10-supply = <&vcc5v0_sys>; 323 vcc11-supply = <&vcc5v0_sys>; 324 vcc12-supply = <&vcc3v3_sys_s3>; 325 vddio-supply = <&vcc3v0_s3>; 326 wakeup-source; 327 #clock-cells = <1>; 328 329 regulators { 330 vdd_cpu_l: DCDC_REG2 { 331 regulator-name = "vdd_cpu_l"; 332 regulator-always-on; 333 regulator-boot-on; 334 regulator-min-microvolt = <750000>; 335 regulator-max-microvolt = <1350000>; 336 regulator-ramp-delay = <6001>; 337 338 regulator-state-mem { 339 regulator-off-in-suspend; 340 }; 341 }; 342 343 vcc1v8_sys_s3: DCDC_REG4 { 344 regulator-name = "vcc1v8_sys_s3"; 345 regulator-always-on; 346 regulator-boot-on; 347 regulator-min-microvolt = <1800000>; 348 regulator-max-microvolt = <1800000>; 349 350 regulator-state-mem { 351 regulator-on-in-suspend; 352 regulator-suspend-microvolt = <1800000>; 353 }; 354 }; 355 356 vcc_sdio_s0: LDO_REG4 { 357 regulator-name = "vcc_sdio_s0"; 358 regulator-always-on; 359 regulator-boot-on; 360 regulator-min-microvolt = <1800000>; 361 regulator-max-microvolt = <3000000>; 362 363 regulator-state-mem { 364 regulator-on-in-suspend; 365 regulator-suspend-microvolt = <3000000>; 366 }; 367 }; 368 369 vcc3v0_s3: LDO_REG8 { 370 regulator-name = "vcc3v0_s3"; 371 regulator-always-on; 372 regulator-boot-on; 373 regulator-min-microvolt = <3000000>; 374 regulator-max-microvolt = <3000000>; 375 376 regulator-state-mem { 377 regulator-on-in-suspend; 378 regulator-suspend-microvolt = <3000000>; 379 }; 380 }; 381 }; 382 }; 383 384 vdd_cpu_b: regulator@40 { 385 compatible = "silergy,syr827"; 386 reg = <0x40>; 387 fcs,suspend-voltage-selector = <1>; 388 regulator-name = "vdd_cpu_b"; 389 regulator-always-on; 390 regulator-boot-on; 391 regulator-min-microvolt = <712500>; 392 regulator-max-microvolt = <1500000>; 393 regulator-ramp-delay = <1000>; 394 vin-supply = <&vcc5v0_sys>; 395 396 regulator-state-mem { 397 regulator-off-in-suspend; 398 }; 399 }; 400}; 401 402&i2c2 { 403 clock-frequency = <400000>; 404 i2c-scl-rising-time-ns = <160>; 405 i2c-scl-falling-time-ns = <30>; 406 status = "okay"; 407 408 temp@4c { 409 compatible = "national,lm75"; 410 reg = <0x4c>; 411 }; 412}; 413 414&io_domains { 415 audio-supply = <&vcc1v8_sys_s0>; 416 bt656-supply = <&vcc1v8_sys_s0>; 417 gpio1830-supply = <&vcc3v0_s3>; 418 sdmmc-supply = <&vcc_sdio_s0>; 419 status = "okay"; 420}; 421 422&pcie_phy { 423 status = "okay"; 424}; 425 426&pcie0 { 427 ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; 428 max-link-speed = <2>; 429 num-lanes = <2>; 430 pinctrl-names = "default"; 431 status = "okay"; 432 433 vpcie12v-supply = <&vcc12v_dcin>; 434 vpcie3v3-supply = <&pcie_power>; 435 vpcie1v8-supply = <&avdd_1v8_s0>; 436 vpcie0v9-supply = <&avdd_0v9_s0>; 437}; 438 439&pinctrl { 440 gmac { 441 gphy_reset: gphy-reset { 442 rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_output_low>; 443 }; 444 }; 445 446 leds { 447 sys_grn_led_on: sys-grn-led-on { 448 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; 449 }; 450 451 sys_red_led_on: sys-red-led-on { 452 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>; 453 }; 454 }; 455 456 pcie { 457 pcie_pwr: pcie-pwr { 458 rockchip,pins = 459 <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>; 460 }; 461 }; 462 463 pmic { 464 pmic_int_l: pmic-int-l { 465 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 466 }; 467 }; 468 469 power { 470 hdd_a_power_en: hdd-a-power-en { 471 rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 472 }; 473 474 hdd_b_power_en: hdd-b-power-en { 475 rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 476 }; 477 478 vcc5v0_usb_en: vcc5v0-usb-en { 479 rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 480 }; 481 482 usb_lan_en: usb-lan-en { 483 rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; 484 }; 485 }; 486 487 vcc3v0-sd { 488 sdmmc0_pwr_h: sdmmc0-pwr-h { 489 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; 490 }; 491 }; 492}; 493 494&pmu_io_domains { 495 pmu1830-supply = <&vcc3v0_s3>; 496 status = "okay"; 497}; 498 499&pwm0 { 500 /* pwm-fan on P7 */ 501 status = "okay"; 502}; 503 504&pwm1 { 505 /* pwm-fan on P6 */ 506 status = "okay"; 507}; 508 509&sdhci { 510 bus-width = <8>; 511 mmc-hs200-1_8v; 512 non-removable; 513 vqmmc-supply = <&vcc1v8_sys_s0>; 514 status = "okay"; 515}; 516 517&sdmmc { 518 bus-width = <4>; 519 cap-sd-highspeed; 520 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 521 disable-wp; 522 pinctrl-names = "default"; 523 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 524 vmmc-supply = <&vcc3v0_sd>; 525 vqmmc-supply = <&vcc_sdio_s0>; 526 status = "okay"; 527}; 528 529&spi1 { 530 status = "okay"; 531 532 spiflash: flash@0 { 533 compatible = "jedec,spi-nor"; 534 reg = <0x0>; 535 spi-max-frequency = <25000000>; 536 status = "okay"; 537 m25p,fast-read; 538 }; 539}; 540 541/* UEXT connector */ 542&spi2 { 543 status = "okay"; 544}; 545 546&spi5 { 547 status = "okay"; 548}; 549 550&tcphy1 { 551 /* phy for &usbdrd_dwc3_1 */ 552 status = "okay"; 553}; 554 555&tsadc { 556 /* tshut mode 0:CRU 1:GPIO */ 557 rockchip,hw-tshut-mode = <1>; 558 /* tshut polarity 0:LOW 1:HIGH */ 559 rockchip,hw-tshut-polarity = <1>; 560 status = "okay"; 561}; 562 563&u2phy1 { 564 status = "okay"; 565 566 otg-port { 567 /* phy for &usbdrd_dwc3_1 */ 568 phy-supply = <&vcc5v0_usb>; 569 status = "okay"; 570 }; 571}; 572 573&uart2 { 574 status = "okay"; 575}; 576 577&usbdrd3_1 { 578 status = "okay"; 579 580 usb@fe900000 { 581 dr_mode = "host"; 582 status = "okay"; 583 #address-cells = <1>; 584 #size-cells = <0>; 585 586 hub@1 { 587 compatible = "usb2109,0815"; 588 reg = <1>; 589 #address-cells = <1>; 590 #size-cells = <0>; 591 592 port@1 { 593 reg = <1>; 594 #trigger-source-cells = <0>; 595 }; 596 597 port@2 { 598 reg = <2>; 599 #trigger-source-cells = <0>; 600 }; 601 602 port@3 { 603 reg = <3>; 604 #trigger-source-cells = <0>; 605 }; 606 607 device@4 { 608 compatible = "usbbda,8156"; 609 reg = <4>; 610 #address-cells = <2>; 611 #size-cells = <0>; 612 613 interface@0 { /* interface 0 of configuration 1 */ 614 compatible = "usbbda,8156.config1.0"; 615 reg = <0 1>; 616 }; 617 }; 618 }; 619 }; 620}; 621