1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd 4 */ 5 6/dts-v1/; 7#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/input/input.h> 9#include <dt-bindings/pinctrl/rockchip.h> 10#include "px30.dtsi" 11 12/ { 13 model = "Firefly Core-PX30-JD4"; 14 compatible = "rockchip,px30-firefly", "rockchip,px30"; 15 16 aliases { 17 ethernet0 = &gmac; 18 }; 19 20 chosen { 21 stdout-path = "serial2:115200n8"; 22 }; 23 24 adc-keys { 25 compatible = "adc-keys"; 26 io-channels = <&saradc 2>; 27 io-channel-names = "buttons"; 28 keyup-threshold-microvolt = <1800000>; 29 poll-interval = <100>; 30 31 esc-key { 32 label = "esc"; 33 linux,code = <KEY_ESC>; 34 press-threshold-microvolt = <1310000>; 35 }; 36 37 home-key { 38 label = "home"; 39 linux,code = <KEY_HOME>; 40 press-threshold-microvolt = <624000>; 41 }; 42 43 menu-key { 44 label = "menu"; 45 linux,code = <KEY_MENU>; 46 press-threshold-microvolt = <987000>; 47 }; 48 49 vol-down-key { 50 label = "volume down"; 51 linux,code = <KEY_VOLUMEDOWN>; 52 press-threshold-microvolt = <300000>; 53 }; 54 55 vol-up-key { 56 label = "volume up"; 57 linux,code = <KEY_VOLUMEUP>; 58 press-threshold-microvolt = <17000>; 59 }; 60 }; 61 62 backlight: backlight { 63 compatible = "pwm-backlight"; 64 pwms = <&pwm1 0 25000 0>; 65 power-supply = <&vcc3v3_lcd>; 66 }; 67 68 emmc_pwrseq: emmc-pwrseq { 69 compatible = "mmc-pwrseq-emmc"; 70 pinctrl-0 = <&emmc_reset>; 71 pinctrl-names = "default"; 72 reset-gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_HIGH>; 73 }; 74 75 sdio_pwrseq: sdio-pwrseq { 76 compatible = "mmc-pwrseq-simple"; 77 pinctrl-names = "default"; 78 pinctrl-0 = <&wifi_enable_h>; 79 80 /* 81 * On the module itself this is one of these (depending 82 * on the actual card populated): 83 * - SDIO_RESET_L_WL_REG_ON 84 * - PDN (power down when low) 85 */ 86 reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */ 87 }; 88 89 vcc5v0_sys: vccsys { 90 compatible = "regulator-fixed"; 91 regulator-name = "vcc5v0_sys"; 92 regulator-always-on; 93 regulator-boot-on; 94 regulator-min-microvolt = <5000000>; 95 regulator-max-microvolt = <5000000>; 96 }; 97}; 98 99&cpu0 { 100 cpu-supply = <&vdd_arm>; 101}; 102 103&cpu1 { 104 cpu-supply = <&vdd_arm>; 105}; 106 107&cpu2 { 108 cpu-supply = <&vdd_arm>; 109}; 110 111&cpu3 { 112 cpu-supply = <&vdd_arm>; 113}; 114 115&display_subsystem { 116 status = "okay"; 117}; 118 119&dsi { 120 status = "okay"; 121 122 ports { 123 mipi_out: port@1 { 124 reg = <1>; 125 126 mipi_out_panel: endpoint { 127 remote-endpoint = <&mipi_in_panel>; 128 }; 129 }; 130 }; 131 132 panel@0 { 133 compatible = "sitronix,st7703"; 134 reg = <0>; 135 backlight = <&backlight>; 136 iovcc-supply = <&vcc_1v8>; 137 vci-supply = <&vcc3v3_lcd>; 138 139 ports { 140 #address-cells = <1>; 141 #size-cells = <0>; 142 143 port@0 { 144 reg = <0>; 145 146 mipi_in_panel: endpoint { 147 remote-endpoint = <&mipi_out_panel>; 148 }; 149 }; 150 }; 151 }; 152}; 153 154&dsi_dphy { 155 status = "okay"; 156}; 157 158&emmc { 159 bus-width = <8>; 160 cap-mmc-highspeed; 161 mmc-hs200-1_8v; 162 non-removable; 163 mmc-pwrseq = <&emmc_pwrseq>; 164 vmmc-supply = <&vcc_3v0>; 165 vqmmc-supply = <&vccio_flash>; 166 status = "okay"; 167}; 168 169&gmac { 170 clock_in_out = "output"; 171 phy-supply = <&vcc_rmii>; 172 snps,reset-gpio = <&gpio2 13 GPIO_ACTIVE_LOW>; 173 snps,reset-active-low; 174 snps,reset-delays-us = <0 50000 50000>; 175 status = "okay"; 176}; 177 178&i2c0 { 179 status = "okay"; 180 181 rk809: pmic@20 { 182 compatible = "rockchip,rk809"; 183 reg = <0x20>; 184 interrupt-parent = <&gpio0>; 185 interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 186 pinctrl-names = "default"; 187 pinctrl-0 = <&pmic_int>; 188 rockchip,system-power-controller; 189 wakeup-source; 190 #clock-cells = <0>; 191 clock-output-names = "xin32k"; 192 193 vcc1-supply = <&vcc5v0_sys>; 194 vcc2-supply = <&vcc5v0_sys>; 195 vcc3-supply = <&vcc5v0_sys>; 196 vcc4-supply = <&vcc5v0_sys>; 197 vcc5-supply = <&vcc3v3_sys>; 198 vcc6-supply = <&vcc3v3_sys>; 199 vcc7-supply = <&vcc3v3_sys>; 200 vcc8-supply = <&vcc3v3_sys>; 201 vcc9-supply = <&vcc5v0_sys>; 202 203 regulators { 204 vdd_log: DCDC_REG1 { 205 regulator-name = "vdd_log"; 206 regulator-min-microvolt = <950000>; 207 regulator-max-microvolt = <1350000>; 208 regulator-ramp-delay = <6001>; 209 regulator-always-on; 210 regulator-boot-on; 211 212 regulator-state-mem { 213 regulator-on-in-suspend; 214 regulator-suspend-microvolt = <950000>; 215 }; 216 }; 217 218 vdd_arm: DCDC_REG2 { 219 regulator-name = "vdd_arm"; 220 regulator-min-microvolt = <950000>; 221 regulator-max-microvolt = <1350000>; 222 regulator-ramp-delay = <6001>; 223 regulator-always-on; 224 regulator-boot-on; 225 226 regulator-state-mem { 227 regulator-off-in-suspend; 228 regulator-suspend-microvolt = <950000>; 229 }; 230 }; 231 232 vcc_ddr: DCDC_REG3 { 233 regulator-name = "vcc_ddr"; 234 regulator-always-on; 235 regulator-boot-on; 236 237 regulator-state-mem { 238 regulator-on-in-suspend; 239 }; 240 }; 241 242 vcc_3v0: vcc_rmii: DCDC_REG4 { 243 regulator-name = "vcc_3v0"; 244 regulator-min-microvolt = <3000000>; 245 regulator-max-microvolt = <3000000>; 246 regulator-always-on; 247 regulator-boot-on; 248 249 regulator-state-mem { 250 regulator-on-in-suspend; 251 regulator-suspend-microvolt = <3000000>; 252 }; 253 }; 254 255 vcc3v3_sys: DCDC_REG5 { 256 regulator-name = "vcc3v3_sys"; 257 regulator-min-microvolt = <3300000>; 258 regulator-max-microvolt = <3300000>; 259 regulator-always-on; 260 regulator-boot-on; 261 262 regulator-state-mem { 263 regulator-on-in-suspend; 264 regulator-suspend-microvolt = <3300000>; 265 }; 266 }; 267 268 vcc_1v0: LDO_REG1 { 269 regulator-name = "vcc_1v0"; 270 regulator-min-microvolt = <1000000>; 271 regulator-max-microvolt = <1000000>; 272 regulator-always-on; 273 regulator-boot-on; 274 275 regulator-state-mem { 276 regulator-on-in-suspend; 277 regulator-suspend-microvolt = <1000000>; 278 }; 279 }; 280 281 vcc_1v8: vccio_flash: vccio_sdio: LDO_REG2 { 282 regulator-name = "vcc_1v8"; 283 regulator-min-microvolt = <1800000>; 284 regulator-max-microvolt = <1800000>; 285 regulator-always-on; 286 regulator-boot-on; 287 288 regulator-state-mem { 289 regulator-on-in-suspend; 290 regulator-suspend-microvolt = <1800000>; 291 }; 292 }; 293 294 vdd_1v0: LDO_REG3 { 295 regulator-name = "vdd_1v0"; 296 regulator-min-microvolt = <1000000>; 297 regulator-max-microvolt = <1000000>; 298 regulator-always-on; 299 regulator-boot-on; 300 301 regulator-state-mem { 302 regulator-on-in-suspend; 303 regulator-suspend-microvolt = <1000000>; 304 }; 305 }; 306 307 vcc3v0_pmu: LDO_REG4 { 308 regulator-name = "vcc3v0_pmu"; 309 regulator-min-microvolt = <3000000>; 310 regulator-max-microvolt = <3000000>; 311 regulator-always-on; 312 regulator-boot-on; 313 314 regulator-state-mem { 315 regulator-on-in-suspend; 316 regulator-suspend-microvolt = <3000000>; 317 }; 318 }; 319 320 vccio_sd: LDO_REG5 { 321 regulator-name = "vccio_sd"; 322 regulator-min-microvolt = <1800000>; 323 regulator-max-microvolt = <3300000>; 324 regulator-always-on; 325 regulator-boot-on; 326 327 regulator-state-mem { 328 regulator-on-in-suspend; 329 regulator-suspend-microvolt = <3300000>; 330 }; 331 }; 332 333 vcc_sd: LDO_REG6 { 334 regulator-name = "vcc_sd"; 335 regulator-min-microvolt = <3300000>; 336 regulator-max-microvolt = <3300000>; 337 regulator-boot-on; 338 339 regulator-state-mem { 340 regulator-on-in-suspend; 341 regulator-suspend-microvolt = <3300000>; 342 }; 343 }; 344 345 vcc2v8_dvp: LDO_REG7 { 346 regulator-name = "vcc2v8_dvp"; 347 regulator-min-microvolt = <2800000>; 348 regulator-max-microvolt = <2800000>; 349 regulator-boot-on; 350 351 regulator-state-mem { 352 regulator-off-in-suspend; 353 regulator-suspend-microvolt = <2800000>; 354 }; 355 }; 356 357 vcc1v8_dvp: LDO_REG8 { 358 regulator-name = "vcc1v8_dvp"; 359 regulator-min-microvolt = <1800000>; 360 regulator-max-microvolt = <1800000>; 361 regulator-boot-on; 362 363 regulator-state-mem { 364 regulator-on-in-suspend; 365 regulator-suspend-microvolt = <1800000>; 366 }; 367 }; 368 369 vcc1v5_dvp: LDO_REG9 { 370 regulator-name = "vcc1v5_dvp"; 371 regulator-min-microvolt = <1500000>; 372 regulator-max-microvolt = <1500000>; 373 regulator-boot-on; 374 375 regulator-state-mem { 376 regulator-off-in-suspend; 377 regulator-suspend-microvolt = <1500000>; 378 }; 379 }; 380 381 vcc3v3_lcd: SWITCH_REG1 { 382 regulator-name = "vcc3v3_lcd"; 383 regulator-boot-on; 384 }; 385 386 vcc5v0_host: SWITCH_REG2 { 387 regulator-name = "vcc5v0_host"; 388 regulator-always-on; 389 regulator-boot-on; 390 }; 391 }; 392 }; 393}; 394 395&i2s1_2ch { 396 status = "okay"; 397}; 398 399&io_domains { 400 status = "okay"; 401 402 vccio1-supply = <&vccio_sdio>; 403 vccio2-supply = <&vccio_sd>; 404 vccio3-supply = <&vcc_3v0>; 405 vccio4-supply = <&vcc3v0_pmu>; 406 vccio5-supply = <&vcc_3v0>; 407 vccio6-supply = <&vccio_flash>; 408}; 409 410&pinctrl { 411 headphone { 412 hp_det: hp-det { 413 rockchip,pins = 414 <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; 415 }; 416 }; 417 418 emmc { 419 emmc_reset: emmc-reset { 420 rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 421 }; 422 }; 423 424 pmic { 425 pmic_int: pmic_int { 426 rockchip,pins = 427 <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 428 }; 429 430 soc_slppin_gpio: soc_slppin_gpio { 431 rockchip,pins = 432 <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>; 433 }; 434 435 soc_slppin_slp: soc_slppin_slp { 436 rockchip,pins = 437 <0 RK_PA4 1 &pcfg_pull_none>; 438 }; 439 440 soc_slppin_rst: soc_slppin_rst { 441 rockchip,pins = 442 <0 RK_PA4 2 &pcfg_pull_none>; 443 }; 444 }; 445 446 sdio-pwrseq { 447 wifi_enable_h: wifi-enable-h { 448 rockchip,pins = 449 <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 450 }; 451 }; 452}; 453 454&pmu_io_domains { 455 status = "okay"; 456 457 pmuio1-supply = <&vcc3v0_pmu>; 458 pmuio2-supply = <&vcc3v0_pmu>; 459}; 460 461&pwm1 { 462 status = "okay"; 463}; 464 465&saradc { 466 vref-supply = <&vcc_1v8>; 467 status = "okay"; 468}; 469 470&sdmmc { 471 bus-width = <4>; 472 cap-mmc-highspeed; 473 cap-sd-highspeed; 474 card-detect-delay = <800>; 475 sd-uhs-sdr12; 476 sd-uhs-sdr25; 477 sd-uhs-sdr50; 478 sd-uhs-sdr104; 479 vmmc-supply = <&vcc_sd>; 480 vqmmc-supply = <&vccio_sd>; 481}; 482 483&sdio { 484 bus-width = <4>; 485 cap-sd-highspeed; 486 keep-power-in-suspend; 487 non-removable; 488 mmc-pwrseq = <&sdio_pwrseq>; 489 sd-uhs-sdr104; 490 status = "okay"; 491}; 492 493&uart1 { 494 pinctrl-names = "default"; 495 pinctrl-0 = <&uart1_xfer &uart1_cts>; 496 status = "okay"; 497}; 498 499&uart2 { 500 pinctrl-names = "default"; 501 pinctrl-0 = <&uart2m1_xfer>; 502 status = "okay"; 503}; 504 505&uart5 { 506 status = "okay"; 507}; 508 509&usb20_otg { 510 status = "okay"; 511}; 512 513&usb_host0_ehci { 514 status = "okay"; 515}; 516 517&usb_host0_ohci { 518 status = "okay"; 519}; 520 521&vopb { 522 status = "okay"; 523}; 524 525&vopb_mmu { 526 status = "okay"; 527}; 528 529&vopl { 530 status = "okay"; 531}; 532 533&vopl_mmu { 534 status = "okay"; 535}; 536