1/* 2 * This file is dual-licensed: you can use it either under the terms 3 * of the GPL or the X11 license, at your option. Note that this dual 4 * licensing only applies to this file, and not this project as a 5 * whole. 6 * 7 * a) This file is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of the 10 * License, or (at your option) any later version. 11 * 12 * This file is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * Or, alternatively, 18 * 19 * b) Permission is hereby granted, free of charge, to any person 20 * obtaining a copy of this software and associated documentation 21 * files (the "Software"), to deal in the Software without 22 * restriction, including without limitation the rights to use, 23 * copy, modify, merge, publish, distribute, sublicense, and/or 24 * sell copies of the Software, and to permit persons to whom the 25 * Software is furnished to do so, subject to the following 26 * conditions: 27 * 28 * The above copyright notice and this permission notice shall be 29 * included in all copies or substantial portions of the Software. 30 * 31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 38 * OTHER DEALINGS IN THE SOFTWARE. 39 */ 40 41/dts-v1/; 42 43#include "rk3036.dtsi" 44 45/ { 46 model = "Rockchip RK3036 Echo"; 47 compatible = "rockchip,rk3036-echo", "rockchip,rk3036"; 48 49 fiq-debugger { 50 compatible = "rockchip,fiq-debugger"; 51 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>; 52 rockchip,serial-id = <2>; 53 rockchip,wake-irq = <0>; 54 /* If enable uart uses irq instead of fiq */ 55 rockchip,irq-mode-enable = <0>; 56 /* Only 115200 and 1500000 */ 57 rockchip,baudrate = <115200>; 58 pinctrl-names = "default"; 59 pinctrl-0 = <&uart2_xfer>; 60 status = "okay"; 61 }; 62 63 chosen { 64 bootargs = "earlycon=uart8250,mmio32,0x20068000"; 65 }; 66 67 /* rk805 pmic sleep/poweroff */ 68 gpio_poweroff { 69 compatible = "gpio-poweroff"; 70 gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>; 71 status = "okay"; 72 }; 73 74 rotary { 75 compatible = "rotary-encoder"; 76 gpios = <&gpio2 17 GPIO_ACTIVE_LOW>, 77 <&gpio2 16 GPIO_ACTIVE_LOW>; 78 linux,axis = <0>; /* REL_X */ 79 rotary-encoder,relative-axis; 80 }; 81 82 sdio_pwrseq: sdio-pwrseq { 83 compatible = "mmc-pwrseq-simple"; 84 pinctrl-names = "default"; 85 pinctrl-0 = <&bt_wake_h>; 86 87 /* 88 * On the module itself this is one of these (depending 89 * on the actual card populated): 90 * - SDIO_RESET_L_WL_REG_ON 91 * - SDIO_RESET_L_WL_RST 92 * - SDIO_RESET_L_BT_EN 93 */ 94 reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>; /* WL_REG_ON */ 95 }; 96 97 wireless-bluetooth { 98 compatible = "bluetooth-platdata"; 99 uart_rts_gpios = <&gpio0 19 GPIO_ACTIVE_LOW>; 100 pinctrl-names = "default", "rts_gpio"; 101 pinctrl-0 = <&uart0_rts>; 102 pinctrl-1 = <&uart0_gpios>; 103 BT,reset_gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; 104 BT,wake_gpio = <&gpio2 8 GPIO_ACTIVE_HIGH>; 105 BT,wake_host_irq = <&gpio0 20 GPIO_ACTIVE_LOW>; 106 status = "okay"; 107 }; 108 109 wireless-wlan { 110 compatible = "wlan-platdata"; 111 rockchip,grf = <&grf>; 112 wifi_chip_type = "ap6212"; 113 WIFI,host_wake_irq = <&gpio0 27 GPIO_ACTIVE_HIGH>; 114 status = "okay"; 115 }; 116 117 gpio_keys { 118 compatible = "gpio-keys"; 119 #address-cells = <1>; 120 #size-cells = <0>; 121 122 pinctrl-names = "default"; 123 pinctrl-0 = <&pwr_key>; 124 125 power_key: power-key { 126 label = "GPIO Key Power"; 127 gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; 128 linux,code = <207>; 129 debounce-interval = <100>; 130 wakeup-source; 131 }; 132 }; 133 134 xin32k: xin32k { 135 compatible = "fixed-clock"; 136 clock-frequency = <32768>; 137 clock-output-names = "xin32k"; 138 #clock-cells = <0>; 139 }; 140}; 141 142&acodec { 143 status = "okay"; 144}; 145 146&cpu0 { 147 cpu-supply = <&vdd_cpu>; 148}; 149 150&cpu0_opp_table { 151 /delete-node/ opp-408000000; 152 /delete-node/ opp-600000000; 153}; 154 155&emmc { 156 no-sdio; 157 no-sd; 158 status = "okay"; 159}; 160 161&gpu { 162 status = "okay"; 163 mali-supply = <&vdd_gpu>; 164}; 165 166&hdmi { 167 status = "okay"; 168}; 169 170&hevc { 171 status = "okay"; 172}; 173 174&hevc_mmu { 175 status = "okay"; 176}; 177 178&i2c1 { 179 clock-frequency = <400000>; 180 181 status = "okay"; 182 183 rk805: rk805@18 { 184 compatible = "rockchip,rk805"; 185 status = "okay"; 186 reg = <0x18>; 187 interrupt-parent = <&gpio0>; 188 interrupts = <1 IRQ_TYPE_LEVEL_LOW>; 189 spinctrl-names = "default"; 190 pinctrl-0 = <&pmic_int>; 191 rockchip,system-power-controller; 192 wakeup-source; 193 gpio-controller; 194 #gpio-cells = <2>; 195 #clock-cells = <1>; 196 clock-output-names = "rk805-clkout1", "rk805-clkout2"; 197 198 rtc { 199 status = "okay"; 200 }; 201 202 pwrkey { 203 status = "okay"; 204 }; 205 206 gpio { 207 status = "okay"; 208 }; 209 210 regulators { 211 vdd_cpu: DCDC_REG1 { 212 regulator-name = "vdd_gpu"; 213 regulator-min-microvolt = <1100000>; 214 regulator-max-microvolt = <1350000>; 215 regulator-initial-mode = <0x1>; 216 regulator-ramp-delay = <12500>; 217 regulator-boot-on; 218 regulator-always-on; 219 regulator-state-mem { 220 regulator-off-in-suspend; 221 }; 222 }; 223 224 vdd_gpu: DCDC_REG2 { 225 regulator-name = "vdd_gpu"; 226 regulator-min-microvolt = <712500>; 227 regulator-max-microvolt = <1450000>; 228 regulator-initial-mode = <0x1>; 229 regulator-ramp-delay = <12500>; 230 regulator-boot-on; 231 regulator-always-on; 232 regulator-state-mem { 233 regulator-mode = <0x2>; 234 regulator-on-in-suspend; 235 regulator-suspend-microvolt = <1000000>; 236 }; 237 }; 238 239 vcc_ddr: DCDC_REG3 { 240 regulator-name = "vcc_ddr"; 241 regulator-boot-on; 242 regulator-always-on; 243 regulator-state-mem { 244 regulator-mode = <0x2>; 245 regulator-on-in-suspend; 246 }; 247 }; 248 249 vcc_io: DCDC_REG1 { 250 regulator-name = "vcc_io"; 251 regulator-min-microvolt = <3300000>; 252 regulator-max-microvolt = <3300000>; 253 regulator-initial-mode = <0x1>; 254 regulator-boot-on; 255 regulator-always-on; 256 regulator-state-mem { 257 regulator-mode = <0x2>; 258 regulator-on-in-suspend; 259 regulator-suspend-microvolt = <3300000>; 260 }; 261 }; 262 263 vcca_33: LDO_REG1 { 264 regulator-name = "vcca_33"; 265 regulator-min-microvolt = <3300000>; 266 regulator-max-microvolt = <3300000>; 267 regulator-initial-state = <3>; 268 regulator-boot-on; 269 regulator-always-on; 270 regulator-state-mem { 271 regulator-on-in-suspend; 272 regulator-suspend-microvolt = <3300000>; 273 }; 274 }; 275 276 vcc_18: LDO_REG2 { 277 regulator-name = "vcc_18"; 278 regulator-min-microvolt = <1800000>; 279 regulator-max-microvolt = <1800000>; 280 regulator-boot-on; 281 regulator-always-on; 282 regulator-state-mem { 283 regulator-on-in-suspend; 284 regulator-suspend-microvolt = <1800000>; 285 }; 286 }; 287 288 vdd10_pmu: LDO_REG3 { 289 regulator-name = "vdd10_pmu"; 290 regulator-min-microvolt = <1100000>; 291 regulator-max-microvolt = <1100000>; 292 regulator-boot-on; 293 regulator-always-on; 294 regulator-state-mem { 295 regulator-on-in-suspend; 296 regulator-suspend-microvolt = <1100000>; 297 }; 298 }; 299 }; 300 }; 301}; 302 303&i2c2 { 304 status = "okay"; 305 cx20810: cx20810@35 { 306 compatible = "conexant,cx20810"; 307 reg = <0x35>; 308 reset-gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; 309 status = "okay"; 310 }; 311 312 is31fl3236: led-controller@3c { 313 compatible = "issi,is31fl3236"; 314 reg = <0x3c>; 315 #address-cells = <1>; 316 #size-cells = <0>; 317 reset-gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>; 318 status = "okay"; 319 320 led1: led@1 { 321 label = "led1"; 322 reg = <1>; 323 led-max-microamp = <10000>; 324 linux,default-trigger = "timer"; 325 linux,default-trigger-delay-ms = <0>; 326 linux,blink-delay-on-ms = <100>; 327 linux,blink-delay-off-ms = <1200>; 328 }; 329 330 led2: led@2 { 331 label = "led2"; 332 reg = <2>; 333 led-max-microamp = <10000>; 334 linux,default-trigger = "timer"; 335 linux,default-trigger-delay-ms = <0>; 336 linux,blink-delay-on-ms = <100>; 337 linux,blink-delay-off-ms = <1200>; 338 }; 339 340 led3: led@3 { 341 label = "led3"; 342 reg = <3>; 343 led-max-microamp = <10000>; 344 linux,default-trigger = "default-on"; 345 }; 346 347 led4: led@4 { 348 label = "led4"; 349 reg = <4>; 350 led-max-microamp = <10000>; 351 linux,default-trigger = "timer"; 352 linux,default-trigger-delay-ms = <100>; 353 linux,blink-delay-on-ms = <100>; 354 linux,blink-delay-off-ms = <1200>; 355 }; 356 357 led5: led@5 { 358 label = "led5"; 359 reg = <5>; 360 led-max-microamp = <10000>; 361 linux,default-trigger = "timer"; 362 linux,default-trigger-delay-ms = <100>; 363 linux,blink-delay-on-ms = <100>; 364 linux,blink-delay-off-ms = <1200>; 365 }; 366 367 led6: led@6 { 368 label = "led6"; 369 reg = <6>; 370 led-max-microamp = <10000>; 371 linux,default-trigger = "default-on"; 372 }; 373 374 led7: led@7 { 375 label = "led7"; 376 reg = <7>; 377 led-max-microamp = <10000>; 378 linux,default-trigger = "timer"; 379 linux,default-trigger-delay-ms = <200>; 380 linux,blink-delay-on-ms = <100>; 381 linux,blink-delay-off-ms = <1200>; 382 }; 383 384 led8: led@8 { 385 label = "led8"; 386 reg = <8>; 387 led-max-microamp = <10000>; 388 linux,default-trigger = "timer"; 389 linux,default-trigger-delay-ms = <200>; 390 linux,blink-delay-on-ms = <100>; 391 linux,blink-delay-off-ms = <1200>; 392 }; 393 394 led9: led@9 { 395 label = "led9"; 396 reg = <9>; 397 led-max-microamp = <10000>; 398 linux,default-trigger = "default-on"; 399 }; 400 401 led10: led@10 { 402 label = "led10"; 403 reg = <10>; 404 led-max-microamp = <10000>; 405 linux,default-trigger = "timer"; 406 linux,default-trigger-delay-ms = <300>; 407 linux,blink-delay-on-ms = <100>; 408 linux,blink-delay-off-ms = <1200>; 409 }; 410 411 led11: led@11 { 412 label = "led11"; 413 reg = <11>; 414 led-max-microamp = <10000>; 415 linux,default-trigger = "timer"; 416 linux,default-trigger-delay-ms = <300>; 417 linux,blink-delay-on-ms = <100>; 418 linux,blink-delay-off-ms = <1200>; 419 }; 420 421 led12: led@12 { 422 label = "led12"; 423 reg = <12>; 424 led-max-microamp = <10000>; 425 linux,default-trigger = "default-on"; 426 }; 427 428 led13: led@13 { 429 label = "led13"; 430 reg = <13>; 431 led-max-microamp = <10000>; 432 linux,default-trigger = "timer"; 433 linux,default-trigger-delay-ms = <400>; 434 linux,blink-delay-on-ms = <100>; 435 linux,blink-delay-off-ms = <1200>; 436 }; 437 438 led14: led@14 { 439 label = "led14"; 440 reg = <14>; 441 led-max-microamp = <10000>; 442 linux,default-trigger = "timer"; 443 linux,default-trigger-delay-ms = <400>; 444 linux,blink-delay-on-ms = <100>; 445 linux,blink-delay-off-ms = <1200>; 446 }; 447 448 led15: led@15 { 449 label = "led15"; 450 reg = <15>; 451 led-max-microamp = <10000>; 452 linux,default-trigger = "default-on"; 453 }; 454 455 led16: led@16 { 456 label = "led16"; 457 reg = <16>; 458 led-max-microamp = <10000>; 459 linux,default-trigger = "timer"; 460 linux,default-trigger-delay-ms = <500>; 461 linux,blink-delay-on-ms = <100>; 462 linux,blink-delay-off-ms = <1200>; 463 }; 464 465 led17: led@17 { 466 label = "led17"; 467 reg = <17>; 468 led-max-microamp = <10000>; 469 linux,default-trigger = "timer"; 470 linux,default-trigger-delay-ms = <500>; 471 linux,blink-delay-on-ms = <100>; 472 linux,blink-delay-off-ms = <1200>; 473 }; 474 475 led18: led@18 { 476 label = "led18"; 477 reg = <18>; 478 led-max-microamp = <10000>; 479 linux,default-trigger = "default-on"; 480 }; 481 482 led19: led@19 { 483 label = "led19"; 484 reg = <19>; 485 led-max-microamp = <10000>; 486 linux,default-trigger = "timer"; 487 linux,default-trigger-delay-ms = <600>; 488 linux,blink-delay-on-ms = <100>; 489 linux,blink-delay-off-ms = <1200>; 490 }; 491 492 led20: led@20 { 493 label = "led20"; 494 reg = <20>; 495 led-max-microamp = <10000>; 496 linux,default-trigger = "timer"; 497 linux,default-trigger-delay-ms = <600>; 498 linux,blink-delay-on-ms = <100>; 499 linux,blink-delay-off-ms = <1200>; 500 }; 501 502 led21: led@21 { 503 label = "led21"; 504 reg = <21>; 505 led-max-microamp = <10000>; 506 linux,default-trigger = "default-on"; 507 }; 508 509 led22: led@22 { 510 label = "led22"; 511 reg = <22>; 512 led-max-microamp = <10000>; 513 linux,default-trigger = "timer"; 514 linux,default-trigger-delay-ms = <700>; 515 linux,blink-delay-on-ms = <100>; 516 linux,blink-delay-off-ms = <1200>; 517 }; 518 519 led23: led@23 { 520 label = "led23"; 521 reg = <23>; 522 led-max-microamp = <10000>; 523 linux,default-trigger = "timer"; 524 linux,default-trigger-delay-ms = <700>; 525 linux,blink-delay-on-ms = <100>; 526 linux,blink-delay-off-ms = <1200>; 527 }; 528 529 led124: led@24 { 530 label = "led24"; 531 reg = <24>; 532 led-max-microamp = <10000>; 533 linux,default-trigger = "default-on"; 534 }; 535 536 led25: led@25 { 537 label = "led25"; 538 reg = <25>; 539 led-max-microamp = <10000>; 540 linux,default-trigger = "timer"; 541 linux,default-trigger-delay-ms = <800>; 542 linux,blink-delay-on-ms = <100>; 543 linux,blink-delay-off-ms = <1200>; 544 }; 545 546 led26: led@26 { 547 label = "led26"; 548 reg = <26>; 549 led-max-microamp = <10000>; 550 linux,default-trigger = "timer"; 551 linux,default-trigger-delay-ms = <800>; 552 linux,blink-delay-on-ms = <100>; 553 linux,blink-delay-off-ms = <1200>; 554 }; 555 556 led27: led@27 { 557 label = "led27"; 558 reg = <27>; 559 led-max-microamp = <10000>; 560 linux,default-trigger = "default-on"; 561 }; 562 563 led28: led@28 { 564 label = "led28"; 565 reg = <28>; 566 led-max-microamp = <10000>; 567 linux,default-trigger = "timer"; 568 linux,default-trigger-delay-ms = <900>; 569 linux,blink-delay-on-ms = <100>; 570 linux,blink-delay-off-ms = <1200>; 571 }; 572 573 led29: led@29 { 574 label = "led29"; 575 reg = <29>; 576 led-max-microamp = <10000>; 577 linux,default-trigger = "timer"; 578 linux,default-trigger-delay-ms = <900>; 579 linux,blink-delay-on-ms = <100>; 580 linux,blink-delay-off-ms = <1200>; 581 }; 582 583 led30: led@30 { 584 label = "led30"; 585 reg = <30>; 586 led-max-microamp = <10000>; 587 linux,default-trigger = "default-on"; 588 }; 589 590 led31: led@31 { 591 label = "led31"; 592 reg = <31>; 593 led-max-microamp = <10000>; 594 linux,default-trigger = "timer"; 595 linux,default-trigger-delay-ms = <1000>; 596 linux,blink-delay-on-ms = <100>; 597 linux,blink-delay-off-ms = <1200>; 598 }; 599 600 led32: led@32 { 601 label = "led32"; 602 reg = <32>; 603 led-max-microamp = <10000>; 604 linux,default-trigger = "timer"; 605 linux,default-trigger-delay-ms = <1000>; 606 linux,blink-delay-on-ms = <100>; 607 linux,blink-delay-off-ms = <1200>; 608 }; 609 610 led33: led@33 { 611 label = "led33"; 612 reg = <33>; 613 led-max-microamp = <10000>; 614 linux,default-trigger = "default-on"; 615 }; 616 617 led34: led@34 { 618 label = "led34"; 619 reg = <34>; 620 led-max-microamp = <10000>; 621 linux,default-trigger = "timer"; 622 linux,default-trigger-delay-ms = <1100>; 623 linux,blink-delay-on-ms = <100>; 624 linux,blink-delay-off-ms = <1200>; 625 }; 626 627 led35: led@35 { 628 label = "led35"; 629 reg = <35>; 630 led-max-microamp = <10000>; 631 linux,default-trigger = "timer"; 632 linux,default-trigger-delay-ms = <1100>; 633 linux,blink-delay-on-ms = <100>; 634 linux,blink-delay-off-ms = <1200>; 635 }; 636 637 led36: led@36 { 638 label = "led36"; 639 reg = <36>; 640 led-max-microamp = <10000>; 641 linux,default-trigger = "default-on"; 642 }; 643 }; 644}; 645 646&i2s { 647 #sound-dai-cells = <0>; 648 pinctrl-0 = <&i2s_sclk 649 &i2s_lrclktx 650 &i2s_sdo 651 &i2s_sdi>; 652 status = "okay"; 653}; 654 655&mpp_srv { 656 status = "okay"; 657}; 658 659&sdio { 660 status = "okay"; 661 662 bus-width = <4>; 663 cap-sd-highspeed; 664 cap-sdio-irq; 665 default-sample-phase = <90>; 666 keep-power-in-suspend; 667 mmc-pwrseq = <&sdio_pwrseq>; 668 non-removable; 669 num-slots = <1>; 670 pinctrl-names = "default"; 671 pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>; 672 sd-uhs-sdr12; 673 sd-uhs-sdr25; 674 sd-uhs-sdr50; 675 sd-uhs-sdr104; 676 no-sd; 677 no-mmc; 678}; 679 680&sdmmc { 681 bus-width = <4>; 682 cap-mmc-highspeed; 683 cap-sd-highspeed; 684 card-detect-delay = <200>; 685 disable-wp; 686 num-slots = <1>; 687 pinctrl-names = "default"; 688 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>; 689}; 690 691&uart0 { 692 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>; 693 status = "okay"; 694}; 695 696&uart2 { 697 status = "disabled"; 698}; 699 700&usb_host { 701 status = "okay"; 702}; 703 704&usb_otg { 705 status = "okay"; 706}; 707 708&vdpu { 709 status = "okay"; 710}; 711 712&vpu_mmu { 713 status = "okay"; 714}; 715 716&vop { 717 status = "okay"; 718}; 719 720&vop_mmu { 721 status = "okay"; 722}; 723 724&wdt { 725 status = "okay"; 726}; 727 728&pinctrl { 729 pmic { 730 pmic_int: pmic-int { 731 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_default>; 732 }; 733 }; 734 735 keys { 736 pwr_key: pwr-key { 737 rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_default>; 738 }; 739 }; 740 741 sdio { 742 bt_wake_h: bt-wake-h { 743 rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_default>; 744 }; 745 }; 746 747 sdmmc { 748 sdmmc_pwr: sdmmc-pwr { 749 rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 750 }; 751 }; 752 753 sleep { 754 global_pwroff: global-pwroff { 755 rockchip,pins = <2 RK_PA7 1 &pcfg_pull_none>; 756 }; 757 }; 758 759 wireless-bluetooth { 760 uart0_gpios: uart0-gpios { 761 rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; 762 }; 763 }; 764}; 765