1// SPDX-License-Identifier: GPL-2.0 2/dts-v1/; 3 4#include <dt-bindings/input/atmel-maxtouch.h> 5#include <dt-bindings/input/gpio-keys.h> 6#include <dt-bindings/input/input.h> 7#include <dt-bindings/thermal/thermal.h> 8 9#include "tegra20.dtsi" 10#include "tegra20-cpu-opp.dtsi" 11#include "tegra20-cpu-opp-microvolt.dtsi" 12 13/ { 14 model = "ASUS EeePad Transformer TF101"; 15 compatible = "asus,tf101", "nvidia,tegra20"; 16 chassis-type = "convertible"; 17 18 aliases { 19 mmc0 = &sdmmc4; /* eMMC */ 20 mmc1 = &sdmmc3; /* MicroSD */ 21 mmc2 = &sdmmc1; /* WiFi */ 22 23 rtc0 = &pmic; 24 rtc1 = "/rtc@7000e000"; 25 26 serial0 = &uartd; 27 serial1 = &uartc; /* Bluetooth */ 28 serial2 = &uartb; /* GPS */ 29 }; 30 31 /* 32 * The decompressor and also some bootloaders rely on a 33 * pre-existing /chosen node to be available to insert the 34 * command line and merge other ATAGS info. 35 */ 36 chosen {}; 37 38 memory@0 { 39 reg = <0x00000000 0x40000000>; 40 }; 41 42 reserved-memory { 43 #address-cells = <1>; 44 #size-cells = <1>; 45 ranges; 46 47 ramoops@2ffe0000 { 48 compatible = "ramoops"; 49 reg = <0x2ffe0000 0x10000>; /* 64kB */ 50 console-size = <0x8000>; /* 32kB */ 51 record-size = <0x400>; /* 1kB */ 52 ecc-size = <16>; 53 }; 54 55 linux,cma@30000000 { 56 compatible = "shared-dma-pool"; 57 alloc-ranges = <0x30000000 0x10000000>; 58 size = <0x10000000>; /* 256MiB */ 59 linux,cma-default; 60 reusable; 61 }; 62 }; 63 64 host1x@50000000 { 65 dc@54200000 { 66 rgb { 67 status = "okay"; 68 69 port@0 { 70 lcd_output: endpoint { 71 remote-endpoint = <&lvds_encoder_input>; 72 bus-width = <18>; 73 }; 74 }; 75 }; 76 }; 77 78 hdmi@54280000 { 79 status = "okay"; 80 81 vdd-supply = <&hdmi_vdd_reg>; 82 pll-supply = <&hdmi_pll_reg>; 83 hdmi-supply = <&vdd_hdmi_en>; 84 85 nvidia,ddc-i2c-bus = <&hdmi_ddc>; 86 nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) 87 GPIO_ACTIVE_HIGH>; 88 }; 89 }; 90 91 gpio@6000d000 { 92 charging-enable-hog { 93 gpio-hog; 94 gpios = <TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>; 95 output-low; 96 }; 97 }; 98 99 pinmux@70000014 { 100 pinctrl-names = "default"; 101 pinctrl-0 = <&state_default>; 102 103 state_default: pinmux { 104 ata { 105 nvidia,pins = "ata"; 106 nvidia,function = "ide"; 107 }; 108 109 atb { 110 nvidia,pins = "atb", "gma", "gme"; 111 nvidia,function = "sdio4"; 112 }; 113 114 atc { 115 nvidia,pins = "atc"; 116 nvidia,function = "nand"; 117 }; 118 119 atd { 120 nvidia,pins = "atd", "ate", "gmb", "spia", 121 "spib", "spic"; 122 nvidia,function = "gmi"; 123 }; 124 125 cdev1 { 126 nvidia,pins = "cdev1"; 127 nvidia,function = "plla_out"; 128 }; 129 130 cdev2 { 131 nvidia,pins = "cdev2"; 132 nvidia,function = "pllp_out4"; 133 }; 134 135 crtp { 136 nvidia,pins = "crtp"; 137 nvidia,function = "crt"; 138 }; 139 140 lm1 { 141 nvidia,pins = "lm1"; 142 nvidia,function = "rsvd3"; 143 }; 144 145 csus { 146 nvidia,pins = "csus"; 147 nvidia,function = "vi_sensor_clk"; 148 }; 149 150 dap1 { 151 nvidia,pins = "dap1"; 152 nvidia,function = "dap1"; 153 }; 154 155 dap2 { 156 nvidia,pins = "dap2"; 157 nvidia,function = "dap2"; 158 }; 159 160 dap3 { 161 nvidia,pins = "dap3"; 162 nvidia,function = "dap3"; 163 }; 164 165 dap4 { 166 nvidia,pins = "dap4"; 167 nvidia,function = "dap4"; 168 }; 169 170 dta { 171 nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte"; 172 nvidia,function = "vi"; 173 }; 174 175 dtf { 176 nvidia,pins = "dtf"; 177 nvidia,function = "i2c3"; 178 }; 179 180 gmc { 181 nvidia,pins = "gmc"; 182 nvidia,function = "uartd"; 183 }; 184 185 gmd { 186 nvidia,pins = "gmd"; 187 nvidia,function = "sflash"; 188 }; 189 190 gpu { 191 nvidia,pins = "gpu"; 192 nvidia,function = "pwm"; 193 }; 194 195 gpu7 { 196 nvidia,pins = "gpu7"; 197 nvidia,function = "rtck"; 198 }; 199 200 gpv { 201 nvidia,pins = "gpv", "slxa"; 202 nvidia,function = "pcie"; 203 }; 204 205 hdint { 206 nvidia,pins = "hdint"; 207 nvidia,function = "hdmi"; 208 }; 209 210 i2cp { 211 nvidia,pins = "i2cp"; 212 nvidia,function = "i2cp"; 213 }; 214 215 irrx { 216 nvidia,pins = "irrx", "irtx"; 217 nvidia,function = "uartb"; 218 }; 219 220 kbca { 221 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd", 222 "kbce", "kbcf"; 223 nvidia,function = "kbc"; 224 }; 225 226 lcsn { 227 nvidia,pins = "lcsn", "ldc", "lm0", "lpw1", 228 "lsdi", "lvp0"; 229 nvidia,function = "rsvd4"; 230 }; 231 232 ld0 { 233 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", 234 "ld5", "ld6", "ld7", "ld8", "ld9", 235 "ld10", "ld11", "ld12", "ld13", "ld14", 236 "ld15", "ld16", "ld17", "ldi", "lhp0", 237 "lhp1", "lhp2", "lhs", "lpp", "lpw0", 238 "lpw2", "lsc0", "lsc1", "lsck", "lsda", 239 "lspi", "lvp1", "lvs"; 240 nvidia,function = "displaya"; 241 }; 242 243 owc { 244 nvidia,pins = "owc", "spdi", "spdo", "uac"; 245 nvidia,function = "rsvd2"; 246 }; 247 248 pmc { 249 nvidia,pins = "pmc"; 250 nvidia,function = "pwr_on"; 251 }; 252 253 rm { 254 nvidia,pins = "rm"; 255 nvidia,function = "i2c1"; 256 }; 257 258 sdb { 259 nvidia,pins = "sdb", "sdc", "sdd", "slxc", "slxk"; 260 nvidia,function = "sdio3"; 261 }; 262 263 sdio1 { 264 nvidia,pins = "sdio1"; 265 nvidia,function = "sdio1"; 266 }; 267 268 slxd { 269 nvidia,pins = "slxd"; 270 nvidia,function = "spdif"; 271 }; 272 273 spid { 274 nvidia,pins = "spid", "spie", "spif"; 275 nvidia,function = "spi1"; 276 }; 277 278 spig { 279 nvidia,pins = "spig", "spih"; 280 nvidia,function = "spi2_alt"; 281 }; 282 283 uaa { 284 nvidia,pins = "uaa", "uab", "uda"; 285 nvidia,function = "ulpi"; 286 }; 287 288 uad { 289 nvidia,pins = "uad"; 290 nvidia,function = "irda"; 291 }; 292 293 uca { 294 nvidia,pins = "uca", "ucb"; 295 nvidia,function = "uartc"; 296 }; 297 298 conf_ata { 299 nvidia,pins = "ata", "atb", "atc", "atd", 300 "cdev1", "cdev2", "dap1", "dap4", 301 "dte", "ddc", "dtf", "gma", "gmc", 302 "gme", "gpu", "gpu7", "gpv", "i2cp", 303 "irrx", "irtx", "pta", "rm", "sdc", 304 "sdd", "slxc", "slxd", "slxk", "spdi", 305 "spdo", "uac", "uad", 306 "uda", "csus"; 307 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 308 nvidia,tristate = <TEGRA_PIN_DISABLE>; 309 }; 310 311 conf_ate { 312 nvidia,pins = "ate", "dap2", "dap3", "gmb", "gmd", 313 "owc", "spia", "spib", "spic", 314 "spid", "spie", "spig", "slxa"; 315 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 316 nvidia,tristate = <TEGRA_PIN_ENABLE>; 317 }; 318 319 conf_ck32 { 320 nvidia,pins = "ck32", "ddrc", "pmca", "pmcb", 321 "pmcc", "pmcd", "pmce", "xm2c", "xm2d"; 322 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 323 }; 324 325 conf_crtp { 326 nvidia,pins = "crtp", "spih"; 327 nvidia,pull = <TEGRA_PIN_PULL_UP>; 328 nvidia,tristate = <TEGRA_PIN_ENABLE>; 329 }; 330 331 conf_dta { 332 nvidia,pins = "dta", "dtb", "dtc", "dtd"; 333 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 334 nvidia,tristate = <TEGRA_PIN_DISABLE>; 335 }; 336 337 conf_spif { 338 nvidia,pins = "spif"; 339 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 340 nvidia,tristate = <TEGRA_PIN_ENABLE>; 341 }; 342 343 conf_hdint { 344 nvidia,pins = "hdint", "lcsn", "ldc", "lm1", 345 "lpw1", "lsck", "lsda", "lsdi", "lvp0"; 346 nvidia,tristate = <TEGRA_PIN_ENABLE>; 347 }; 348 349 conf_kbca { 350 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd", 351 "kbce", "kbcf", "sdio1", "uaa", "uab", 352 "uca", "ucb"; 353 nvidia,pull = <TEGRA_PIN_PULL_UP>; 354 nvidia,tristate = <TEGRA_PIN_DISABLE>; 355 }; 356 357 conf_lc { 358 nvidia,pins = "lc", "ls"; 359 nvidia,pull = <TEGRA_PIN_PULL_UP>; 360 }; 361 362 conf_ld0 { 363 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4", 364 "ld5", "ld6", "ld7", "ld8", "ld9", 365 "ld10", "ld11", "ld12", "ld13", "ld14", 366 "ld15", "ld16", "ld17", "ldi", "lhp0", 367 "lhp1", "lhp2", "lhs", "lm0", "lpp", 368 "lpw0", "lpw2", "lsc0", "lsc1", "lspi", 369 "lvp1", "lvs", "pmc", "sdb"; 370 nvidia,tristate = <TEGRA_PIN_DISABLE>; 371 }; 372 373 conf_ld17_0 { 374 nvidia,pins = "ld17_0", "ld19_18", "ld21_20", 375 "ld23_22"; 376 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 377 }; 378 379 drive_sdio1 { 380 nvidia,pins = "drive_sdio1", "drive_ddc", "drive_vi1"; 381 nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>; 382 nvidia,schmitt = <TEGRA_PIN_ENABLE>; 383 nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; 384 nvidia,pull-down-strength = <31>; 385 nvidia,pull-up-strength = <31>; 386 nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>; 387 nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>; 388 }; 389 390 drive_csus { 391 nvidia,pins = "drive_csus"; 392 nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>; 393 nvidia,schmitt = <TEGRA_PIN_DISABLE>; 394 nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>; 395 nvidia,pull-down-strength = <31>; 396 nvidia,pull-up-strength = <31>; 397 nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>; 398 nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>; 399 }; 400 }; 401 402 state_i2cmux_ddc: pinmux-i2cmux-ddc { 403 ddc { 404 nvidia,pins = "ddc"; 405 nvidia,function = "i2c2"; 406 }; 407 408 pta { 409 nvidia,pins = "pta"; 410 nvidia,function = "rsvd4"; 411 }; 412 }; 413 414 state_i2cmux_idle: pinmux-i2cmux-idle { 415 ddc { 416 nvidia,pins = "ddc"; 417 nvidia,function = "rsvd4"; 418 }; 419 420 pta { 421 nvidia,pins = "pta"; 422 nvidia,function = "rsvd4"; 423 }; 424 }; 425 426 state_i2cmux_pta: pinmux-i2cmux-pta { 427 ddc { 428 nvidia,pins = "ddc"; 429 nvidia,function = "rsvd4"; 430 }; 431 432 pta { 433 nvidia,pins = "pta"; 434 nvidia,function = "i2c2"; 435 }; 436 }; 437 }; 438 439 spdif@70002400 { 440 status = "okay"; 441 442 nvidia,fixed-parent-rate; 443 }; 444 445 i2s@70002800 { 446 status = "okay"; 447 448 nvidia,fixed-parent-rate; 449 }; 450 451 serial@70006040 { 452 compatible = "nvidia,tegra20-hsuart"; 453 /delete-property/ reg-shift; 454 /* GPS BCM4751 */ 455 }; 456 457 serial@70006200 { 458 compatible = "nvidia,tegra20-hsuart"; 459 /delete-property/ reg-shift; 460 status = "okay"; 461 462 /* Azurewave AW-NH615 BCM4329B1 */ 463 bluetooth { 464 compatible = "brcm,bcm4329-bt"; 465 466 interrupt-parent = <&gpio>; 467 interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>; 468 interrupt-names = "host-wakeup"; 469 470 /* PLLP 216MHz / 16 / 4 */ 471 max-speed = <3375000>; 472 473 clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>; 474 clock-names = "txco"; 475 476 vbat-supply = <&vdd_3v3_sys>; 477 vddio-supply = <&vdd_1v8_sys>; 478 479 device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>; 480 shutdown-gpios = <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>; 481 }; 482 }; 483 484 serial@70006300 { 485 /delete-property/ dmas; 486 /delete-property/ dma-names; 487 status = "okay"; 488 }; 489 490 pwm@7000a000 { 491 status = "okay"; 492 }; 493 494 i2c@7000c000 { 495 status = "okay"; 496 clock-frequency = <400000>; 497 498 /* Aichi AMI306 digital compass */ 499 magnetometer@e { 500 compatible = "asahi-kasei,ak8974"; 501 reg = <0xe>; 502 503 avdd-supply = <&vdd_3v3_sys>; 504 dvdd-supply = <&vdd_1v8_sys>; 505 506 mount-matrix = "-1", "0", "0", 507 "0", "1", "0", 508 "0", "0", "-1"; 509 }; 510 511 wm8903: audio-codec@1a { 512 compatible = "wlf,wm8903"; 513 reg = <0x1a>; 514 515 interrupt-parent = <&gpio>; 516 interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_BOTH>; 517 518 gpio-controller; 519 #gpio-cells = <2>; 520 521 micdet-cfg = <0x83>; 522 micdet-delay = <100>; 523 524 gpio-cfg = < 525 0x00000600 /* DMIC_LR, output */ 526 0x00000680 /* DMIC_DAT, input */ 527 0x00000000 /* Speaker-enable GPIO, output, low */ 528 0xffffffff /* don't touch */ 529 0xffffffff /* don't touch */ 530 >; 531 532 AVDD-supply = <&vdd_1v8_sys>; 533 CPVDD-supply = <&vdd_1v8_sys>; 534 DBVDD-supply = <&vdd_1v8_sys>; 535 DCVDD-supply = <&vdd_1v8_sys>; 536 }; 537 538 /* Atmel MXT1386 Touchscreen */ 539 touchscreen@5b { 540 compatible = "atmel,maxtouch"; 541 reg = <0x5b>; 542 543 interrupt-parent = <&gpio>; 544 interrupts = <TEGRA_GPIO(V, 6) IRQ_TYPE_LEVEL_LOW>; 545 546 reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>; 547 548 vdda-supply = <&vdd_3v3_sys>; 549 vdd-supply = <&vdd_3v3_sys>; 550 551 atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>; 552 }; 553 554 gyroscope@68 { 555 compatible = "invensense,mpu3050"; 556 reg = <0x68>; 557 558 interrupt-parent = <&gpio>; 559 interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_EDGE_RISING>; 560 561 vdd-supply = <&vdd_3v3_sys>; 562 vlogic-supply = <&vdd_1v8_sys>; 563 564 mount-matrix = "0", "1", "0", 565 "-1", "0", "0", 566 "0", "0", "1"; 567 568 i2c-gate { 569 #address-cells = <1>; 570 #size-cells = <0>; 571 572 accelerometer@f { 573 compatible = "kionix,kxtf9"; 574 reg = <0xf>; 575 576 interrupt-parent = <&gpio>; 577 interrupts = <TEGRA_GPIO(N, 4) IRQ_TYPE_EDGE_RISING>; 578 579 vdd-supply = <&vdd_1v8_sys>; 580 vddio-supply = <&vdd_1v8_sys>; 581 582 mount-matrix = "-1", "0", "0", 583 "0", "-1", "0", 584 "0", "0", "-1"; 585 }; 586 }; 587 }; 588 }; 589 590 i2c2: i2c@7000c400 { 591 status = "okay"; 592 clock-frequency = <100000>; 593 }; 594 595 i2c@7000c500 { 596 status = "okay"; 597 clock-frequency = <400000>; 598 }; 599 600 i2c@7000d000 { 601 status = "okay"; 602 clock-frequency = <400000>; 603 604 pmic: pmic@34 { 605 compatible = "ti,tps6586x"; 606 reg = <0x34>; 607 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 608 609 ti,system-power-controller; 610 611 #gpio-cells = <2>; 612 gpio-controller; 613 614 sys-supply = <&vdd_5v0_sys>; 615 vin-sm0-supply = <&sys_reg>; 616 vin-sm1-supply = <&sys_reg>; 617 vin-sm2-supply = <&sys_reg>; 618 vinldo01-supply = <&sm2_reg>; 619 vinldo23-supply = <&sm2_reg>; 620 vinldo4-supply = <&sm2_reg>; 621 vinldo678-supply = <&sm2_reg>; 622 vinldo9-supply = <&sm2_reg>; 623 624 regulators { 625 sys_reg: sys { 626 regulator-name = "vdd_sys"; 627 regulator-always-on; 628 }; 629 630 vdd_core: sm0 { 631 regulator-name = "vdd_sm0,vdd_core"; 632 regulator-min-microvolt = <950000>; 633 regulator-max-microvolt = <1300000>; 634 regulator-coupled-with = <&rtc_vdd &vdd_cpu>; 635 regulator-coupled-max-spread = <170000 550000>; 636 regulator-always-on; 637 regulator-boot-on; 638 639 nvidia,tegra-core-regulator; 640 }; 641 642 vdd_cpu: sm1 { 643 regulator-name = "vdd_sm1,vdd_cpu"; 644 regulator-min-microvolt = <750000>; 645 regulator-max-microvolt = <1125000>; 646 regulator-coupled-with = <&vdd_core &rtc_vdd>; 647 regulator-coupled-max-spread = <550000 550000>; 648 regulator-always-on; 649 regulator-boot-on; 650 651 nvidia,tegra-cpu-regulator; 652 }; 653 654 sm2_reg: sm2 { 655 regulator-name = "vdd_sm2,vin_ldo*"; 656 regulator-min-microvolt = <3700000>; 657 regulator-max-microvolt = <3700000>; 658 regulator-always-on; 659 }; 660 661 /* LDO0 is not connected to anything */ 662 663 ldo1 { 664 regulator-name = "vdd_ldo1,avdd_pll*"; 665 regulator-min-microvolt = <1100000>; 666 regulator-max-microvolt = <1100000>; 667 regulator-always-on; 668 }; 669 670 rtc_vdd: ldo2 { 671 regulator-name = "vdd_ldo2,vdd_rtc"; 672 regulator-min-microvolt = <950000>; 673 regulator-max-microvolt = <1300000>; 674 regulator-coupled-with = <&vdd_core &vdd_cpu>; 675 regulator-coupled-max-spread = <170000 550000>; 676 regulator-always-on; 677 regulator-boot-on; 678 679 nvidia,tegra-rtc-regulator; 680 }; 681 682 ldo3 { 683 regulator-name = "vdd_ldo3,avdd_usb*"; 684 regulator-min-microvolt = <3300000>; 685 regulator-max-microvolt = <3300000>; 686 regulator-always-on; 687 }; 688 689 ldo4 { 690 regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; 691 regulator-min-microvolt = <1800000>; 692 regulator-max-microvolt = <1800000>; 693 regulator-always-on; 694 }; 695 696 vcore_emmc: ldo5 { 697 regulator-name = "vdd_ldo5,vcore_mmc"; 698 regulator-min-microvolt = <2850000>; 699 regulator-max-microvolt = <2850000>; 700 regulator-always-on; 701 }; 702 703 ldo6 { 704 regulator-name = "vdd_ldo6,avdd_vdac"; 705 regulator-min-microvolt = <1800000>; 706 regulator-max-microvolt = <1800000>; 707 }; 708 709 hdmi_vdd_reg: ldo7 { 710 regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse"; 711 regulator-min-microvolt = <3300000>; 712 regulator-max-microvolt = <3300000>; 713 }; 714 715 hdmi_pll_reg: ldo8 { 716 regulator-name = "vdd_ldo8,avdd_hdmi_pll"; 717 regulator-min-microvolt = <1800000>; 718 regulator-max-microvolt = <1800000>; 719 }; 720 721 ldo9 { 722 regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; 723 regulator-min-microvolt = <2850000>; 724 regulator-max-microvolt = <2850000>; 725 regulator-always-on; 726 }; 727 728 ldo_rtc { 729 regulator-name = "vdd_rtc_out,vdd_cell"; 730 regulator-min-microvolt = <3300000>; 731 regulator-max-microvolt = <3300000>; 732 regulator-always-on; 733 }; 734 }; 735 }; 736 737 nct1008: temperature-sensor@4c { 738 compatible = "onnn,nct1008"; 739 reg = <0x4c>; 740 vcc-supply = <&vdd_3v3_sys>; 741 742 interrupt-parent = <&gpio>; 743 interrupts = <TEGRA_GPIO(N, 6) IRQ_TYPE_EDGE_FALLING>; 744 745 #thermal-sensor-cells = <1>; 746 }; 747 }; 748 749 pmc@7000e400 { 750 nvidia,invert-interrupt; 751 nvidia,suspend-mode = <1>; 752 nvidia,cpu-pwr-good-time = <2000>; 753 nvidia,cpu-pwr-off-time = <100>; 754 nvidia,core-pwr-good-time = <3845 3845>; 755 nvidia,core-pwr-off-time = <458>; 756 nvidia,sys-clock-req-active-high; 757 core-supply = <&vdd_core>; 758 }; 759 760 memory-controller@7000f400 { 761 nvidia,use-ram-code; 762 763 emc-tables@3 { 764 reg = <0x3>; 765 766 #address-cells = <1>; 767 #size-cells = <0>; 768 769 emc-table@25000 { 770 reg = <25000>; 771 compatible = "nvidia,tegra20-emc-table"; 772 clock-frequency = <25000>; 773 nvidia,emc-registers = <0x00000002 0x00000006 774 0x00000003 0x00000003 0x00000006 0x00000004 775 0x00000002 0x00000009 0x00000003 0x00000003 776 0x00000002 0x00000002 0x00000002 0x00000004 777 0x00000003 0x00000008 0x0000000b 0x0000004d 778 0x00000000 0x00000003 0x00000003 0x00000003 779 0x00000008 0x00000001 0x0000000a 0x00000004 780 0x00000003 0x00000008 0x00000004 0x00000006 781 0x00000002 0x00000068 0x00000000 0x00000003 782 0x00000000 0x00000000 0x00000282 0xa0ae04ae 783 0x00070000 0x00000000 0x00000000 0x00000003 784 0x00000000 0x00000000 0x00000000 0x00000000>; 785 }; 786 787 emc-table@50000 { 788 reg = <50000>; 789 compatible = "nvidia,tegra20-emc-table"; 790 clock-frequency = <50000>; 791 nvidia,emc-registers = <0x00000003 0x00000007 792 0x00000003 0x00000003 0x00000006 0x00000004 793 0x00000002 0x00000009 0x00000003 0x00000003 794 0x00000002 0x00000002 0x00000002 0x00000005 795 0x00000003 0x00000008 0x0000000b 0x0000009f 796 0x00000000 0x00000003 0x00000003 0x00000003 797 0x00000008 0x00000001 0x0000000a 0x00000007 798 0x00000003 0x00000008 0x00000004 0x00000006 799 0x00000002 0x000000d0 0x00000000 0x00000000 800 0x00000000 0x00000000 0x00000282 0xa0ae04ae 801 0x00070000 0x00000000 0x00000000 0x00000005 802 0x00000000 0x00000000 0x00000000 0x00000000>; 803 }; 804 805 emc-table@75000 { 806 reg = <75000>; 807 compatible = "nvidia,tegra20-emc-table"; 808 clock-frequency = <75000>; 809 nvidia,emc-registers = <0x00000005 0x0000000a 810 0x00000004 0x00000003 0x00000006 0x00000004 811 0x00000002 0x00000009 0x00000003 0x00000003 812 0x00000002 0x00000002 0x00000002 0x00000005 813 0x00000003 0x00000008 0x0000000b 0x000000ff 814 0x00000000 0x00000003 0x00000003 0x00000003 815 0x00000008 0x00000001 0x0000000a 0x0000000b 816 0x00000003 0x00000008 0x00000004 0x00000006 817 0x00000002 0x00000138 0x00000000 0x00000000 818 0x00000000 0x00000000 0x00000282 0xa0ae04ae 819 0x00070000 0x00000000 0x00000000 0x00000007 820 0x00000000 0x00000000 0x00000000 0x00000000>; 821 }; 822 823 emc-table@150000 { 824 reg = <150000>; 825 compatible = "nvidia,tegra20-emc-table"; 826 clock-frequency = <150000>; 827 nvidia,emc-registers = <0x00000009 0x00000014 828 0x00000007 0x00000003 0x00000006 0x00000004 829 0x00000002 0x00000009 0x00000003 0x00000003 830 0x00000002 0x00000002 0x00000002 0x00000005 831 0x00000003 0x00000008 0x0000000b 0x0000021f 832 0x00000000 0x00000003 0x00000003 0x00000003 833 0x00000008 0x00000001 0x0000000a 0x00000015 834 0x00000003 0x00000008 0x00000004 0x00000006 835 0x00000002 0x00000270 0x00000000 0x00000001 836 0x00000000 0x00000000 0x00000282 0xa07c04ae 837 0x007dc010 0x00000000 0x00000000 0x0000000e 838 0x00000000 0x00000000 0x00000000 0x00000000>; 839 }; 840 841 emc-table@300000 { 842 reg = <300000>; 843 compatible = "nvidia,tegra20-emc-table"; 844 clock-frequency = <300000>; 845 nvidia,emc-registers = <0x00000012 0x00000027 846 0x0000000d 0x00000006 0x00000007 0x00000005 847 0x00000003 0x00000009 0x00000006 0x00000006 848 0x00000003 0x00000003 0x00000002 0x00000006 849 0x00000003 0x00000009 0x0000000c 0x0000045f 850 0x00000000 0x00000004 0x00000004 0x00000006 851 0x00000008 0x00000001 0x0000000e 0x0000002a 852 0x00000003 0x0000000f 0x00000007 0x00000005 853 0x00000002 0x000004e0 0x00000005 0x00000002 854 0x00000000 0x00000000 0x00000282 0xe059048b 855 0x007e0010 0x00000000 0x00000000 0x0000001b 856 0x00000000 0x00000000 0x00000000 0x00000000>; 857 }; 858 859 lpddr2 { 860 compatible = "elpida,B8132B2PB-6D-F", "jedec,lpddr2-s4"; 861 revision-id = <1 0>; 862 density = <2048>; 863 io-width = <16>; 864 }; 865 }; 866 }; 867 868 /* Peripheral USB via ASUS connector */ 869 usb@c5000000 { 870 compatible = "nvidia,tegra20-udc"; 871 status = "okay"; 872 dr_mode = "peripheral"; 873 }; 874 875 usb-phy@c5000000 { 876 status = "okay"; 877 dr_mode = "peripheral"; 878 nvidia,xcvr-setup-use-fuses; 879 nvidia,xcvr-lsfslew = <2>; 880 nvidia,xcvr-lsrslew = <2>; 881 vbus-supply = <&vdd_5v0_sys>; 882 }; 883 884 /* Dock's USB port */ 885 usb@c5008000 { 886 status = "okay"; 887 }; 888 889 usb-phy@c5008000 { 890 status = "okay"; 891 nvidia,xcvr-setup-use-fuses; 892 vbus-supply = <&vdd_5v0_sys>; 893 }; 894 895 sdmmc1: mmc@c8000000 { 896 status = "okay"; 897 898 #address-cells = <1>; 899 #size-cells = <0>; 900 901 assigned-clocks = <&tegra_car TEGRA20_CLK_SDMMC1>; 902 assigned-clock-parents = <&tegra_car TEGRA20_CLK_PLL_C>; 903 assigned-clock-rates = <40000000>; 904 905 max-frequency = <40000000>; 906 keep-power-in-suspend; 907 bus-width = <4>; 908 non-removable; 909 910 mmc-pwrseq = <&brcm_wifi_pwrseq>; 911 vmmc-supply = <&vdd_3v3_sys>; 912 vqmmc-supply = <&vdd_3v3_sys>; 913 914 /* Azurewave AW-NH615 BCM4329B1 */ 915 wifi@1 { 916 compatible = "brcm,bcm4329-fmac"; 917 reg = <1>; 918 919 interrupt-parent = <&gpio>; 920 interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_LEVEL_HIGH>; 921 interrupt-names = "host-wake"; 922 }; 923 }; 924 925 sdmmc3: mmc@c8000400 { 926 status = "okay"; 927 bus-width = <4>; 928 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; 929 wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>; 930 power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>; 931 vmmc-supply = <&vdd_3v3_sys>; 932 vqmmc-supply = <&vdd_3v3_sys>; 933 }; 934 935 sdmmc4: mmc@c8000600 { 936 status = "okay"; 937 bus-width = <8>; 938 vmmc-supply = <&vcore_emmc>; 939 vqmmc-supply = <&vdd_3v3_sys>; 940 non-removable; 941 }; 942 943 mains: ac-adapter-detect { 944 compatible = "gpio-charger"; 945 charger-type = "mains"; 946 gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>; 947 }; 948 949 backlight: backlight { 950 compatible = "pwm-backlight"; 951 952 enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>; 953 power-supply = <&vdd_3v3_sys>; 954 pwms = <&pwm 2 4000000>; 955 956 brightness-levels = <7 255>; 957 num-interpolated-steps = <248>; 958 default-brightness-level = <20>; 959 }; 960 961 /* PMIC has a built-in 32KHz oscillator which is used by PMC */ 962 clk32k_in: clock-32k-in { 963 compatible = "fixed-clock"; 964 clock-frequency = <32768>; 965 #clock-cells = <0>; 966 }; 967 968 cpus { 969 cpu0: cpu@0 { 970 cpu-supply = <&vdd_cpu>; 971 operating-points-v2 = <&cpu0_opp_table>; 972 #cooling-cells = <2>; 973 }; 974 975 cpu1: cpu@1 { 976 cpu-supply = <&vdd_cpu>; 977 operating-points-v2 = <&cpu0_opp_table>; 978 #cooling-cells = <2>; 979 }; 980 }; 981 982 display-panel { 983 compatible = "auo,b101ew05", "panel-lvds"; 984 985 /* AUO B101EW05 using custom timings */ 986 987 backlight = <&backlight>; 988 ddc-i2c-bus = <&lvds_ddc>; 989 power-supply = <&vdd_pnl_reg>; 990 991 width-mm = <218>; 992 height-mm = <135>; 993 994 data-mapping = "jeida-18"; 995 996 panel-timing { 997 clock-frequency = <71200000>; 998 hactive = <1280>; 999 vactive = <800>; 1000 hfront-porch = <8>; 1001 hback-porch = <18>; 1002 hsync-len = <184>; 1003 vsync-len = <3>; 1004 vfront-porch = <4>; 1005 vback-porch = <8>; 1006 }; 1007 1008 port { 1009 panel_input: endpoint { 1010 remote-endpoint = <&lvds_encoder_output>; 1011 }; 1012 }; 1013 }; 1014 1015 gpio-keys { 1016 compatible = "gpio-keys"; 1017 1018 key-power { 1019 label = "Power"; 1020 gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; 1021 linux,code = <KEY_POWER>; 1022 debounce-interval = <10>; 1023 wakeup-event-action = <EV_ACT_ASSERTED>; 1024 wakeup-source; 1025 }; 1026 1027 key-volume-down { 1028 label = "Volume Down"; 1029 gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>; 1030 linux,code = <KEY_VOLUMEDOWN>; 1031 debounce-interval = <10>; 1032 wakeup-event-action = <EV_ACT_ASSERTED>; 1033 wakeup-source; 1034 }; 1035 1036 key-volume-up { 1037 label = "Volume Up"; 1038 gpios = <&gpio TEGRA_GPIO(Q, 5) GPIO_ACTIVE_LOW>; 1039 linux,code = <KEY_VOLUMEUP>; 1040 debounce-interval = <10>; 1041 wakeup-event-action = <EV_ACT_ASSERTED>; 1042 wakeup-source; 1043 }; 1044 1045 switch-dock-hall-sensor { 1046 label = "Lid"; 1047 gpios = <&gpio TEGRA_GPIO(S, 4) GPIO_ACTIVE_LOW>; 1048 linux,input-type = <EV_SW>; 1049 linux,code = <SW_LID>; 1050 debounce-interval = <500>; 1051 wakeup-event-action = <EV_ACT_ASSERTED>; 1052 wakeup-source; 1053 }; 1054 }; 1055 1056 i2cmux { 1057 compatible = "i2c-mux-pinctrl"; 1058 #address-cells = <1>; 1059 #size-cells = <0>; 1060 1061 i2c-parent = <&i2c2>; 1062 1063 pinctrl-names = "ddc", "pta", "idle"; 1064 pinctrl-0 = <&state_i2cmux_ddc>; 1065 pinctrl-1 = <&state_i2cmux_pta>; 1066 pinctrl-2 = <&state_i2cmux_idle>; 1067 1068 hdmi_ddc: i2c@0 { 1069 reg = <0>; 1070 #address-cells = <1>; 1071 #size-cells = <0>; 1072 }; 1073 1074 lvds_ddc: i2c@1 { 1075 reg = <1>; 1076 #address-cells = <1>; 1077 #size-cells = <0>; 1078 1079 smart-battery@b { 1080 compatible = "ti,bq20z75", "sbs,sbs-battery"; 1081 reg = <0xb>; 1082 sbs,i2c-retry-count = <2>; 1083 sbs,poll-retry-count = <10>; 1084 power-supplies = <&mains>; 1085 }; 1086 }; 1087 }; 1088 1089 lvds-encoder { 1090 compatible = "ti,sn75lvds83", "lvds-encoder"; 1091 1092 powerdown-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_LOW>; 1093 power-supply = <&vdd_3v3_sys>; 1094 1095 ports { 1096 #address-cells = <1>; 1097 #size-cells = <0>; 1098 1099 port@0 { 1100 reg = <0>; 1101 1102 lvds_encoder_input: endpoint { 1103 remote-endpoint = <&lcd_output>; 1104 }; 1105 }; 1106 1107 port@1 { 1108 reg = <1>; 1109 1110 lvds_encoder_output: endpoint { 1111 remote-endpoint = <&panel_input>; 1112 }; 1113 }; 1114 }; 1115 }; 1116 1117 opp-table-emc { 1118 /delete-node/ opp-666000000; 1119 /delete-node/ opp-760000000; 1120 }; 1121 1122 vdd_5v0_sys: regulator-5v0 { 1123 compatible = "regulator-fixed"; 1124 regulator-name = "vdd_5v0"; 1125 regulator-min-microvolt = <5000000>; 1126 regulator-max-microvolt = <5000000>; 1127 regulator-always-on; 1128 }; 1129 1130 vdd_3v3_sys: regulator-3v3 { 1131 compatible = "regulator-fixed"; 1132 regulator-name = "vdd_3v3_vs"; 1133 regulator-min-microvolt = <3300000>; 1134 regulator-max-microvolt = <3300000>; 1135 regulator-always-on; 1136 vin-supply = <&vdd_5v0_sys>; 1137 }; 1138 1139 regulator-pcie { 1140 compatible = "regulator-fixed"; 1141 regulator-name = "pcie_vdd"; 1142 regulator-min-microvolt = <1500000>; 1143 regulator-max-microvolt = <1500000>; 1144 gpio = <&pmic 0 GPIO_ACTIVE_HIGH>; 1145 regulator-always-on; 1146 }; 1147 1148 vdd_pnl_reg: regulator-panel { 1149 compatible = "regulator-fixed"; 1150 regulator-name = "vdd_pnl"; 1151 regulator-min-microvolt = <2800000>; 1152 regulator-max-microvolt = <2800000>; 1153 gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>; 1154 enable-active-high; 1155 }; 1156 1157 vdd_1v8_sys: regulator-1v8 { 1158 compatible = "regulator-fixed"; 1159 regulator-name = "vdd_1v8_vs"; 1160 regulator-min-microvolt = <1800000>; 1161 regulator-max-microvolt = <1800000>; 1162 regulator-always-on; 1163 vin-supply = <&vdd_5v0_sys>; 1164 }; 1165 1166 vdd_hdmi_en: regulator-hdmi { 1167 compatible = "regulator-fixed"; 1168 regulator-name = "vdd_5v0_hdmi_en"; 1169 regulator-min-microvolt = <5000000>; 1170 regulator-max-microvolt = <5000000>; 1171 regulator-always-on; 1172 vin-supply = <&vdd_5v0_sys>; 1173 gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>; 1174 enable-active-high; 1175 }; 1176 1177 sound { 1178 compatible = "asus,tegra-audio-wm8903-tf101", 1179 "nvidia,tegra-audio-wm8903"; 1180 nvidia,model = "Asus EeePad Transformer WM8903"; 1181 1182 nvidia,audio-routing = 1183 "Headphone Jack", "HPOUTR", 1184 "Headphone Jack", "HPOUTL", 1185 "Int Spk", "ROP", 1186 "Int Spk", "RON", 1187 "Int Spk", "LOP", 1188 "Int Spk", "LON", 1189 "IN2L", "Mic Jack", 1190 "DMICDAT", "Int Mic"; 1191 1192 nvidia,i2s-controller = <&tegra_i2s1>; 1193 nvidia,audio-codec = <&wm8903>; 1194 1195 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>; 1196 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>; 1197 nvidia,mic-det-gpios = <&gpio TEGRA_GPIO(X, 1) GPIO_ACTIVE_LOW>; 1198 nvidia,coupled-mic-hp-det; 1199 1200 clocks = <&tegra_car TEGRA20_CLK_PLL_A>, 1201 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>, 1202 <&tegra_car TEGRA20_CLK_CDEV1>; 1203 clock-names = "pll_a", "pll_a_out0", "mclk"; 1204 }; 1205 1206 thermal-zones { 1207 /* 1208 * NCT1008 has two sensors: 1209 * 1210 * 0: internal that monitors ambient/skin temperature 1211 * 1: external that is connected to the CPU's diode 1212 * 1213 * Ideally we should use userspace thermal governor, 1214 * but it's a much more complex solution. The "skin" 1215 * zone is a simpler solution which prevents TF101 from 1216 * getting too hot from a user's tactile perspective. 1217 * The CPU zone is intended to protect silicon from damage. 1218 */ 1219 1220 skin-thermal { 1221 polling-delay-passive = <1000>; /* milliseconds */ 1222 polling-delay = <5000>; /* milliseconds */ 1223 1224 thermal-sensors = <&nct1008 0>; 1225 1226 trips { 1227 trip0: skin-alert { 1228 /* start throttling at 60C */ 1229 temperature = <60000>; 1230 hysteresis = <200>; 1231 type = "passive"; 1232 }; 1233 1234 trip1: skin-crit { 1235 /* shut down at 70C */ 1236 temperature = <70000>; 1237 hysteresis = <2000>; 1238 type = "critical"; 1239 }; 1240 }; 1241 1242 cooling-maps { 1243 map0 { 1244 trip = <&trip0>; 1245 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1246 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1247 }; 1248 }; 1249 }; 1250 1251 cpu-thermal { 1252 polling-delay-passive = <1000>; /* milliseconds */ 1253 polling-delay = <5000>; /* milliseconds */ 1254 1255 thermal-sensors = <&nct1008 1>; 1256 1257 trips { 1258 trip2: cpu-alert { 1259 /* throttle at 85C until temperature drops to 84.8C */ 1260 temperature = <85000>; 1261 hysteresis = <200>; 1262 type = "passive"; 1263 }; 1264 1265 trip3: cpu-crit { 1266 /* shut down at 90C */ 1267 temperature = <90000>; 1268 hysteresis = <2000>; 1269 type = "critical"; 1270 }; 1271 }; 1272 1273 cooling-maps { 1274 map1 { 1275 trip = <&trip2>; 1276 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1277 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1278 }; 1279 }; 1280 }; 1281 }; 1282 1283 brcm_wifi_pwrseq: wifi-pwrseq { 1284 compatible = "mmc-pwrseq-simple"; 1285 1286 clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>; 1287 clock-names = "ext_clock"; 1288 1289 reset-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_LOW>; 1290 post-power-on-delay-ms = <200>; 1291 power-off-delay-us = <200>; 1292 }; 1293}; 1294