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 "rk3566.dtsi" 8 9/ { 10 model = "Firefly Station M2"; 11 compatible = "firefly,rk3566-roc-pc", "rockchip,rk3566"; 12 13 aliases { 14 mmc0 = &sdmmc0; 15 mmc1 = &sdhci; 16 mmc2 = &sdmmc1; 17 }; 18 19 chosen: chosen { 20 stdout-path = "serial2:1500000n8"; 21 }; 22 23 gmac1_clkin: external-gmac1-clock { 24 compatible = "fixed-clock"; 25 clock-frequency = <125000000>; 26 clock-output-names = "gmac1_clkin"; 27 #clock-cells = <0>; 28 }; 29 30 leds { 31 compatible = "gpio-leds"; 32 33 led-user { 34 label = "user-led"; 35 default-state = "on"; 36 gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>; 37 linux,default-trigger = "heartbeat"; 38 pinctrl-names = "default"; 39 pinctrl-0 = <&user_led_enable_h>; 40 retain-state-suspended; 41 }; 42 }; 43 44 sdio_pwrseq: sdio-pwrseq { 45 status = "okay"; 46 compatible = "mmc-pwrseq-simple"; 47 clocks = <&rk809 1>; 48 clock-names = "ext_clock"; 49 pinctrl-names = "default"; 50 pinctrl-0 = <&wifi_enable_h>; 51 reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 52 }; 53 54 usb_5v: usb-5v-regulator { 55 compatible = "regulator-fixed"; 56 regulator-name = "usb_5v"; 57 regulator-always-on; 58 regulator-boot-on; 59 regulator-min-microvolt = <5000000>; 60 regulator-max-microvolt = <5000000>; 61 }; 62 63 vcc5v0_sys: vcc5v0-sys-regulator { 64 compatible = "regulator-fixed"; 65 regulator-name = "vcc5v0_sys"; 66 regulator-always-on; 67 regulator-boot-on; 68 regulator-min-microvolt = <5000000>; 69 regulator-max-microvolt = <5000000>; 70 vin-supply = <&usb_5v>; 71 }; 72 73 vcc3v3_sys: vcc3v3-sys-regulator { 74 compatible = "regulator-fixed"; 75 regulator-name = "vcc3v3_sys"; 76 regulator-min-microvolt = <3300000>; 77 regulator-max-microvolt = <3300000>; 78 regulator-always-on; 79 vin-supply = <&vcc5v0_sys>; 80 }; 81 82 vcc5v0_usb30_host: vcc5v0-usb30-host-regulator { 83 compatible = "regulator-fixed"; 84 regulator-name = "vcc5v0_usb30_host"; 85 enable-active-high; 86 gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>; 87 pinctrl-names = "default"; 88 pinctrl-0 = <&vcc5v0_usb30_host_en_h>; 89 regulator-always-on; 90 regulator-min-microvolt = <5000000>; 91 regulator-max-microvolt = <5000000>; 92 vin-supply = <&vcc5v0_sys>; 93 }; 94 95 vcc5v0_usb_otg: vcc5v0-usb-otg-regulator { 96 compatible = "regulator-fixed"; 97 regulator-name = "vcc5v0_usb_otg"; 98 enable-active-high; 99 gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; 100 pinctrl-names = "default"; 101 pinctrl-0 = <&vcc5v0_usb_otg_en_h>; 102 regulator-always-on; 103 regulator-min-microvolt = <5000000>; 104 regulator-max-microvolt = <5000000>; 105 vin-supply = <&vcc5v0_sys>; 106 }; 107}; 108 109&combphy1 { 110 status = "okay"; 111}; 112 113&cpu0 { 114 cpu-supply = <&vdd_cpu>; 115}; 116 117&cpu1 { 118 cpu-supply = <&vdd_cpu>; 119}; 120 121&cpu2 { 122 cpu-supply = <&vdd_cpu>; 123}; 124 125&cpu3 { 126 cpu-supply = <&vdd_cpu>; 127}; 128 129&gmac1 { 130 assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; 131 assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; 132 clock_in_out = "input"; 133 phy-mode = "rgmii-id"; 134 phy-supply = <&vcc_3v3>; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&gmac1m0_miim 137 &gmac1m0_tx_bus2 138 &gmac1m0_rx_bus2 139 &gmac1m0_rgmii_clk 140 &gmac1m0_clkinout 141 &gmac1m0_rgmii_bus>; 142 snps,reset-gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>; 143 snps,reset-active-low; 144 /* Reset time is 20ms, 100ms for rtl8211f */ 145 snps,reset-delays-us = <0 20000 100000>; 146 tx_delay = <0x4f>; 147 rx_delay = <0x24>; 148 phy-handle = <&rgmii_phy1>; 149 status = "okay"; 150}; 151 152&i2c0 { 153 status = "okay"; 154 155 vdd_cpu: regulator@1c { 156 compatible = "tcs,tcs4525"; 157 reg = <0x1c>; 158 fcs,suspend-voltage-selector = <1>; 159 regulator-name = "vdd_cpu"; 160 regulator-min-microvolt = <800000>; 161 regulator-max-microvolt = <1150000>; 162 regulator-ramp-delay = <2300>; 163 regulator-always-on; 164 regulator-boot-on; 165 vin-supply = <&vcc5v0_sys>; 166 167 regulator-state-mem { 168 regulator-off-in-suspend; 169 }; 170 }; 171 172 rk809: pmic@20 { 173 compatible = "rockchip,rk809"; 174 reg = <0x20>; 175 interrupt-parent = <&gpio0>; 176 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>; 177 clock-output-names = "rk808-clkout1", "rk808-clkout2"; 178 179 pinctrl-names = "default"; 180 pinctrl-0 = <&pmic_int>; 181 rockchip,system-power-controller; 182 wakeup-source; 183 #clock-cells = <1>; 184 185 vcc1-supply = <&vcc3v3_sys>; 186 vcc2-supply = <&vcc3v3_sys>; 187 vcc3-supply = <&vcc3v3_sys>; 188 vcc4-supply = <&vcc3v3_sys>; 189 vcc5-supply = <&vcc3v3_sys>; 190 vcc6-supply = <&vcc3v3_sys>; 191 vcc7-supply = <&vcc3v3_sys>; 192 vcc8-supply = <&vcc3v3_sys>; 193 vcc9-supply = <&vcc3v3_sys>; 194 195 regulators { 196 vdd_log: DCDC_REG1 { 197 regulator-name = "vdd_log"; 198 regulator-always-on; 199 regulator-boot-on; 200 regulator-min-microvolt = <500000>; 201 regulator-max-microvolt = <1350000>; 202 regulator-init-microvolt = <900000>; 203 regulator-ramp-delay = <6001>; 204 205 regulator-state-mem { 206 regulator-on-in-suspend; 207 regulator-suspend-microvolt = <900000>; 208 }; 209 }; 210 211 vdd_gpu: DCDC_REG2 { 212 regulator-name = "vdd_gpu"; 213 regulator-min-microvolt = <900000>; 214 regulator-max-microvolt = <1350000>; 215 regulator-init-microvolt = <900000>; 216 regulator-ramp-delay = <6001>; 217 218 regulator-state-mem { 219 regulator-off-in-suspend; 220 regulator-suspend-microvolt = <900000>; 221 }; 222 }; 223 224 vcc_ddr: DCDC_REG3 { 225 regulator-name = "vcc_ddr"; 226 regulator-always-on; 227 regulator-boot-on; 228 regulator-min-microvolt = <1100000>; 229 regulator-max-microvolt = <1100000>; 230 regulator-initial-mode = <0x2>; 231 regulator-state-mem { 232 regulator-on-in-suspend; 233 }; 234 }; 235 236 vdd_npu: DCDC_REG4 { 237 regulator-name = "vdd_npu"; 238 regulator-min-microvolt = <900000>; 239 regulator-max-microvolt = <1350000>; 240 regulator-initial-mode = <0x2>; 241 regulator-state-mem { 242 regulator-off-in-suspend; 243 }; 244 }; 245 246 vcc_1v8: DCDC_REG5 { 247 regulator-name = "vcc_1v8"; 248 regulator-always-on; 249 regulator-boot-on; 250 regulator-min-microvolt = <1800000>; 251 regulator-max-microvolt = <1800000>; 252 253 regulator-state-mem { 254 regulator-on-in-suspend; 255 regulator-suspend-microvolt = <1800000>; 256 }; 257 }; 258 259 vdda0v9_image: LDO_REG1 { 260 regulator-name = "vdda0v9_image"; 261 regulator-always-on; 262 regulator-boot-on; 263 regulator-min-microvolt = <900000>; 264 regulator-max-microvolt = <900000>; 265 266 regulator-state-mem { 267 regulator-on-in-suspend; 268 regulator-suspend-microvolt = <900000>; 269 }; 270 }; 271 272 vdda_0v9: LDO_REG2 { 273 regulator-name = "vdda_0v9"; 274 regulator-always-on; 275 regulator-boot-on; 276 regulator-min-microvolt = <900000>; 277 regulator-max-microvolt = <900000>; 278 279 regulator-state-mem { 280 regulator-on-in-suspend; 281 regulator-suspend-microvolt = <900000>; 282 }; 283 }; 284 285 vdda0v9_pmu: LDO_REG3 { 286 regulator-name = "vdda0v9_pmu"; 287 regulator-always-on; 288 regulator-boot-on; 289 regulator-min-microvolt = <900000>; 290 regulator-max-microvolt = <900000>; 291 regulator-state-mem { 292 regulator-on-in-suspend; 293 regulator-suspend-microvolt = <900000>; 294 }; 295 }; 296 297 vccio_acodec: LDO_REG4 { 298 regulator-name = "vccio_acodec"; 299 regulator-always-on; 300 regulator-boot-on; 301 regulator-min-microvolt = <3300000>; 302 regulator-max-microvolt = <3300000>; 303 304 regulator-state-mem { 305 regulator-on-in-suspend; 306 regulator-suspend-microvolt = <3300000>; 307 308 }; 309 }; 310 311 vccio_sd: LDO_REG5 { 312 regulator-name = "vccio_sd"; 313 regulator-always-on; 314 regulator-boot-on; 315 regulator-min-microvolt = <1800000>; 316 regulator-max-microvolt = <3300000>; 317 318 regulator-state-mem { 319 regulator-on-in-suspend; 320 regulator-suspend-microvolt = <3300000>; 321 }; 322 }; 323 324 vcc3v3_pmu: LDO_REG6 { 325 regulator-name = "vcc3v3_pmu"; 326 regulator-always-on; 327 regulator-boot-on; 328 regulator-min-microvolt = <3300000>; 329 regulator-max-microvolt = <3300000>; 330 331 regulator-state-mem { 332 regulator-on-in-suspend; 333 regulator-suspend-microvolt = <3300000>; 334 }; 335 }; 336 337 vcca_1v8: LDO_REG7 { 338 regulator-name = "vcca_1v8"; 339 regulator-always-on; 340 regulator-boot-on; 341 regulator-min-microvolt = <1800000>; 342 regulator-max-microvolt = <1800000>; 343 344 regulator-state-mem { 345 regulator-on-in-suspend; 346 regulator-suspend-microvolt = <1800000>; 347 }; 348 }; 349 350 vcca1v8_pmu: LDO_REG8 { 351 regulator-name = "vcca1v8_pmu"; 352 regulator-always-on; 353 regulator-boot-on; 354 regulator-min-microvolt = <1800000>; 355 regulator-max-microvolt = <1800000>; 356 357 regulator-state-mem { 358 regulator-on-in-suspend; 359 regulator-suspend-microvolt = <1800000>; 360 }; 361 }; 362 363 vcca1v8_image: LDO_REG9 { 364 regulator-name = "vcca1v8_image"; 365 regulator-always-on; 366 regulator-boot-on; 367 regulator-min-microvolt = <1800000>; 368 regulator-max-microvolt = <1800000>; 369 370 regulator-state-mem { 371 regulator-on-in-suspend; 372 regulator-suspend-microvolt = <1800000>; 373 }; 374 }; 375 376 vcc_3v3: SWITCH_REG1 { 377 regulator-boot-on; 378 regulator-name = "vcc3v3"; 379 }; 380 381 vcc3v3_sd: SWITCH_REG2 { 382 regulator-name = "vcc3v3_sd"; 383 regulator-always-on; 384 regulator-boot-on; 385 }; 386 }; 387 }; 388}; 389 390&i2c1 { 391 status = "okay"; 392}; 393 394&i2c2 { 395 status = "okay"; 396}; 397 398&i2c3 { 399 pinctrl-names = "default"; 400 pinctrl-0 = <&i2c3m1_xfer>; 401 status = "okay"; 402}; 403 404&i2c5 { 405 status = "okay"; 406}; 407 408&mdio1 { 409 rgmii_phy1: ethernet-phy@0 { 410 compatible = "ethernet-phy-ieee802.3-c22"; 411 reg = <0x0>; 412 }; 413}; 414 415&pinctrl { 416 bt { 417 bt_enable_h: bt-enable-h { 418 rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 419 }; 420 421 bt_host_wake_l: bt-host-wake-l { 422 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>; 423 }; 424 425 bt_wake_l: bt-wake-l { 426 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 427 }; 428 }; 429 430 leds { 431 user_led_enable_h: user-led-enable-h { 432 rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 433 }; 434 }; 435 436 pmic { 437 pmic_int: pmic_int { 438 rockchip,pins = 439 <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 440 }; 441 }; 442 443 sdio-pwrseq { 444 wifi_enable_h: wifi-enable-h { 445 rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 446 }; 447 }; 448 449 usb { 450 vcc5v0_usb30_host_en_h: vcc5v0-usb30-host-en_h { 451 rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; 452 }; 453 454 vcc5v0_usb_otg_en_h: vcc5v0-usb-otg-en_h { 455 rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 456 }; 457 }; 458}; 459 460&pmu_io_domains { 461 status = "okay"; 462 pmuio1-supply = <&vcc3v3_pmu>; 463 pmuio2-supply = <&vcc3v3_pmu>; 464 vccio1-supply = <&vccio_acodec>; 465 vccio2-supply = <&vcc_1v8>; 466 vccio3-supply = <&vccio_sd>; 467 vccio4-supply = <&vcc_1v8>; 468 vccio5-supply = <&vcc_3v3>; 469 vccio6-supply = <&vcc_1v8>; 470 vccio7-supply = <&vcc_3v3>; 471}; 472 473&sdhci { 474 bus-width = <8>; 475 mmc-hs200-1_8v; 476 non-removable; 477 vmmc-supply = <&vcc_3v3>; 478 vqmmc-supply = <&vcc_1v8>; 479 status = "okay"; 480}; 481 482&sdmmc0 { 483 bus-width = <4>; 484 cap-sd-highspeed; 485 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 486 disable-wp; 487 pinctrl-names = "default"; 488 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 489 sd-uhs-sdr104; 490 vmmc-supply = <&vcc3v3_sd>; 491 vqmmc-supply = <&vccio_sd>; 492 status = "okay"; 493}; 494 495&sdmmc1 { 496 bus-width = <4>; 497 cap-sd-highspeed; 498 cap-sdio-irq; 499 keep-power-in-suspend; 500 mmc-pwrseq = <&sdio_pwrseq>; 501 vmmc-supply = <&vcc3v3_sys>; 502 vqmmc-supply = <&vcca1v8_pmu>; 503 pinctrl-names = "default"; 504 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 505 status = "okay"; 506}; 507 508&tsadc { 509 status = "okay"; 510}; 511 512&uart0 { 513 pinctrl-names = "default"; 514 pinctrl-0 = <&uart0_xfer>; 515 status = "okay"; 516}; 517 518&uart1 { 519 pinctrl-names = "default"; 520 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>; 521 status = "okay"; 522 uart-has-rtscts; 523 524 bluetooth { 525 compatible = "brcm,bcm43438-bt"; 526 clocks = <&rk809 1>; 527 clock-names = "lpo"; 528 device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; 529 host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; 530 shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 531 pinctrl-names = "default"; 532 pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 533 vbat-supply = <&vcc3v3_sys>; 534 vddio-supply = <&vcca1v8_pmu>; 535 }; 536}; 537 538&uart2 { 539 status = "okay"; 540}; 541 542&usb2phy0_host { 543 phy-supply = <&vcc5v0_usb30_host>; 544 status = "okay"; 545}; 546 547&usb2phy0_otg { 548 phy-supply = <&vcc5v0_usb_otg>; 549 status = "okay"; 550}; 551 552&usb2phy1_otg { 553 phy-supply = <&vcc5v0_usb30_host>; 554 status = "okay"; 555}; 556 557&usb2phy0 { 558 status = "okay"; 559}; 560 561&usb2phy1 { 562 status = "okay"; 563}; 564 565&usb_host0_xhci { 566 status = "okay"; 567}; 568 569&usb_host1_xhci { 570 status = "okay"; 571}; 572 573&usb_host0_ehci { 574 status = "okay"; 575}; 576 577&usb_host0_ohci { 578 status = "okay"; 579}; 580