1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 2 /* 3 * Copyright (c) 2018 Fuzhou Rockchip Electron 3 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd 4 */ 4 */ 5 5 6 /dts-v1/; 6 /dts-v1/; 7 #include <dt-bindings/gpio/gpio.h> 7 #include <dt-bindings/gpio/gpio.h> 8 #include <dt-bindings/input/input.h> 8 #include <dt-bindings/input/input.h> 9 #include <dt-bindings/pinctrl/rockchip.h> 9 #include <dt-bindings/pinctrl/rockchip.h> 10 #include "px30.dtsi" 10 #include "px30.dtsi" 11 11 12 / { 12 / { 13 model = "Rockchip PX30 EVB"; 13 model = "Rockchip PX30 EVB"; 14 compatible = "rockchip,px30-evb", "roc 14 compatible = "rockchip,px30-evb", "rockchip,px30"; 15 15 16 aliases { << 17 ethernet0 = &gmac; << 18 mmc0 = &sdmmc; << 19 mmc1 = &sdio; << 20 mmc2 = &emmc; << 21 }; << 22 << 23 chosen { 16 chosen { 24 stdout-path = "serial5:115200n !! 17 stdout-path = "serial2:1500000n8"; 25 }; 18 }; 26 19 27 adc-keys { 20 adc-keys { 28 compatible = "adc-keys"; 21 compatible = "adc-keys"; 29 io-channels = <&saradc 2>; 22 io-channels = <&saradc 2>; 30 io-channel-names = "buttons"; 23 io-channel-names = "buttons"; 31 keyup-threshold-microvolt = <1 24 keyup-threshold-microvolt = <1800000>; 32 poll-interval = <100>; 25 poll-interval = <100>; 33 26 34 button-esc { !! 27 esc-key { 35 label = "esc"; 28 label = "esc"; 36 linux,code = <KEY_ESC> 29 linux,code = <KEY_ESC>; 37 press-threshold-microv 30 press-threshold-microvolt = <1310000>; 38 }; 31 }; 39 32 40 button-home { !! 33 home-key { 41 label = "home"; 34 label = "home"; 42 linux,code = <KEY_HOME 35 linux,code = <KEY_HOME>; 43 press-threshold-microv 36 press-threshold-microvolt = <624000>; 44 }; 37 }; 45 38 46 button-menu { !! 39 menu-key { 47 label = "menu"; 40 label = "menu"; 48 linux,code = <KEY_MENU 41 linux,code = <KEY_MENU>; 49 press-threshold-microv 42 press-threshold-microvolt = <987000>; 50 }; 43 }; 51 44 52 button-down { !! 45 vol-down-key { 53 label = "volume down"; 46 label = "volume down"; 54 linux,code = <KEY_VOLU 47 linux,code = <KEY_VOLUMEDOWN>; 55 press-threshold-microv 48 press-threshold-microvolt = <300000>; 56 }; 49 }; 57 50 58 button-up { !! 51 vol-up-key { 59 label = "volume up"; 52 label = "volume up"; 60 linux,code = <KEY_VOLU 53 linux,code = <KEY_VOLUMEUP>; 61 press-threshold-microv 54 press-threshold-microvolt = <17000>; 62 }; 55 }; 63 }; 56 }; 64 57 65 backlight: backlight { 58 backlight: backlight { 66 compatible = "pwm-backlight"; 59 compatible = "pwm-backlight"; 67 pwms = <&pwm1 0 25000 0>; 60 pwms = <&pwm1 0 25000 0>; 68 power-supply = <&vcc3v3_lcd>; << 69 }; << 70 << 71 emmc_pwrseq: emmc-pwrseq { << 72 compatible = "mmc-pwrseq-emmc" << 73 pinctrl-0 = <&emmc_reset>; << 74 pinctrl-names = "default"; << 75 reset-gpios = <&gpio1 RK_PB3 G << 76 }; 61 }; 77 62 78 sdio_pwrseq: sdio-pwrseq { 63 sdio_pwrseq: sdio-pwrseq { 79 compatible = "mmc-pwrseq-simpl 64 compatible = "mmc-pwrseq-simple"; 80 pinctrl-names = "default"; 65 pinctrl-names = "default"; 81 pinctrl-0 = <&wifi_enable_h>; 66 pinctrl-0 = <&wifi_enable_h>; 82 67 83 /* 68 /* 84 * On the module itself this i 69 * On the module itself this is one of these (depending 85 * on the actual card populate 70 * on the actual card populated): 86 * - SDIO_RESET_L_WL_REG_ON 71 * - SDIO_RESET_L_WL_REG_ON 87 * - PDN (power down when low) 72 * - PDN (power down when low) 88 */ 73 */ 89 reset-gpios = <&gpio0 RK_PA2 G 74 reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */ 90 }; 75 }; 91 76 >> 77 vcc_phy: vcc-phy-regulator { >> 78 compatible = "regulator-fixed"; >> 79 regulator-name = "vcc_phy"; >> 80 regulator-always-on; >> 81 regulator-boot-on; >> 82 }; >> 83 92 vcc5v0_sys: vccsys { 84 vcc5v0_sys: vccsys { 93 compatible = "regulator-fixed" 85 compatible = "regulator-fixed"; 94 regulator-name = "vcc5v0_sys"; 86 regulator-name = "vcc5v0_sys"; 95 regulator-always-on; 87 regulator-always-on; 96 regulator-boot-on; 88 regulator-boot-on; 97 regulator-min-microvolt = <500 89 regulator-min-microvolt = <5000000>; 98 regulator-max-microvolt = <500 90 regulator-max-microvolt = <5000000>; 99 }; 91 }; 100 }; 92 }; 101 93 102 &cpu0 { << 103 cpu-supply = <&vdd_arm>; << 104 }; << 105 << 106 &cpu1 { << 107 cpu-supply = <&vdd_arm>; << 108 }; << 109 << 110 &cpu2 { << 111 cpu-supply = <&vdd_arm>; << 112 }; << 113 << 114 &cpu3 { << 115 cpu-supply = <&vdd_arm>; << 116 }; << 117 << 118 &csi_dphy { << 119 status = "okay"; << 120 }; << 121 << 122 &display_subsystem { 94 &display_subsystem { 123 status = "okay"; 95 status = "okay"; 124 }; 96 }; 125 97 126 &dsi { << 127 status = "okay"; << 128 << 129 ports { << 130 mipi_out: port@1 { << 131 reg = <1>; << 132 << 133 mipi_out_panel: endpoi << 134 remote-endpoin << 135 }; << 136 }; << 137 }; << 138 << 139 panel@0 { << 140 compatible = "xinpeng,xpp055c2 << 141 reg = <0>; << 142 backlight = <&backlight>; << 143 iovcc-supply = <&vcc_1v8>; << 144 vci-supply = <&vcc3v3_lcd>; << 145 << 146 port { << 147 mipi_in_panel: endpoin << 148 remote-endpoin << 149 }; << 150 }; << 151 }; << 152 }; << 153 << 154 &dsi_dphy { << 155 status = "okay"; << 156 }; << 157 << 158 &emmc { 98 &emmc { >> 99 bus-width = <8>; 159 cap-mmc-highspeed; 100 cap-mmc-highspeed; 160 mmc-hs200-1_8v; 101 mmc-hs200-1_8v; 161 non-removable; 102 non-removable; 162 mmc-pwrseq = <&emmc_pwrseq>; << 163 vmmc-supply = <&vcc_3v0>; << 164 vqmmc-supply = <&vccio_flash>; << 165 status = "okay"; 103 status = "okay"; 166 }; 104 }; 167 105 168 &gmac { 106 &gmac { 169 clock_in_out = "output"; 107 clock_in_out = "output"; 170 phy-supply = <&vcc_rmii>; !! 108 phy-supply = <&vcc_phy>; 171 snps,reset-gpio = <&gpio2 13 GPIO_ACTI 109 snps,reset-gpio = <&gpio2 13 GPIO_ACTIVE_LOW>; 172 snps,reset-active-low; 110 snps,reset-active-low; 173 snps,reset-delays-us = <0 50000 50000> 111 snps,reset-delays-us = <0 50000 50000>; 174 status = "okay"; 112 status = "okay"; 175 }; 113 }; 176 114 177 &gpu { << 178 mali-supply = <&vdd_log>; << 179 status = "okay"; << 180 }; << 181 << 182 &i2c0 { 115 &i2c0 { 183 status = "okay"; 116 status = "okay"; 184 << 185 rk809: pmic@20 { << 186 compatible = "rockchip,rk809"; << 187 reg = <0x20>; << 188 interrupt-parent = <&gpio0>; << 189 interrupts = <7 IRQ_TYPE_LEVEL << 190 pinctrl-names = "default"; << 191 pinctrl-0 = <&pmic_int>; << 192 rockchip,system-power-controll << 193 wakeup-source; << 194 #clock-cells = <0>; << 195 clock-output-names = "xin32k"; << 196 << 197 vcc1-supply = <&vcc5v0_sys>; << 198 vcc2-supply = <&vcc5v0_sys>; << 199 vcc3-supply = <&vcc5v0_sys>; << 200 vcc4-supply = <&vcc5v0_sys>; << 201 vcc5-supply = <&vcc3v3_sys>; << 202 vcc6-supply = <&vcc3v3_sys>; << 203 vcc7-supply = <&vcc3v3_sys>; << 204 vcc8-supply = <&vcc3v3_sys>; << 205 vcc9-supply = <&vcc5v0_sys>; << 206 << 207 regulators { << 208 vdd_log: DCDC_REG1 { << 209 regulator-name << 210 regulator-min- << 211 regulator-max- << 212 regulator-ramp << 213 regulator-alwa << 214 regulator-boot << 215 << 216 regulator-stat << 217 regula << 218 regula << 219 }; << 220 }; << 221 << 222 vdd_arm: DCDC_REG2 { << 223 regulator-name << 224 regulator-min- << 225 regulator-max- << 226 regulator-ramp << 227 regulator-alwa << 228 regulator-boot << 229 << 230 regulator-stat << 231 regula << 232 regula << 233 }; << 234 }; << 235 << 236 vcc_ddr: DCDC_REG3 { << 237 regulator-name << 238 regulator-alwa << 239 regulator-boot << 240 << 241 regulator-stat << 242 regula << 243 }; << 244 }; << 245 << 246 vcc_3v0: vcc_rmii: DCD << 247 regulator-name << 248 regulator-min- << 249 regulator-max- << 250 regulator-alwa << 251 regulator-boot << 252 << 253 regulator-stat << 254 regula << 255 regula << 256 }; << 257 }; << 258 << 259 vcc3v3_sys: DCDC_REG5 << 260 regulator-name << 261 regulator-min- << 262 regulator-max- << 263 regulator-alwa << 264 regulator-boot << 265 << 266 regulator-stat << 267 regula << 268 regula << 269 }; << 270 }; << 271 << 272 vcc_1v0: LDO_REG1 { << 273 regulator-name << 274 regulator-min- << 275 regulator-max- << 276 regulator-alwa << 277 regulator-boot << 278 << 279 regulator-stat << 280 regula << 281 regula << 282 }; << 283 }; << 284 << 285 vcc_1v8: vccio_flash: << 286 regulator-name << 287 regulator-min- << 288 regulator-max- << 289 regulator-alwa << 290 regulator-boot << 291 << 292 regulator-stat << 293 regula << 294 regula << 295 }; << 296 }; << 297 << 298 vdd_1v0: LDO_REG3 { << 299 regulator-name << 300 regulator-min- << 301 regulator-max- << 302 regulator-alwa << 303 regulator-boot << 304 << 305 regulator-stat << 306 regula << 307 regula << 308 }; << 309 }; << 310 << 311 vcc3v0_pmu: LDO_REG4 { << 312 regulator-name << 313 regulator-min- << 314 regulator-max- << 315 regulator-alwa << 316 regulator-boot << 317 << 318 regulator-stat << 319 regula << 320 regula << 321 }; << 322 }; << 323 << 324 vccio_sd: LDO_REG5 { << 325 regulator-name << 326 regulator-min- << 327 regulator-max- << 328 regulator-alwa << 329 regulator-boot << 330 << 331 regulator-stat << 332 regula << 333 regula << 334 }; << 335 }; << 336 << 337 vcc_sd: LDO_REG6 { << 338 regulator-name << 339 regulator-min- << 340 regulator-max- << 341 regulator-boot << 342 << 343 regulator-stat << 344 regula << 345 regula << 346 }; << 347 }; << 348 << 349 vcc2v8_dvp: LDO_REG7 { << 350 regulator-name << 351 regulator-min- << 352 regulator-max- << 353 regulator-boot << 354 << 355 regulator-stat << 356 regula << 357 regula << 358 }; << 359 }; << 360 << 361 vcc1v8_dvp: LDO_REG8 { << 362 regulator-name << 363 regulator-min- << 364 regulator-max- << 365 regulator-boot << 366 << 367 regulator-stat << 368 regula << 369 regula << 370 }; << 371 }; << 372 << 373 vcc1v5_dvp: LDO_REG9 { << 374 regulator-name << 375 regulator-min- << 376 regulator-max- << 377 regulator-boot << 378 << 379 regulator-stat << 380 regula << 381 regula << 382 }; << 383 }; << 384 << 385 vcc3v3_lcd: SWITCH_REG << 386 regulator-name << 387 regulator-boot << 388 }; << 389 << 390 vcc5v0_host: SWITCH_RE << 391 regulator-name << 392 regulator-alwa << 393 regulator-boot << 394 }; << 395 }; << 396 }; << 397 }; << 398 << 399 &i2c1 { << 400 status = "okay"; << 401 << 402 sensor@d { << 403 compatible = "asahi-kasei,ak89 << 404 reg = <0x0d>; << 405 gpios = <&gpio0 RK_PB7 GPIO_AC << 406 vdd-supply = <&vcc3v0_pmu>; << 407 mount-matrix = "1", /* x0 */ << 408 "0", /* y0 */ << 409 "0", /* z0 */ << 410 "0", /* x1 */ << 411 "1", /* y1 */ << 412 "0", /* z1 */ << 413 "0", /* x2 */ << 414 "0", /* y2 */ << 415 "1"; /* z2 */ << 416 }; << 417 << 418 touchscreen@14 { << 419 compatible = "goodix,gt1151"; << 420 reg = <0x14>; << 421 interrupt-parent = <&gpio0>; << 422 interrupts = <RK_PA5 IRQ_TYPE_ << 423 irq-gpios = <&gpio0 RK_PA5 GPI << 424 reset-gpios = <&gpio0 RK_PB4 G << 425 VDDIO-supply = <&vcc3v3_lcd>; << 426 }; << 427 << 428 sensor@4c { << 429 compatible = "fsl,mma7660"; << 430 reg = <0x4c>; << 431 interrupt-parent = <&gpio0>; << 432 interrupts = <RK_PB7 IRQ_TYPE_ << 433 }; << 434 }; << 435 << 436 &i2c2 { << 437 status = "okay"; << 438 << 439 clock-frequency = <100000>; << 440 << 441 /* These are relatively safe rise/fall << 442 i2c-scl-falling-time-ns = <50>; << 443 i2c-scl-rising-time-ns = <300>; << 444 << 445 ov5695: ov5695@36 { << 446 compatible = "ovti,ov5695"; << 447 reg = <0x36>; << 448 avdd-supply = <&vcc2v8_dvp>; << 449 clocks = <&cru SCLK_CIF_OUT>; << 450 clock-names = "xvclk"; << 451 dvdd-supply = <&vcc1v5_dvp>; << 452 dovdd-supply = <&vcc1v8_dvp>; << 453 pinctrl-names = "default"; << 454 pinctrl-0 = <&cif_clkout_m0 &m << 455 reset-gpios = <&gpio2 RK_PB6 G << 456 << 457 port { << 458 ucam_out: endpoint { << 459 remote-endpoin << 460 data-lanes = < << 461 }; << 462 }; << 463 }; << 464 }; 117 }; 465 118 466 &i2s1_2ch { 119 &i2s1_2ch { 467 status = "okay"; 120 status = "okay"; 468 }; 121 }; 469 122 470 &io_domains { 123 &io_domains { 471 status = "okay"; 124 status = "okay"; 472 << 473 vccio1-supply = <&vccio_sdio>; << 474 vccio2-supply = <&vccio_sd>; << 475 vccio3-supply = <&vcc_3v0>; << 476 vccio4-supply = <&vcc3v0_pmu>; << 477 vccio5-supply = <&vcc_3v0>; << 478 vccio6-supply = <&vccio_flash>; << 479 }; << 480 << 481 &isp { << 482 status = "okay"; << 483 << 484 ports { << 485 port@0 { << 486 mipi_in_ucam: endpoint << 487 reg = <0>; << 488 data-lanes = < << 489 remote-endpoin << 490 }; << 491 }; << 492 }; << 493 }; << 494 << 495 &isp_mmu { << 496 status = "okay"; << 497 }; 125 }; 498 126 499 &pinctrl { 127 &pinctrl { 500 headphone { 128 headphone { 501 hp_det: hp-det { 129 hp_det: hp-det { 502 rockchip,pins = 130 rockchip,pins = 503 <2 RK_PB0 RK_F 131 <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; 504 }; 132 }; 505 }; 133 }; 506 134 507 emmc { << 508 emmc_reset: emmc-reset { << 509 rockchip,pins = <1 RK_ << 510 }; << 511 }; << 512 << 513 pmic { 135 pmic { 514 pmic_int: pmic_int { 136 pmic_int: pmic_int { 515 rockchip,pins = 137 rockchip,pins = 516 <0 RK_PA7 RK_F 138 <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 517 }; 139 }; 518 140 519 soc_slppin_gpio: soc_slppin_gp 141 soc_slppin_gpio: soc_slppin_gpio { 520 rockchip,pins = 142 rockchip,pins = 521 <0 RK_PA4 RK_F 143 <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>; 522 }; 144 }; 523 145 524 soc_slppin_slp: soc_slppin_slp 146 soc_slppin_slp: soc_slppin_slp { 525 rockchip,pins = 147 rockchip,pins = 526 <0 RK_PA4 1 &p 148 <0 RK_PA4 1 &pcfg_pull_none>; 527 }; 149 }; 528 150 529 soc_slppin_rst: soc_slppin_rst 151 soc_slppin_rst: soc_slppin_rst { 530 rockchip,pins = 152 rockchip,pins = 531 <0 RK_PA4 2 &p 153 <0 RK_PA4 2 &pcfg_pull_none>; 532 }; 154 }; 533 }; 155 }; 534 156 535 sdio-pwrseq { 157 sdio-pwrseq { 536 wifi_enable_h: wifi-enable-h { 158 wifi_enable_h: wifi-enable-h { 537 rockchip,pins = 159 rockchip,pins = 538 <0 RK_PA2 RK_F 160 <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 539 }; 161 }; 540 }; 162 }; 541 << 542 cif-m0 { << 543 cif_clkout_m0: cif-clkout-m0 { << 544 rockchip,pins = << 545 <2 RK_PB3 1 &p << 546 }; << 547 }; << 548 << 549 mipi { << 550 mipi_pdn: mipi-pdn { << 551 rockchip,pins = <2 RK_ << 552 }; << 553 }; << 554 }; 163 }; 555 164 556 &pmu_io_domains { 165 &pmu_io_domains { 557 status = "okay"; 166 status = "okay"; 558 << 559 pmuio1-supply = <&vcc3v0_pmu>; << 560 pmuio2-supply = <&vcc3v0_pmu>; << 561 }; 167 }; 562 168 563 &pwm1 { 169 &pwm1 { 564 status = "okay"; 170 status = "okay"; 565 }; 171 }; 566 172 567 &saradc { 173 &saradc { 568 vref-supply = <&vcc_1v8>; << 569 status = "okay"; 174 status = "okay"; 570 }; 175 }; 571 176 572 &sdmmc { 177 &sdmmc { >> 178 bus-width = <4>; 573 cap-mmc-highspeed; 179 cap-mmc-highspeed; 574 cap-sd-highspeed; 180 cap-sd-highspeed; 575 card-detect-delay = <800>; 181 card-detect-delay = <800>; 576 sd-uhs-sdr12; 182 sd-uhs-sdr12; 577 sd-uhs-sdr25; 183 sd-uhs-sdr25; 578 sd-uhs-sdr50; 184 sd-uhs-sdr50; 579 sd-uhs-sdr104; 185 sd-uhs-sdr104; 580 vmmc-supply = <&vcc_sd>; << 581 vqmmc-supply = <&vccio_sd>; << 582 status = "okay"; 186 status = "okay"; 583 }; 187 }; 584 188 585 &sdio { 189 &sdio { >> 190 bus-width = <4>; 586 cap-sd-highspeed; 191 cap-sd-highspeed; 587 keep-power-in-suspend; 192 keep-power-in-suspend; 588 non-removable; 193 non-removable; 589 mmc-pwrseq = <&sdio_pwrseq>; 194 mmc-pwrseq = <&sdio_pwrseq>; 590 sd-uhs-sdr104; 195 sd-uhs-sdr104; 591 status = "okay"; 196 status = "okay"; 592 }; 197 }; 593 198 594 &tsadc { << 595 rockchip,hw-tshut-mode = <1>; << 596 rockchip,hw-tshut-polarity = <1>; << 597 status = "okay"; << 598 }; << 599 << 600 &u2phy { << 601 status = "okay"; << 602 << 603 u2phy_host: host-port { << 604 status = "okay"; << 605 }; << 606 << 607 u2phy_otg: otg-port { << 608 status = "okay"; << 609 }; << 610 }; << 611 << 612 &uart1 { 199 &uart1 { 613 pinctrl-names = "default"; 200 pinctrl-names = "default"; 614 pinctrl-0 = <&uart1_xfer &uart1_cts>; 201 pinctrl-0 = <&uart1_xfer &uart1_cts>; 615 status = "okay"; 202 status = "okay"; 616 }; 203 }; 617 204 618 &uart5 { !! 205 &uart2 { 619 status = "okay"; 206 status = "okay"; 620 }; 207 }; 621 208 622 &usb20_otg { 209 &usb20_otg { 623 status = "okay"; 210 status = "okay"; 624 }; 211 }; 625 212 626 &usb_host0_ehci { 213 &usb_host0_ehci { 627 status = "okay"; 214 status = "okay"; 628 }; 215 }; 629 216 630 &usb_host0_ohci { 217 &usb_host0_ohci { 631 status = "okay"; 218 status = "okay"; 632 }; 219 }; 633 220 634 &vopb { 221 &vopb { 635 status = "okay"; 222 status = "okay"; 636 }; 223 }; 637 224 638 &vopb_mmu { 225 &vopb_mmu { 639 status = "okay"; 226 status = "okay"; 640 }; 227 }; 641 228 642 &vopl { 229 &vopl { 643 status = "okay"; 230 status = "okay"; 644 }; 231 }; 645 232 646 &vopl_mmu { 233 &vopl_mmu { 647 status = "okay"; 234 status = "okay"; 648 }; 235 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.