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 status = "okay"; 486 }; 487 488 pwm@7000a000 { 489 status = "okay"; 490 }; 491 492 i2c@7000c000 { 493 status = "okay"; 494 clock-frequency = <400000>; 495 496 /* Aichi AMI306 digital compass */ 497 magnetometer@e { 498 compatible = "asahi-kasei,ak8974"; 499 reg = <0xe>; 500 501 avdd-supply = <&vdd_3v3_sys>; 502 dvdd-supply = <&vdd_1v8_sys>; 503 504 mount-matrix = "-1", "0", "0", 505 "0", "1", "0", 506 "0", "0", "-1"; 507 }; 508 509 wm8903: audio-codec@1a { 510 compatible = "wlf,wm8903"; 511 reg = <0x1a>; 512 513 interrupt-parent = <&gpio>; 514 interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_BOTH>; 515 516 gpio-controller; 517 #gpio-cells = <2>; 518 519 micdet-cfg = <0x83>; 520 micdet-delay = <100>; 521 522 gpio-cfg = < 523 0x00000600 /* DMIC_LR, output */ 524 0x00000680 /* DMIC_DAT, input */ 525 0x00000000 /* Speaker-enable GPIO, output, low */ 526 0xffffffff /* don't touch */ 527 0xffffffff /* don't touch */ 528 >; 529 530 AVDD-supply = <&vdd_1v8_sys>; 531 CPVDD-supply = <&vdd_1v8_sys>; 532 DBVDD-supply = <&vdd_1v8_sys>; 533 DCVDD-supply = <&vdd_1v8_sys>; 534 }; 535 536 /* Atmel MXT1386 Touchscreen */ 537 touchscreen@5b { 538 compatible = "atmel,maxtouch"; 539 reg = <0x5b>; 540 541 interrupt-parent = <&gpio>; 542 interrupts = <TEGRA_GPIO(V, 6) IRQ_TYPE_LEVEL_LOW>; 543 544 reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>; 545 546 vdda-supply = <&vdd_3v3_sys>; 547 vdd-supply = <&vdd_3v3_sys>; 548 549 atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>; 550 }; 551 552 gyroscope@68 { 553 compatible = "invensense,mpu3050"; 554 reg = <0x68>; 555 556 interrupt-parent = <&gpio>; 557 interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_EDGE_RISING>; 558 559 vdd-supply = <&vdd_3v3_sys>; 560 vlogic-supply = <&vdd_1v8_sys>; 561 562 mount-matrix = "0", "1", "0", 563 "-1", "0", "0", 564 "0", "0", "1"; 565 566 i2c-gate { 567 #address-cells = <1>; 568 #size-cells = <0>; 569 570 accelerometer@f { 571 compatible = "kionix,kxtf9"; 572 reg = <0xf>; 573 574 interrupt-parent = <&gpio>; 575 interrupts = <TEGRA_GPIO(N, 4) IRQ_TYPE_EDGE_RISING>; 576 577 vdd-supply = <&vdd_1v8_sys>; 578 vddio-supply = <&vdd_1v8_sys>; 579 580 mount-matrix = "-1", "0", "0", 581 "0", "-1", "0", 582 "0", "0", "-1"; 583 }; 584 }; 585 }; 586 }; 587 588 i2c2: i2c@7000c400 { 589 status = "okay"; 590 clock-frequency = <100000>; 591 }; 592 593 i2c@7000c500 { 594 status = "okay"; 595 clock-frequency = <400000>; 596 }; 597 598 i2c@7000d000 { 599 status = "okay"; 600 clock-frequency = <400000>; 601 602 pmic: pmic@34 { 603 compatible = "ti,tps6586x"; 604 reg = <0x34>; 605 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 606 607 ti,system-power-controller; 608 609 #gpio-cells = <2>; 610 gpio-controller; 611 612 sys-supply = <&vdd_5v0_sys>; 613 vin-sm0-supply = <&sys_reg>; 614 vin-sm1-supply = <&sys_reg>; 615 vin-sm2-supply = <&sys_reg>; 616 vinldo01-supply = <&sm2_reg>; 617 vinldo23-supply = <&sm2_reg>; 618 vinldo4-supply = <&sm2_reg>; 619 vinldo678-supply = <&sm2_reg>; 620 vinldo9-supply = <&sm2_reg>; 621 622 regulators { 623 sys_reg: sys { 624 regulator-name = "vdd_sys"; 625 regulator-always-on; 626 }; 627 628 vdd_core: sm0 { 629 regulator-name = "vdd_sm0,vdd_core"; 630 regulator-min-microvolt = <950000>; 631 regulator-max-microvolt = <1300000>; 632 regulator-coupled-with = <&rtc_vdd &vdd_cpu>; 633 regulator-coupled-max-spread = <170000 550000>; 634 regulator-always-on; 635 regulator-boot-on; 636 637 nvidia,tegra-core-regulator; 638 }; 639 640 vdd_cpu: sm1 { 641 regulator-name = "vdd_sm1,vdd_cpu"; 642 regulator-min-microvolt = <750000>; 643 regulator-max-microvolt = <1125000>; 644 regulator-coupled-with = <&vdd_core &rtc_vdd>; 645 regulator-coupled-max-spread = <550000 550000>; 646 regulator-always-on; 647 regulator-boot-on; 648 649 nvidia,tegra-cpu-regulator; 650 }; 651 652 sm2_reg: sm2 { 653 regulator-name = "vdd_sm2,vin_ldo*"; 654 regulator-min-microvolt = <3700000>; 655 regulator-max-microvolt = <3700000>; 656 regulator-always-on; 657 }; 658 659 /* LDO0 is not connected to anything */ 660 661 ldo1 { 662 regulator-name = "vdd_ldo1,avdd_pll*"; 663 regulator-min-microvolt = <1100000>; 664 regulator-max-microvolt = <1100000>; 665 regulator-always-on; 666 }; 667 668 rtc_vdd: ldo2 { 669 regulator-name = "vdd_ldo2,vdd_rtc"; 670 regulator-min-microvolt = <950000>; 671 regulator-max-microvolt = <1300000>; 672 regulator-coupled-with = <&vdd_core &vdd_cpu>; 673 regulator-coupled-max-spread = <170000 550000>; 674 regulator-always-on; 675 regulator-boot-on; 676 677 nvidia,tegra-rtc-regulator; 678 }; 679 680 ldo3 { 681 regulator-name = "vdd_ldo3,avdd_usb*"; 682 regulator-min-microvolt = <3300000>; 683 regulator-max-microvolt = <3300000>; 684 regulator-always-on; 685 }; 686 687 ldo4 { 688 regulator-name = "vdd_ldo4,avdd_osc,vddio_sys"; 689 regulator-min-microvolt = <1800000>; 690 regulator-max-microvolt = <1800000>; 691 regulator-always-on; 692 }; 693 694 vcore_emmc: ldo5 { 695 regulator-name = "vdd_ldo5,vcore_mmc"; 696 regulator-min-microvolt = <2850000>; 697 regulator-max-microvolt = <2850000>; 698 regulator-always-on; 699 }; 700 701 ldo6 { 702 regulator-name = "vdd_ldo6,avdd_vdac"; 703 regulator-min-microvolt = <1800000>; 704 regulator-max-microvolt = <1800000>; 705 }; 706 707 hdmi_vdd_reg: ldo7 { 708 regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse"; 709 regulator-min-microvolt = <3300000>; 710 regulator-max-microvolt = <3300000>; 711 }; 712 713 hdmi_pll_reg: ldo8 { 714 regulator-name = "vdd_ldo8,avdd_hdmi_pll"; 715 regulator-min-microvolt = <1800000>; 716 regulator-max-microvolt = <1800000>; 717 }; 718 719 ldo9 { 720 regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx"; 721 regulator-min-microvolt = <2850000>; 722 regulator-max-microvolt = <2850000>; 723 regulator-always-on; 724 }; 725 726 ldo_rtc { 727 regulator-name = "vdd_rtc_out,vdd_cell"; 728 regulator-min-microvolt = <3300000>; 729 regulator-max-microvolt = <3300000>; 730 regulator-always-on; 731 }; 732 }; 733 }; 734 735 nct1008: temperature-sensor@4c { 736 compatible = "onnn,nct1008"; 737 reg = <0x4c>; 738 vcc-supply = <&vdd_3v3_sys>; 739 740 interrupt-parent = <&gpio>; 741 interrupts = <TEGRA_GPIO(N, 6) IRQ_TYPE_EDGE_FALLING>; 742 743 #thermal-sensor-cells = <1>; 744 }; 745 }; 746 747 pmc@7000e400 { 748 nvidia,invert-interrupt; 749 nvidia,suspend-mode = <1>; 750 nvidia,cpu-pwr-good-time = <2000>; 751 nvidia,cpu-pwr-off-time = <100>; 752 nvidia,core-pwr-good-time = <3845 3845>; 753 nvidia,core-pwr-off-time = <458>; 754 nvidia,sys-clock-req-active-high; 755 core-supply = <&vdd_core>; 756 }; 757 758 memory-controller@7000f400 { 759 nvidia,use-ram-code; 760 761 emc-tables@3 { 762 reg = <0x3>; 763 764 #address-cells = <1>; 765 #size-cells = <0>; 766 767 emc-table@25000 { 768 reg = <25000>; 769 compatible = "nvidia,tegra20-emc-table"; 770 clock-frequency = <25000>; 771 nvidia,emc-registers = <0x00000002 0x00000006 772 0x00000003 0x00000003 0x00000006 0x00000004 773 0x00000002 0x00000009 0x00000003 0x00000003 774 0x00000002 0x00000002 0x00000002 0x00000004 775 0x00000003 0x00000008 0x0000000b 0x0000004d 776 0x00000000 0x00000003 0x00000003 0x00000003 777 0x00000008 0x00000001 0x0000000a 0x00000004 778 0x00000003 0x00000008 0x00000004 0x00000006 779 0x00000002 0x00000068 0x00000000 0x00000003 780 0x00000000 0x00000000 0x00000282 0xa0ae04ae 781 0x00070000 0x00000000 0x00000000 0x00000003 782 0x00000000 0x00000000 0x00000000 0x00000000>; 783 }; 784 785 emc-table@50000 { 786 reg = <50000>; 787 compatible = "nvidia,tegra20-emc-table"; 788 clock-frequency = <50000>; 789 nvidia,emc-registers = <0x00000003 0x00000007 790 0x00000003 0x00000003 0x00000006 0x00000004 791 0x00000002 0x00000009 0x00000003 0x00000003 792 0x00000002 0x00000002 0x00000002 0x00000005 793 0x00000003 0x00000008 0x0000000b 0x0000009f 794 0x00000000 0x00000003 0x00000003 0x00000003 795 0x00000008 0x00000001 0x0000000a 0x00000007 796 0x00000003 0x00000008 0x00000004 0x00000006 797 0x00000002 0x000000d0 0x00000000 0x00000000 798 0x00000000 0x00000000 0x00000282 0xa0ae04ae 799 0x00070000 0x00000000 0x00000000 0x00000005 800 0x00000000 0x00000000 0x00000000 0x00000000>; 801 }; 802 803 emc-table@75000 { 804 reg = <75000>; 805 compatible = "nvidia,tegra20-emc-table"; 806 clock-frequency = <75000>; 807 nvidia,emc-registers = <0x00000005 0x0000000a 808 0x00000004 0x00000003 0x00000006 0x00000004 809 0x00000002 0x00000009 0x00000003 0x00000003 810 0x00000002 0x00000002 0x00000002 0x00000005 811 0x00000003 0x00000008 0x0000000b 0x000000ff 812 0x00000000 0x00000003 0x00000003 0x00000003 813 0x00000008 0x00000001 0x0000000a 0x0000000b 814 0x00000003 0x00000008 0x00000004 0x00000006 815 0x00000002 0x00000138 0x00000000 0x00000000 816 0x00000000 0x00000000 0x00000282 0xa0ae04ae 817 0x00070000 0x00000000 0x00000000 0x00000007 818 0x00000000 0x00000000 0x00000000 0x00000000>; 819 }; 820 821 emc-table@150000 { 822 reg = <150000>; 823 compatible = "nvidia,tegra20-emc-table"; 824 clock-frequency = <150000>; 825 nvidia,emc-registers = <0x00000009 0x00000014 826 0x00000007 0x00000003 0x00000006 0x00000004 827 0x00000002 0x00000009 0x00000003 0x00000003 828 0x00000002 0x00000002 0x00000002 0x00000005 829 0x00000003 0x00000008 0x0000000b 0x0000021f 830 0x00000000 0x00000003 0x00000003 0x00000003 831 0x00000008 0x00000001 0x0000000a 0x00000015 832 0x00000003 0x00000008 0x00000004 0x00000006 833 0x00000002 0x00000270 0x00000000 0x00000001 834 0x00000000 0x00000000 0x00000282 0xa07c04ae 835 0x007dc010 0x00000000 0x00000000 0x0000000e 836 0x00000000 0x00000000 0x00000000 0x00000000>; 837 }; 838 839 emc-table@300000 { 840 reg = <300000>; 841 compatible = "nvidia,tegra20-emc-table"; 842 clock-frequency = <300000>; 843 nvidia,emc-registers = <0x00000012 0x00000027 844 0x0000000d 0x00000006 0x00000007 0x00000005 845 0x00000003 0x00000009 0x00000006 0x00000006 846 0x00000003 0x00000003 0x00000002 0x00000006 847 0x00000003 0x00000009 0x0000000c 0x0000045f 848 0x00000000 0x00000004 0x00000004 0x00000006 849 0x00000008 0x00000001 0x0000000e 0x0000002a 850 0x00000003 0x0000000f 0x00000007 0x00000005 851 0x00000002 0x000004e0 0x00000005 0x00000002 852 0x00000000 0x00000000 0x00000282 0xe059048b 853 0x007e0010 0x00000000 0x00000000 0x0000001b 854 0x00000000 0x00000000 0x00000000 0x00000000>; 855 }; 856 857 lpddr2 { 858 compatible = "elpida,B8132B2PB-6D-F", "jedec,lpddr2-s4"; 859 revision-id = <1 0>; 860 density = <2048>; 861 io-width = <16>; 862 }; 863 }; 864 }; 865 866 /* Peripheral USB via ASUS connector */ 867 usb@c5000000 { 868 compatible = "nvidia,tegra20-udc"; 869 status = "okay"; 870 dr_mode = "peripheral"; 871 }; 872 873 usb-phy@c5000000 { 874 status = "okay"; 875 dr_mode = "peripheral"; 876 nvidia,xcvr-setup-use-fuses; 877 nvidia,xcvr-lsfslew = <2>; 878 nvidia,xcvr-lsrslew = <2>; 879 vbus-supply = <&vdd_5v0_sys>; 880 }; 881 882 /* Dock's USB port */ 883 usb@c5008000 { 884 status = "okay"; 885 }; 886 887 usb-phy@c5008000 { 888 status = "okay"; 889 nvidia,xcvr-setup-use-fuses; 890 vbus-supply = <&vdd_5v0_sys>; 891 }; 892 893 sdmmc1: mmc@c8000000 { 894 status = "okay"; 895 896 #address-cells = <1>; 897 #size-cells = <0>; 898 899 assigned-clocks = <&tegra_car TEGRA20_CLK_SDMMC1>; 900 assigned-clock-parents = <&tegra_car TEGRA20_CLK_PLL_C>; 901 assigned-clock-rates = <40000000>; 902 903 max-frequency = <40000000>; 904 keep-power-in-suspend; 905 bus-width = <4>; 906 non-removable; 907 908 mmc-pwrseq = <&brcm_wifi_pwrseq>; 909 vmmc-supply = <&vdd_3v3_sys>; 910 vqmmc-supply = <&vdd_3v3_sys>; 911 912 /* Azurewave AW-NH615 BCM4329B1 */ 913 wifi@1 { 914 compatible = "brcm,bcm4329-fmac"; 915 reg = <1>; 916 917 interrupt-parent = <&gpio>; 918 interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_LEVEL_HIGH>; 919 interrupt-names = "host-wake"; 920 }; 921 }; 922 923 sdmmc3: mmc@c8000400 { 924 status = "okay"; 925 bus-width = <4>; 926 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>; 927 wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>; 928 power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>; 929 vmmc-supply = <&vdd_3v3_sys>; 930 vqmmc-supply = <&vdd_3v3_sys>; 931 }; 932 933 sdmmc4: mmc@c8000600 { 934 status = "okay"; 935 bus-width = <8>; 936 vmmc-supply = <&vcore_emmc>; 937 vqmmc-supply = <&vdd_3v3_sys>; 938 non-removable; 939 }; 940 941 mains: ac-adapter-detect { 942 compatible = "gpio-charger"; 943 charger-type = "mains"; 944 gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>; 945 }; 946 947 backlight: backlight { 948 compatible = "pwm-backlight"; 949 950 enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>; 951 power-supply = <&vdd_3v3_sys>; 952 pwms = <&pwm 2 4000000>; 953 954 brightness-levels = <7 255>; 955 num-interpolated-steps = <248>; 956 default-brightness-level = <20>; 957 }; 958 959 /* PMIC has a built-in 32KHz oscillator which is used by PMC */ 960 clk32k_in: clock-32k-in { 961 compatible = "fixed-clock"; 962 clock-frequency = <32768>; 963 #clock-cells = <0>; 964 }; 965 966 cpus { 967 cpu0: cpu@0 { 968 cpu-supply = <&vdd_cpu>; 969 operating-points-v2 = <&cpu0_opp_table>; 970 #cooling-cells = <2>; 971 }; 972 973 cpu1: cpu@1 { 974 cpu-supply = <&vdd_cpu>; 975 operating-points-v2 = <&cpu0_opp_table>; 976 #cooling-cells = <2>; 977 }; 978 }; 979 980 display-panel { 981 compatible = "auo,b101ew05", "panel-lvds"; 982 983 /* AUO B101EW05 using custom timings */ 984 985 backlight = <&backlight>; 986 ddc-i2c-bus = <&lvds_ddc>; 987 power-supply = <&vdd_pnl_reg>; 988 989 width-mm = <218>; 990 height-mm = <135>; 991 992 data-mapping = "jeida-18"; 993 994 panel-timing { 995 clock-frequency = <71200000>; 996 hactive = <1280>; 997 vactive = <800>; 998 hfront-porch = <8>; 999 hback-porch = <18>; 1000 hsync-len = <184>; 1001 vsync-len = <3>; 1002 vfront-porch = <4>; 1003 vback-porch = <8>; 1004 }; 1005 1006 port { 1007 panel_input: endpoint { 1008 remote-endpoint = <&lvds_encoder_output>; 1009 }; 1010 }; 1011 }; 1012 1013 gpio-keys { 1014 compatible = "gpio-keys"; 1015 1016 key-power { 1017 label = "Power"; 1018 gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; 1019 linux,code = <KEY_POWER>; 1020 debounce-interval = <10>; 1021 wakeup-event-action = <EV_ACT_ASSERTED>; 1022 wakeup-source; 1023 }; 1024 1025 key-volume-down { 1026 label = "Volume Down"; 1027 gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>; 1028 linux,code = <KEY_VOLUMEDOWN>; 1029 debounce-interval = <10>; 1030 wakeup-event-action = <EV_ACT_ASSERTED>; 1031 wakeup-source; 1032 }; 1033 1034 key-volume-up { 1035 label = "Volume Up"; 1036 gpios = <&gpio TEGRA_GPIO(Q, 5) GPIO_ACTIVE_LOW>; 1037 linux,code = <KEY_VOLUMEUP>; 1038 debounce-interval = <10>; 1039 wakeup-event-action = <EV_ACT_ASSERTED>; 1040 wakeup-source; 1041 }; 1042 1043 switch-dock-hall-sensor { 1044 label = "Lid"; 1045 gpios = <&gpio TEGRA_GPIO(S, 4) GPIO_ACTIVE_LOW>; 1046 linux,input-type = <EV_SW>; 1047 linux,code = <SW_LID>; 1048 debounce-interval = <500>; 1049 wakeup-event-action = <EV_ACT_ASSERTED>; 1050 wakeup-source; 1051 }; 1052 }; 1053 1054 i2cmux { 1055 compatible = "i2c-mux-pinctrl"; 1056 #address-cells = <1>; 1057 #size-cells = <0>; 1058 1059 i2c-parent = <&i2c2>; 1060 1061 pinctrl-names = "ddc", "pta", "idle"; 1062 pinctrl-0 = <&state_i2cmux_ddc>; 1063 pinctrl-1 = <&state_i2cmux_pta>; 1064 pinctrl-2 = <&state_i2cmux_idle>; 1065 1066 hdmi_ddc: i2c@0 { 1067 reg = <0>; 1068 #address-cells = <1>; 1069 #size-cells = <0>; 1070 }; 1071 1072 lvds_ddc: i2c@1 { 1073 reg = <1>; 1074 #address-cells = <1>; 1075 #size-cells = <0>; 1076 1077 smart-battery@b { 1078 compatible = "ti,bq20z75", "sbs,sbs-battery"; 1079 reg = <0xb>; 1080 sbs,i2c-retry-count = <2>; 1081 sbs,poll-retry-count = <10>; 1082 power-supplies = <&mains>; 1083 }; 1084 }; 1085 }; 1086 1087 lvds-encoder { 1088 compatible = "ti,sn75lvds83", "lvds-encoder"; 1089 1090 powerdown-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_LOW>; 1091 power-supply = <&vdd_3v3_sys>; 1092 1093 ports { 1094 #address-cells = <1>; 1095 #size-cells = <0>; 1096 1097 port@0 { 1098 reg = <0>; 1099 1100 lvds_encoder_input: endpoint { 1101 remote-endpoint = <&lcd_output>; 1102 }; 1103 }; 1104 1105 port@1 { 1106 reg = <1>; 1107 1108 lvds_encoder_output: endpoint { 1109 remote-endpoint = <&panel_input>; 1110 }; 1111 }; 1112 }; 1113 }; 1114 1115 opp-table-emc { 1116 /delete-node/ opp-666000000; 1117 /delete-node/ opp-760000000; 1118 }; 1119 1120 vdd_5v0_sys: regulator-5v0 { 1121 compatible = "regulator-fixed"; 1122 regulator-name = "vdd_5v0"; 1123 regulator-min-microvolt = <5000000>; 1124 regulator-max-microvolt = <5000000>; 1125 regulator-always-on; 1126 }; 1127 1128 vdd_3v3_sys: regulator-3v3 { 1129 compatible = "regulator-fixed"; 1130 regulator-name = "vdd_3v3_vs"; 1131 regulator-min-microvolt = <3300000>; 1132 regulator-max-microvolt = <3300000>; 1133 regulator-always-on; 1134 vin-supply = <&vdd_5v0_sys>; 1135 }; 1136 1137 regulator-pcie { 1138 compatible = "regulator-fixed"; 1139 regulator-name = "pcie_vdd"; 1140 regulator-min-microvolt = <1500000>; 1141 regulator-max-microvolt = <1500000>; 1142 gpio = <&pmic 0 GPIO_ACTIVE_HIGH>; 1143 regulator-always-on; 1144 }; 1145 1146 vdd_pnl_reg: regulator-panel { 1147 compatible = "regulator-fixed"; 1148 regulator-name = "vdd_pnl"; 1149 regulator-min-microvolt = <2800000>; 1150 regulator-max-microvolt = <2800000>; 1151 gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>; 1152 enable-active-high; 1153 }; 1154 1155 vdd_1v8_sys: regulator-1v8 { 1156 compatible = "regulator-fixed"; 1157 regulator-name = "vdd_1v8_vs"; 1158 regulator-min-microvolt = <1800000>; 1159 regulator-max-microvolt = <1800000>; 1160 regulator-always-on; 1161 vin-supply = <&vdd_5v0_sys>; 1162 }; 1163 1164 vdd_hdmi_en: regulator-hdmi { 1165 compatible = "regulator-fixed"; 1166 regulator-name = "vdd_5v0_hdmi_en"; 1167 regulator-min-microvolt = <5000000>; 1168 regulator-max-microvolt = <5000000>; 1169 regulator-always-on; 1170 vin-supply = <&vdd_5v0_sys>; 1171 gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>; 1172 enable-active-high; 1173 }; 1174 1175 sound { 1176 compatible = "asus,tegra-audio-wm8903-tf101", 1177 "nvidia,tegra-audio-wm8903"; 1178 nvidia,model = "Asus EeePad Transformer WM8903"; 1179 1180 nvidia,audio-routing = 1181 "Headphone Jack", "HPOUTR", 1182 "Headphone Jack", "HPOUTL", 1183 "Int Spk", "ROP", 1184 "Int Spk", "RON", 1185 "Int Spk", "LOP", 1186 "Int Spk", "LON", 1187 "IN2L", "Mic Jack", 1188 "DMICDAT", "Int Mic"; 1189 1190 nvidia,i2s-controller = <&tegra_i2s1>; 1191 nvidia,audio-codec = <&wm8903>; 1192 1193 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>; 1194 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>; 1195 nvidia,mic-det-gpios = <&gpio TEGRA_GPIO(X, 1) GPIO_ACTIVE_LOW>; 1196 nvidia,coupled-mic-hp-det; 1197 1198 clocks = <&tegra_car TEGRA20_CLK_PLL_A>, 1199 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>, 1200 <&tegra_car TEGRA20_CLK_CDEV1>; 1201 clock-names = "pll_a", "pll_a_out0", "mclk"; 1202 }; 1203 1204 thermal-zones { 1205 /* 1206 * NCT1008 has two sensors: 1207 * 1208 * 0: internal that monitors ambient/skin temperature 1209 * 1: external that is connected to the CPU's diode 1210 * 1211 * Ideally we should use userspace thermal governor, 1212 * but it's a much more complex solution. The "skin" 1213 * zone is a simpler solution which prevents TF101 from 1214 * getting too hot from a user's tactile perspective. 1215 * The CPU zone is intended to protect silicon from damage. 1216 */ 1217 1218 skin-thermal { 1219 polling-delay-passive = <1000>; /* milliseconds */ 1220 polling-delay = <5000>; /* milliseconds */ 1221 1222 thermal-sensors = <&nct1008 0>; 1223 1224 trips { 1225 trip0: skin-alert { 1226 /* start throttling at 60C */ 1227 temperature = <60000>; 1228 hysteresis = <200>; 1229 type = "passive"; 1230 }; 1231 1232 trip1: skin-crit { 1233 /* shut down at 70C */ 1234 temperature = <70000>; 1235 hysteresis = <2000>; 1236 type = "critical"; 1237 }; 1238 }; 1239 1240 cooling-maps { 1241 map0 { 1242 trip = <&trip0>; 1243 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1244 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1245 }; 1246 }; 1247 }; 1248 1249 cpu-thermal { 1250 polling-delay-passive = <1000>; /* milliseconds */ 1251 polling-delay = <5000>; /* milliseconds */ 1252 1253 thermal-sensors = <&nct1008 1>; 1254 1255 trips { 1256 trip2: cpu-alert { 1257 /* throttle at 85C until temperature drops to 84.8C */ 1258 temperature = <85000>; 1259 hysteresis = <200>; 1260 type = "passive"; 1261 }; 1262 1263 trip3: cpu-crit { 1264 /* shut down at 90C */ 1265 temperature = <90000>; 1266 hysteresis = <2000>; 1267 type = "critical"; 1268 }; 1269 }; 1270 1271 cooling-maps { 1272 map1 { 1273 trip = <&trip2>; 1274 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 1275 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; 1276 }; 1277 }; 1278 }; 1279 }; 1280 1281 brcm_wifi_pwrseq: wifi-pwrseq { 1282 compatible = "mmc-pwrseq-simple"; 1283 1284 clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>; 1285 clock-names = "ext_clock"; 1286 1287 reset-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_LOW>; 1288 post-power-on-delay-ms = <200>; 1289 power-off-delay-us = <200>; 1290 }; 1291}; 1292