1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com> 4 */ 5 6#include <dt-bindings/input/input.h> 7#include "rk3288.dtsi" 8 9/ { 10 memory@0 { 11 device_type = "memory"; 12 reg = <0x0 0x0 0x0 0x80000000>; 13 }; 14 15 adc-keys { 16 compatible = "adc-keys"; 17 io-channels = <&saradc 1>; 18 io-channel-names = "buttons"; 19 keyup-threshold-microvolt = <1800000>; 20 21 button-recovery { 22 label = "Recovery"; 23 linux,code = <KEY_VENDOR>; 24 press-threshold-microvolt = <0>; 25 }; 26 }; 27 28 dovdd_1v8: dovdd-1v8-regulator { 29 compatible = "regulator-fixed"; 30 regulator-name = "dovdd_1v8"; 31 regulator-min-microvolt = <1800000>; 32 regulator-max-microvolt = <1800000>; 33 vin-supply = <&vcc28_dvp>; 34 }; 35 36 ext_gmac: external-gmac-clock { 37 compatible = "fixed-clock"; 38 #clock-cells = <0>; 39 clock-frequency = <125000000>; 40 clock-output-names = "ext_gmac"; 41 }; 42 43 ir: ir-receiver { 44 compatible = "gpio-ir-receiver"; 45 pinctrl-names = "default"; 46 pinctrl-0 = <&ir_int>; 47 }; 48 49 keys: gpio-keys { 50 compatible = "gpio-keys"; 51 52 power { 53 wakeup-source; 54 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 55 label = "GPIO Power"; 56 linux,code = <KEY_POWER>; 57 pinctrl-names = "default"; 58 pinctrl-0 = <&pwr_key>; 59 }; 60 }; 61 62 leds { 63 compatible = "gpio-leds"; 64 65 work_led: led-0 { 66 gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>; 67 label = "firefly:blue:user"; 68 linux,default-trigger = "rc-feedback"; 69 pinctrl-names = "default"; 70 pinctrl-0 = <&work_led_pin>; 71 }; 72 73 power_led: led-1 { 74 gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>; 75 label = "firefly:green:power"; 76 linux,default-trigger = "default-on"; 77 pinctrl-names = "default"; 78 pinctrl-0 = <&power_led_pin>; 79 }; 80 }; 81 82 vbat_wl: vcc_sys: vsys-regulator { 83 compatible = "regulator-fixed"; 84 regulator-name = "vcc_sys"; 85 regulator-min-microvolt = <5000000>; 86 regulator-max-microvolt = <5000000>; 87 regulator-always-on; 88 regulator-boot-on; 89 }; 90 91 vcc_sd: sdmmc-regulator { 92 compatible = "regulator-fixed"; 93 gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>; 94 pinctrl-names = "default"; 95 pinctrl-0 = <&sdmmc_pwr>; 96 regulator-name = "vcc_sd"; 97 regulator-min-microvolt = <3300000>; 98 regulator-max-microvolt = <3300000>; 99 startup-delay-us = <100000>; 100 vin-supply = <&vcc_io>; 101 }; 102 103 vcc_flash: flash-regulator { 104 compatible = "regulator-fixed"; 105 regulator-name = "vcc_flash"; 106 regulator-min-microvolt = <1800000>; 107 regulator-max-microvolt = <1800000>; 108 vin-supply = <&vcc_io>; 109 }; 110 111 vcc_5v: usb-regulator { 112 compatible = "regulator-fixed"; 113 regulator-name = "vcc_5v"; 114 regulator-min-microvolt = <5000000>; 115 regulator-max-microvolt = <5000000>; 116 regulator-always-on; 117 regulator-boot-on; 118 vin-supply = <&vcc_sys>; 119 }; 120 121 vcc_host_5v: usb-host-regulator { 122 compatible = "regulator-fixed"; 123 enable-active-high; 124 gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; 125 pinctrl-names = "default"; 126 pinctrl-0 = <&host_vbus_drv>; 127 regulator-name = "vcc_host_5v"; 128 regulator-min-microvolt = <5000000>; 129 regulator-max-microvolt = <5000000>; 130 regulator-always-on; 131 vin-supply = <&vcc_5v>; 132 }; 133 134 vcc_otg_5v: usb-otg-regulator { 135 compatible = "regulator-fixed"; 136 enable-active-high; 137 gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>; 138 pinctrl-names = "default"; 139 pinctrl-0 = <&otg_vbus_drv>; 140 regulator-name = "vcc_otg_5v"; 141 regulator-min-microvolt = <5000000>; 142 regulator-max-microvolt = <5000000>; 143 regulator-always-on; 144 vin-supply = <&vcc_5v>; 145 }; 146 147 /* 148 * A TT8142 creates both dovdd_1v8 and vcc28_dvp, controlled 149 * by the dvp_pwr pin. 150 */ 151 vcc28_dvp: vcc28-dvp-regulator { 152 compatible = "regulator-fixed"; 153 enable-active-high; 154 gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&dvp_pwr>; 157 regulator-name = "vcc28_dvp"; 158 regulator-min-microvolt = <2800000>; 159 regulator-max-microvolt = <2800000>; 160 regulator-always-on; 161 vin-supply = <&vcc_io>; 162 }; 163}; 164 165&cpu0 { 166 cpu0-supply = <&vdd_cpu>; 167}; 168 169&emmc { 170 bus-width = <8>; 171 cap-mmc-highspeed; 172 disable-wp; 173 non-removable; 174 pinctrl-names = "default"; 175 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>; 176 vmmc-supply = <&vcc_io>; 177 vqmmc-supply = <&vcc_flash>; 178 status = "okay"; 179}; 180 181&gmac { 182 assigned-clocks = <&cru SCLK_MAC>; 183 assigned-clock-parents = <&ext_gmac>; 184 clock_in_out = "input"; 185 pinctrl-names = "default"; 186 pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>; 187 phy-supply = <&vcc_lan>; 188 phy-mode = "rgmii"; 189 snps,reset-active-low; 190 snps,reset-delays-us = <0 10000 1000000>; 191 snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>; 192 tx_delay = <0x30>; 193 rx_delay = <0x10>; 194 status = "okay"; 195}; 196 197&gpu { 198 mali-supply = <&vdd_gpu>; 199 status = "okay"; 200}; 201 202&hdmi { 203 ddc-i2c-bus = <&i2c5>; 204 status = "okay"; 205}; 206 207&i2c0 { 208 clock-frequency = <400000>; 209 status = "okay"; 210 211 vdd_cpu: syr827@40 { 212 compatible = "silergy,syr827"; 213 fcs,suspend-voltage-selector = <1>; 214 reg = <0x40>; 215 regulator-name = "vdd_cpu"; 216 regulator-min-microvolt = <850000>; 217 regulator-max-microvolt = <1350000>; 218 regulator-always-on; 219 regulator-boot-on; 220 regulator-enable-ramp-delay = <300>; 221 regulator-ramp-delay = <8000>; 222 vin-supply = <&vcc_sys>; 223 }; 224 225 vdd_gpu: syr828@41 { 226 compatible = "silergy,syr828"; 227 fcs,suspend-voltage-selector = <1>; 228 reg = <0x41>; 229 regulator-name = "vdd_gpu"; 230 regulator-min-microvolt = <850000>; 231 regulator-max-microvolt = <1350000>; 232 regulator-always-on; 233 vin-supply = <&vcc_sys>; 234 }; 235 236 hym8563: hym8563@51 { 237 compatible = "haoyu,hym8563"; 238 reg = <0x51>; 239 #clock-cells = <0>; 240 clock-frequency = <32768>; 241 clock-output-names = "xin32k"; 242 interrupt-parent = <&gpio7>; 243 interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>; 244 pinctrl-names = "default"; 245 pinctrl-0 = <&rtc_int>; 246 }; 247 248 act8846: act8846@5a { 249 compatible = "active-semi,act8846"; 250 reg = <0x5a>; 251 pinctrl-names = "default"; 252 pinctrl-0 = <&pmic_vsel>, <&pwr_hold>; 253 system-power-controller; 254 255 vp1-supply = <&vcc_sys>; 256 vp2-supply = <&vcc_sys>; 257 vp3-supply = <&vcc_sys>; 258 vp4-supply = <&vcc_sys>; 259 inl1-supply = <&vcc_sys>; 260 inl2-supply = <&vcc_sys>; 261 inl3-supply = <&vcc_20>; 262 263 regulators { 264 vcc_ddr: REG1 { 265 regulator-name = "vcc_ddr"; 266 regulator-min-microvolt = <1200000>; 267 regulator-max-microvolt = <1200000>; 268 regulator-always-on; 269 }; 270 271 vcc_io: REG2 { 272 regulator-name = "vcc_io"; 273 regulator-min-microvolt = <3300000>; 274 regulator-max-microvolt = <3300000>; 275 regulator-always-on; 276 }; 277 278 vdd_log: REG3 { 279 regulator-name = "vdd_log"; 280 regulator-min-microvolt = <1100000>; 281 regulator-max-microvolt = <1100000>; 282 regulator-always-on; 283 }; 284 285 vcc_20: REG4 { 286 regulator-name = "vcc_20"; 287 regulator-min-microvolt = <2000000>; 288 regulator-max-microvolt = <2000000>; 289 regulator-always-on; 290 }; 291 292 vccio_sd: REG5 { 293 regulator-name = "vccio_sd"; 294 regulator-min-microvolt = <3300000>; 295 regulator-max-microvolt = <3300000>; 296 regulator-always-on; 297 }; 298 299 vdd10_lcd: REG6 { 300 regulator-name = "vdd10_lcd"; 301 regulator-min-microvolt = <1000000>; 302 regulator-max-microvolt = <1000000>; 303 regulator-always-on; 304 }; 305 306 vcca_18: REG7 { 307 regulator-name = "vcca_18"; 308 regulator-min-microvolt = <1800000>; 309 regulator-max-microvolt = <1800000>; 310 }; 311 312 vcca_33: REG8 { 313 regulator-name = "vcca_33"; 314 regulator-min-microvolt = <3300000>; 315 regulator-max-microvolt = <3300000>; 316 }; 317 318 vcc_lan: REG9 { 319 regulator-name = "vcc_lan"; 320 regulator-min-microvolt = <3300000>; 321 regulator-max-microvolt = <3300000>; 322 }; 323 324 vdd_10: REG10 { 325 regulator-name = "vdd_10"; 326 regulator-min-microvolt = <1000000>; 327 regulator-max-microvolt = <1000000>; 328 regulator-always-on; 329 }; 330 331 vccio_wl: vcc_18: REG11 { 332 regulator-name = "vcc_18"; 333 regulator-min-microvolt = <1800000>; 334 regulator-max-microvolt = <1800000>; 335 regulator-always-on; 336 }; 337 338 vcc18_lcd: REG12 { 339 regulator-name = "vcc18_lcd"; 340 regulator-min-microvolt = <1800000>; 341 regulator-max-microvolt = <1800000>; 342 regulator-always-on; 343 }; 344 }; 345 }; 346}; 347 348&i2c1 { 349 status = "okay"; 350}; 351 352&i2c2 { 353 status = "okay"; 354}; 355 356&i2c4 { 357 status = "okay"; 358}; 359 360&i2c5 { 361 status = "okay"; 362}; 363 364&io_domains { 365 status = "okay"; 366 367 audio-supply = <&vcca_33>; 368 bb-supply = <&vcc_io>; 369 dvp-supply = <&dovdd_1v8>; 370 flash0-supply = <&vcc_flash>; 371 flash1-supply = <&vcc_lan>; 372 gpio30-supply = <&vcc_io>; 373 gpio1830-supply = <&vcc_io>; 374 lcdc-supply = <&vcc_io>; 375 sdcard-supply = <&vccio_sd>; 376 wifi-supply = <&vccio_wl>; 377}; 378 379&pinctrl { 380 pcfg_output_high: pcfg-output-high { 381 output-high; 382 }; 383 384 pcfg_output_low: pcfg-output-low { 385 output-low; 386 }; 387 388 pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma { 389 bias-pull-up; 390 drive-strength = <12>; 391 }; 392 393 act8846 { 394 pwr_hold: pwr-hold { 395 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>; 396 }; 397 }; 398 399 dvp { 400 dvp_pwr: dvp-pwr { 401 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 402 }; 403 }; 404 405 gmac { 406 phy_int: phy-int { 407 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; 408 }; 409 410 phy_pmeb: phy-pmeb { 411 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; 412 }; 413 414 phy_rst: phy-rst { 415 rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>; 416 }; 417 }; 418 419 hym8563 { 420 rtc_int: rtc-int { 421 rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 422 }; 423 }; 424 425 keys { 426 pwr_key: pwr-key { 427 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 428 }; 429 }; 430 431 leds { 432 power_led_pin: power-led-pin { 433 rockchip,pins = <8 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 434 }; 435 436 work_led_pin: work-led-pin { 437 rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 438 }; 439 }; 440 441 sdmmc { 442 /* 443 * Default drive strength isn't enough to achieve even 444 * high-speed mode on firefly board so bump up to 12ma. 445 */ 446 sdmmc_bus4: sdmmc-bus4 { 447 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>, 448 <6 RK_PC1 1 &pcfg_pull_up_drv_12ma>, 449 <6 RK_PC2 1 &pcfg_pull_up_drv_12ma>, 450 <6 RK_PC3 1 &pcfg_pull_up_drv_12ma>; 451 }; 452 453 sdmmc_clk: sdmmc-clk { 454 rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>; 455 }; 456 457 sdmmc_cmd: sdmmc-cmd { 458 rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>; 459 }; 460 461 sdmmc_pwr: sdmmc-pwr { 462 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 463 }; 464 }; 465 466 usb_host { 467 host_vbus_drv: host-vbus-drv { 468 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 469 }; 470 471 usbhub_rst: usbhub-rst { 472 rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>; 473 }; 474 }; 475 476 usb_otg { 477 otg_vbus_drv: otg-vbus-drv { 478 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; 479 }; 480 }; 481}; 482 483&saradc { 484 vref-supply = <&vcc_18>; 485 status = "okay"; 486}; 487 488&sdio0 { 489 bus-width = <4>; 490 disable-wp; 491 non-removable; 492 pinctrl-names = "default"; 493 pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>; 494 vmmc-supply = <&vbat_wl>; 495 vqmmc-supply = <&vccio_wl>; 496 status = "okay"; 497}; 498 499&sdmmc { 500 bus-width = <4>; 501 cap-mmc-highspeed; 502 cap-sd-highspeed; 503 card-detect-delay = <200>; 504 disable-wp; 505 pinctrl-names = "default"; 506 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 507 vmmc-supply = <&vcc_sd>; 508 vqmmc-supply = <&vccio_sd>; 509 status = "okay"; 510}; 511 512&spi0 { 513 pinctrl-names = "default"; 514 pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>; 515 status = "okay"; 516}; 517 518&tsadc { 519 rockchip,hw-tshut-mode = <0>; 520 rockchip,hw-tshut-polarity = <0>; 521 status = "okay"; 522}; 523 524&uart0 { 525 pinctrl-names = "default"; 526 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>; 527 status = "okay"; 528}; 529 530&uart1 { 531 status = "okay"; 532}; 533 534&uart2 { 535 status = "okay"; 536}; 537 538&uart3 { 539 status = "okay"; 540}; 541 542&usbphy { 543 status = "okay"; 544}; 545 546&usb_host1 { 547 pinctrl-names = "default"; 548 pinctrl-0 = <&usbhub_rst>; 549 status = "okay"; 550}; 551 552&usb_otg { 553 status = "okay"; 554}; 555 556&vopb { 557 status = "okay"; 558}; 559 560&vopb_mmu { 561 status = "okay"; 562}; 563 564&vopl { 565 status = "okay"; 566}; 567 568&vopl_mmu { 569 status = "okay"; 570}; 571 572&wdt { 573 status = "okay"; 574}; 575