0001 // SPDX-License-Identifier: GPL-2.0
0002 /dts-v1/;
0003
0004 #include <dt-bindings/input/atmel-maxtouch.h>
0005 #include <dt-bindings/input/gpio-keys.h>
0006 #include <dt-bindings/input/input.h>
0007 #include <dt-bindings/thermal/thermal.h>
0008
0009 #include "tegra20.dtsi"
0010 #include "tegra20-cpu-opp.dtsi"
0011 #include "tegra20-cpu-opp-microvolt.dtsi"
0012
0013 / {
0014 model = "ASUS EeePad Transformer TF101";
0015 compatible = "asus,tf101", "nvidia,tegra20";
0016 chassis-type = "convertible";
0017
0018 aliases {
0019 mmc0 = &sdmmc4; /* eMMC */
0020 mmc1 = &sdmmc3; /* MicroSD */
0021 mmc2 = &sdmmc1; /* WiFi */
0022
0023 rtc0 = &pmic;
0024 rtc1 = "/rtc@7000e000";
0025
0026 serial0 = &uartd;
0027 serial1 = &uartc; /* Bluetooth */
0028 serial2 = &uartb; /* GPS */
0029 };
0030
0031 /*
0032 * The decompressor and also some bootloaders rely on a
0033 * pre-existing /chosen node to be available to insert the
0034 * command line and merge other ATAGS info.
0035 */
0036 chosen {};
0037
0038 memory@0 {
0039 reg = <0x00000000 0x40000000>;
0040 };
0041
0042 reserved-memory {
0043 #address-cells = <1>;
0044 #size-cells = <1>;
0045 ranges;
0046
0047 ramoops@2ffe0000 {
0048 compatible = "ramoops";
0049 reg = <0x2ffe0000 0x10000>; /* 64kB */
0050 console-size = <0x8000>; /* 32kB */
0051 record-size = <0x400>; /* 1kB */
0052 ecc-size = <16>;
0053 };
0054
0055 linux,cma@30000000 {
0056 compatible = "shared-dma-pool";
0057 alloc-ranges = <0x30000000 0x10000000>;
0058 size = <0x10000000>; /* 256MiB */
0059 linux,cma-default;
0060 reusable;
0061 };
0062 };
0063
0064 host1x@50000000 {
0065 dc@54200000 {
0066 rgb {
0067 status = "okay";
0068
0069 port@0 {
0070 lcd_output: endpoint {
0071 remote-endpoint = <&lvds_encoder_input>;
0072 bus-width = <18>;
0073 };
0074 };
0075 };
0076 };
0077
0078 hdmi@54280000 {
0079 status = "okay";
0080
0081 vdd-supply = <&hdmi_vdd_reg>;
0082 pll-supply = <&hdmi_pll_reg>;
0083 hdmi-supply = <&vdd_hdmi_en>;
0084
0085 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
0086 nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
0087 GPIO_ACTIVE_HIGH>;
0088 };
0089 };
0090
0091 gpio@6000d000 {
0092 charging-enable-hog {
0093 gpio-hog;
0094 gpios = <TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
0095 output-low;
0096 };
0097 };
0098
0099 pinmux@70000014 {
0100 pinctrl-names = "default";
0101 pinctrl-0 = <&state_default>;
0102
0103 state_default: pinmux {
0104 ata {
0105 nvidia,pins = "ata";
0106 nvidia,function = "ide";
0107 };
0108
0109 atb {
0110 nvidia,pins = "atb", "gma", "gme";
0111 nvidia,function = "sdio4";
0112 };
0113
0114 atc {
0115 nvidia,pins = "atc";
0116 nvidia,function = "nand";
0117 };
0118
0119 atd {
0120 nvidia,pins = "atd", "ate", "gmb", "spia",
0121 "spib", "spic";
0122 nvidia,function = "gmi";
0123 };
0124
0125 cdev1 {
0126 nvidia,pins = "cdev1";
0127 nvidia,function = "plla_out";
0128 };
0129
0130 cdev2 {
0131 nvidia,pins = "cdev2";
0132 nvidia,function = "pllp_out4";
0133 };
0134
0135 crtp {
0136 nvidia,pins = "crtp";
0137 nvidia,function = "crt";
0138 };
0139
0140 lm1 {
0141 nvidia,pins = "lm1";
0142 nvidia,function = "rsvd3";
0143 };
0144
0145 csus {
0146 nvidia,pins = "csus";
0147 nvidia,function = "vi_sensor_clk";
0148 };
0149
0150 dap1 {
0151 nvidia,pins = "dap1";
0152 nvidia,function = "dap1";
0153 };
0154
0155 dap2 {
0156 nvidia,pins = "dap2";
0157 nvidia,function = "dap2";
0158 };
0159
0160 dap3 {
0161 nvidia,pins = "dap3";
0162 nvidia,function = "dap3";
0163 };
0164
0165 dap4 {
0166 nvidia,pins = "dap4";
0167 nvidia,function = "dap4";
0168 };
0169
0170 dta {
0171 nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte";
0172 nvidia,function = "vi";
0173 };
0174
0175 dtf {
0176 nvidia,pins = "dtf";
0177 nvidia,function = "i2c3";
0178 };
0179
0180 gmc {
0181 nvidia,pins = "gmc";
0182 nvidia,function = "uartd";
0183 };
0184
0185 gmd {
0186 nvidia,pins = "gmd";
0187 nvidia,function = "sflash";
0188 };
0189
0190 gpu {
0191 nvidia,pins = "gpu";
0192 nvidia,function = "pwm";
0193 };
0194
0195 gpu7 {
0196 nvidia,pins = "gpu7";
0197 nvidia,function = "rtck";
0198 };
0199
0200 gpv {
0201 nvidia,pins = "gpv", "slxa";
0202 nvidia,function = "pcie";
0203 };
0204
0205 hdint {
0206 nvidia,pins = "hdint";
0207 nvidia,function = "hdmi";
0208 };
0209
0210 i2cp {
0211 nvidia,pins = "i2cp";
0212 nvidia,function = "i2cp";
0213 };
0214
0215 irrx {
0216 nvidia,pins = "irrx", "irtx";
0217 nvidia,function = "uartb";
0218 };
0219
0220 kbca {
0221 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
0222 "kbce", "kbcf";
0223 nvidia,function = "kbc";
0224 };
0225
0226 lcsn {
0227 nvidia,pins = "lcsn", "ldc", "lm0", "lpw1",
0228 "lsdi", "lvp0";
0229 nvidia,function = "rsvd4";
0230 };
0231
0232 ld0 {
0233 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
0234 "ld5", "ld6", "ld7", "ld8", "ld9",
0235 "ld10", "ld11", "ld12", "ld13", "ld14",
0236 "ld15", "ld16", "ld17", "ldi", "lhp0",
0237 "lhp1", "lhp2", "lhs", "lpp", "lpw0",
0238 "lpw2", "lsc0", "lsc1", "lsck", "lsda",
0239 "lspi", "lvp1", "lvs";
0240 nvidia,function = "displaya";
0241 };
0242
0243 owc {
0244 nvidia,pins = "owc", "spdi", "spdo", "uac";
0245 nvidia,function = "rsvd2";
0246 };
0247
0248 pmc {
0249 nvidia,pins = "pmc";
0250 nvidia,function = "pwr_on";
0251 };
0252
0253 rm {
0254 nvidia,pins = "rm";
0255 nvidia,function = "i2c1";
0256 };
0257
0258 sdb {
0259 nvidia,pins = "sdb", "sdc", "sdd", "slxc", "slxk";
0260 nvidia,function = "sdio3";
0261 };
0262
0263 sdio1 {
0264 nvidia,pins = "sdio1";
0265 nvidia,function = "sdio1";
0266 };
0267
0268 slxd {
0269 nvidia,pins = "slxd";
0270 nvidia,function = "spdif";
0271 };
0272
0273 spid {
0274 nvidia,pins = "spid", "spie", "spif";
0275 nvidia,function = "spi1";
0276 };
0277
0278 spig {
0279 nvidia,pins = "spig", "spih";
0280 nvidia,function = "spi2_alt";
0281 };
0282
0283 uaa {
0284 nvidia,pins = "uaa", "uab", "uda";
0285 nvidia,function = "ulpi";
0286 };
0287
0288 uad {
0289 nvidia,pins = "uad";
0290 nvidia,function = "irda";
0291 };
0292
0293 uca {
0294 nvidia,pins = "uca", "ucb";
0295 nvidia,function = "uartc";
0296 };
0297
0298 conf_ata {
0299 nvidia,pins = "ata", "atb", "atc", "atd",
0300 "cdev1", "cdev2", "dap1", "dap4",
0301 "dte", "ddc", "dtf", "gma", "gmc",
0302 "gme", "gpu", "gpu7", "gpv", "i2cp",
0303 "irrx", "irtx", "pta", "rm", "sdc",
0304 "sdd", "slxc", "slxd", "slxk", "spdi",
0305 "spdo", "uac", "uad",
0306 "uda", "csus";
0307 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
0308 nvidia,tristate = <TEGRA_PIN_DISABLE>;
0309 };
0310
0311 conf_ate {
0312 nvidia,pins = "ate", "dap2", "dap3", "gmb", "gmd",
0313 "owc", "spia", "spib", "spic",
0314 "spid", "spie", "spig", "slxa";
0315 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
0316 nvidia,tristate = <TEGRA_PIN_ENABLE>;
0317 };
0318
0319 conf_ck32 {
0320 nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
0321 "pmcc", "pmcd", "pmce", "xm2c", "xm2d";
0322 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
0323 };
0324
0325 conf_crtp {
0326 nvidia,pins = "crtp", "spih";
0327 nvidia,pull = <TEGRA_PIN_PULL_UP>;
0328 nvidia,tristate = <TEGRA_PIN_ENABLE>;
0329 };
0330
0331 conf_dta {
0332 nvidia,pins = "dta", "dtb", "dtc", "dtd";
0333 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
0334 nvidia,tristate = <TEGRA_PIN_DISABLE>;
0335 };
0336
0337 conf_spif {
0338 nvidia,pins = "spif";
0339 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
0340 nvidia,tristate = <TEGRA_PIN_ENABLE>;
0341 };
0342
0343 conf_hdint {
0344 nvidia,pins = "hdint", "lcsn", "ldc", "lm1",
0345 "lpw1", "lsck", "lsda", "lsdi", "lvp0";
0346 nvidia,tristate = <TEGRA_PIN_ENABLE>;
0347 };
0348
0349 conf_kbca {
0350 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
0351 "kbce", "kbcf", "sdio1", "uaa", "uab",
0352 "uca", "ucb";
0353 nvidia,pull = <TEGRA_PIN_PULL_UP>;
0354 nvidia,tristate = <TEGRA_PIN_DISABLE>;
0355 };
0356
0357 conf_lc {
0358 nvidia,pins = "lc", "ls";
0359 nvidia,pull = <TEGRA_PIN_PULL_UP>;
0360 };
0361
0362 conf_ld0 {
0363 nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
0364 "ld5", "ld6", "ld7", "ld8", "ld9",
0365 "ld10", "ld11", "ld12", "ld13", "ld14",
0366 "ld15", "ld16", "ld17", "ldi", "lhp0",
0367 "lhp1", "lhp2", "lhs", "lm0", "lpp",
0368 "lpw0", "lpw2", "lsc0", "lsc1", "lspi",
0369 "lvp1", "lvs", "pmc", "sdb";
0370 nvidia,tristate = <TEGRA_PIN_DISABLE>;
0371 };
0372
0373 conf_ld17_0 {
0374 nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
0375 "ld23_22";
0376 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
0377 };
0378
0379 drive_sdio1 {
0380 nvidia,pins = "drive_sdio1", "drive_ddc", "drive_vi1";
0381 nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
0382 nvidia,schmitt = <TEGRA_PIN_ENABLE>;
0383 nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
0384 nvidia,pull-down-strength = <31>;
0385 nvidia,pull-up-strength = <31>;
0386 nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
0387 nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
0388 };
0389
0390 drive_csus {
0391 nvidia,pins = "drive_csus";
0392 nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
0393 nvidia,schmitt = <TEGRA_PIN_DISABLE>;
0394 nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
0395 nvidia,pull-down-strength = <31>;
0396 nvidia,pull-up-strength = <31>;
0397 nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
0398 nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
0399 };
0400 };
0401
0402 state_i2cmux_ddc: pinmux_i2cmux_ddc {
0403 ddc {
0404 nvidia,pins = "ddc";
0405 nvidia,function = "i2c2";
0406 };
0407
0408 pta {
0409 nvidia,pins = "pta";
0410 nvidia,function = "rsvd4";
0411 };
0412 };
0413
0414 state_i2cmux_pta: pinmux_i2cmux_pta {
0415 ddc {
0416 nvidia,pins = "ddc";
0417 nvidia,function = "rsvd4";
0418 };
0419
0420 pta {
0421 nvidia,pins = "pta";
0422 nvidia,function = "i2c2";
0423 };
0424 };
0425
0426 state_i2cmux_idle: pinmux_i2cmux_idle {
0427 ddc {
0428 nvidia,pins = "ddc";
0429 nvidia,function = "rsvd4";
0430 };
0431
0432 pta {
0433 nvidia,pins = "pta";
0434 nvidia,function = "rsvd4";
0435 };
0436 };
0437 };
0438
0439 spdif@70002400 {
0440 status = "okay";
0441
0442 nvidia,fixed-parent-rate;
0443 };
0444
0445 i2s@70002800 {
0446 status = "okay";
0447
0448 nvidia,fixed-parent-rate;
0449 };
0450
0451 serial@70006040 {
0452 compatible = "nvidia,tegra20-hsuart";
0453 /delete-property/ reg-shift;
0454 /* GPS BCM4751 */
0455 };
0456
0457 serial@70006200 {
0458 compatible = "nvidia,tegra20-hsuart";
0459 /delete-property/ reg-shift;
0460 status = "okay";
0461
0462 /* Azurewave AW-NH615 BCM4329B1 */
0463 bluetooth {
0464 compatible = "brcm,bcm4329-bt";
0465
0466 interrupt-parent = <&gpio>;
0467 interrupts = <TEGRA_GPIO(U, 6) IRQ_TYPE_EDGE_RISING>;
0468 interrupt-names = "host-wakeup";
0469
0470 /* PLLP 216MHz / 16 / 4 */
0471 max-speed = <3375000>;
0472
0473 clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
0474 clock-names = "txco";
0475
0476 vbat-supply = <&vdd_3v3_sys>;
0477 vddio-supply = <&vdd_1v8_sys>;
0478
0479 device-wakeup-gpios = <&gpio TEGRA_GPIO(U, 1) GPIO_ACTIVE_HIGH>;
0480 shutdown-gpios = <&gpio TEGRA_GPIO(U, 0) GPIO_ACTIVE_HIGH>;
0481 };
0482 };
0483
0484 serial@70006300 {
0485 status = "okay";
0486 };
0487
0488 pwm@7000a000 {
0489 status = "okay";
0490 };
0491
0492 i2c@7000c000 {
0493 status = "okay";
0494 clock-frequency = <400000>;
0495
0496 /* Aichi AMI306 digital compass */
0497 magnetometer@e {
0498 compatible = "asahi-kasei,ak8974";
0499 reg = <0xe>;
0500
0501 avdd-supply = <&vdd_3v3_sys>;
0502 dvdd-supply = <&vdd_1v8_sys>;
0503
0504 mount-matrix = "-1", "0", "0",
0505 "0", "1", "0",
0506 "0", "0", "-1";
0507 };
0508
0509 wm8903: audio-codec@1a {
0510 compatible = "wlf,wm8903";
0511 reg = <0x1a>;
0512
0513 interrupt-parent = <&gpio>;
0514 interrupts = <TEGRA_GPIO(X, 1) IRQ_TYPE_EDGE_BOTH>;
0515
0516 gpio-controller;
0517 #gpio-cells = <2>;
0518
0519 micdet-cfg = <0x83>;
0520 micdet-delay = <100>;
0521
0522 gpio-cfg = <
0523 0xffffffff /* don't touch */
0524 0xffffffff /* don't touch */
0525 0x00000000 /* Speaker-enable GPIO, output, low */
0526 0x00000400 /* Mic bias current detect */
0527 0xffffffff /* don't touch */
0528 >;
0529
0530 AVDD-supply = <&vdd_1v8_sys>;
0531 CPVDD-supply = <&vdd_1v8_sys>;
0532 DBVDD-supply = <&vdd_1v8_sys>;
0533 DCVDD-supply = <&vdd_1v8_sys>;
0534 };
0535
0536 /* Atmel MXT1386 Touchscreen */
0537 touchscreen@5b {
0538 compatible = "atmel,maxtouch";
0539 reg = <0x5b>;
0540
0541 interrupt-parent = <&gpio>;
0542 interrupts = <TEGRA_GPIO(V, 6) IRQ_TYPE_LEVEL_LOW>;
0543
0544 reset-gpios = <&gpio TEGRA_GPIO(Q, 7) GPIO_ACTIVE_LOW>;
0545
0546 vdda-supply = <&vdd_3v3_sys>;
0547 vdd-supply = <&vdd_3v3_sys>;
0548
0549 atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>;
0550 };
0551
0552 gyroscope@68 {
0553 compatible = "invensense,mpu3050";
0554 reg = <0x68>;
0555
0556 interrupt-parent = <&gpio>;
0557 interrupts = <TEGRA_GPIO(Z, 4) IRQ_TYPE_EDGE_RISING>;
0558
0559 vdd-supply = <&vdd_3v3_sys>;
0560 vlogic-supply = <&vdd_1v8_sys>;
0561
0562 mount-matrix = "0", "1", "0",
0563 "-1", "0", "0",
0564 "0", "0", "1";
0565
0566 i2c-gate {
0567 #address-cells = <1>;
0568 #size-cells = <0>;
0569
0570 accelerometer@f {
0571 compatible = "kionix,kxtf9";
0572 reg = <0xf>;
0573
0574 interrupt-parent = <&gpio>;
0575 interrupts = <TEGRA_GPIO(N, 4) IRQ_TYPE_EDGE_RISING>;
0576
0577 vdd-supply = <&vdd_1v8_sys>;
0578 vddio-supply = <&vdd_1v8_sys>;
0579
0580 mount-matrix = "1", "0", "0",
0581 "0", "1", "0",
0582 "0", "0", "1";
0583 };
0584 };
0585 };
0586 };
0587
0588 i2c2: i2c@7000c400 {
0589 status = "okay";
0590 clock-frequency = <100000>;
0591 };
0592
0593 i2c@7000c500 {
0594 status = "okay";
0595 clock-frequency = <400000>;
0596 };
0597
0598 i2c@7000d000 {
0599 status = "okay";
0600 clock-frequency = <400000>;
0601
0602 pmic: pmic@34 {
0603 compatible = "ti,tps6586x";
0604 reg = <0x34>;
0605 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
0606
0607 ti,system-power-controller;
0608
0609 #gpio-cells = <2>;
0610 gpio-controller;
0611
0612 sys-supply = <&vdd_5v0_sys>;
0613 vin-sm0-supply = <&sys_reg>;
0614 vin-sm1-supply = <&sys_reg>;
0615 vin-sm2-supply = <&sys_reg>;
0616 vinldo01-supply = <&sm2_reg>;
0617 vinldo23-supply = <&sm2_reg>;
0618 vinldo4-supply = <&sm2_reg>;
0619 vinldo678-supply = <&sm2_reg>;
0620 vinldo9-supply = <&sm2_reg>;
0621
0622 regulators {
0623 sys_reg: sys {
0624 regulator-name = "vdd_sys";
0625 regulator-always-on;
0626 };
0627
0628 vdd_core: sm0 {
0629 regulator-name = "vdd_sm0,vdd_core";
0630 regulator-min-microvolt = <950000>;
0631 regulator-max-microvolt = <1300000>;
0632 regulator-coupled-with = <&rtc_vdd &vdd_cpu>;
0633 regulator-coupled-max-spread = <170000 550000>;
0634 regulator-always-on;
0635 regulator-boot-on;
0636
0637 nvidia,tegra-core-regulator;
0638 };
0639
0640 vdd_cpu: sm1 {
0641 regulator-name = "vdd_sm1,vdd_cpu";
0642 regulator-min-microvolt = <750000>;
0643 regulator-max-microvolt = <1125000>;
0644 regulator-coupled-with = <&vdd_core &rtc_vdd>;
0645 regulator-coupled-max-spread = <550000 550000>;
0646 regulator-always-on;
0647 regulator-boot-on;
0648
0649 nvidia,tegra-cpu-regulator;
0650 };
0651
0652 sm2_reg: sm2 {
0653 regulator-name = "vdd_sm2,vin_ldo*";
0654 regulator-min-microvolt = <3700000>;
0655 regulator-max-microvolt = <3700000>;
0656 regulator-always-on;
0657 };
0658
0659 /* LDO0 is not connected to anything */
0660
0661 ldo1 {
0662 regulator-name = "vdd_ldo1,avdd_pll*";
0663 regulator-min-microvolt = <1100000>;
0664 regulator-max-microvolt = <1100000>;
0665 regulator-always-on;
0666 };
0667
0668 rtc_vdd: ldo2 {
0669 regulator-name = "vdd_ldo2,vdd_rtc";
0670 regulator-min-microvolt = <950000>;
0671 regulator-max-microvolt = <1300000>;
0672 regulator-coupled-with = <&vdd_core &vdd_cpu>;
0673 regulator-coupled-max-spread = <170000 550000>;
0674 regulator-always-on;
0675 regulator-boot-on;
0676
0677 nvidia,tegra-rtc-regulator;
0678 };
0679
0680 ldo3 {
0681 regulator-name = "vdd_ldo3,avdd_usb*";
0682 regulator-min-microvolt = <3300000>;
0683 regulator-max-microvolt = <3300000>;
0684 regulator-always-on;
0685 };
0686
0687 ldo4 {
0688 regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
0689 regulator-min-microvolt = <1800000>;
0690 regulator-max-microvolt = <1800000>;
0691 regulator-always-on;
0692 };
0693
0694 vcore_emmc: ldo5 {
0695 regulator-name = "vdd_ldo5,vcore_mmc";
0696 regulator-min-microvolt = <2850000>;
0697 regulator-max-microvolt = <2850000>;
0698 regulator-always-on;
0699 };
0700
0701 ldo6 {
0702 regulator-name = "vdd_ldo6,avdd_vdac";
0703 regulator-min-microvolt = <1800000>;
0704 regulator-max-microvolt = <1800000>;
0705 };
0706
0707 hdmi_vdd_reg: ldo7 {
0708 regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
0709 regulator-min-microvolt = <3300000>;
0710 regulator-max-microvolt = <3300000>;
0711 };
0712
0713 hdmi_pll_reg: ldo8 {
0714 regulator-name = "vdd_ldo8,avdd_hdmi_pll";
0715 regulator-min-microvolt = <1800000>;
0716 regulator-max-microvolt = <1800000>;
0717 };
0718
0719 ldo9 {
0720 regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
0721 regulator-min-microvolt = <2850000>;
0722 regulator-max-microvolt = <2850000>;
0723 regulator-always-on;
0724 };
0725
0726 ldo_rtc {
0727 regulator-name = "vdd_rtc_out,vdd_cell";
0728 regulator-min-microvolt = <3300000>;
0729 regulator-max-microvolt = <3300000>;
0730 regulator-always-on;
0731 };
0732 };
0733 };
0734
0735 nct1008: temperature-sensor@4c {
0736 compatible = "onnn,nct1008";
0737 reg = <0x4c>;
0738 vcc-supply = <&vdd_3v3_sys>;
0739
0740 interrupt-parent = <&gpio>;
0741 interrupts = <TEGRA_GPIO(N, 6) IRQ_TYPE_EDGE_FALLING>;
0742
0743 #thermal-sensor-cells = <1>;
0744 };
0745 };
0746
0747 pmc@7000e400 {
0748 nvidia,invert-interrupt;
0749 nvidia,suspend-mode = <1>;
0750 nvidia,cpu-pwr-good-time = <2000>;
0751 nvidia,cpu-pwr-off-time = <100>;
0752 nvidia,core-pwr-good-time = <3845 3845>;
0753 nvidia,core-pwr-off-time = <458>;
0754 nvidia,sys-clock-req-active-high;
0755 core-supply = <&vdd_core>;
0756 };
0757
0758 memory-controller@7000f400 {
0759 nvidia,use-ram-code;
0760
0761 emc-tables@3 {
0762 reg = <0x3>;
0763
0764 #address-cells = <1>;
0765 #size-cells = <0>;
0766
0767 lpddr2 {
0768 compatible = "elpida,B8132B2PB-6D-F", "jedec,lpddr2-s4";
0769 revision-id = <1 0>;
0770 density = <2048>;
0771 io-width = <16>;
0772 };
0773
0774 emc-table@25000 {
0775 reg = <25000>;
0776 compatible = "nvidia,tegra20-emc-table";
0777 clock-frequency = <25000>;
0778 nvidia,emc-registers = <0x00000002 0x00000006
0779 0x00000003 0x00000003 0x00000006 0x00000004
0780 0x00000002 0x00000009 0x00000003 0x00000003
0781 0x00000002 0x00000002 0x00000002 0x00000004
0782 0x00000003 0x00000008 0x0000000b 0x0000004d
0783 0x00000000 0x00000003 0x00000003 0x00000003
0784 0x00000008 0x00000001 0x0000000a 0x00000004
0785 0x00000003 0x00000008 0x00000004 0x00000006
0786 0x00000002 0x00000068 0x00000000 0x00000003
0787 0x00000000 0x00000000 0x00000282 0xa0ae04ae
0788 0x00070000 0x00000000 0x00000000 0x00000003
0789 0x00000000 0x00000000 0x00000000 0x00000000>;
0790 };
0791
0792 emc-table@50000 {
0793 reg = <50000>;
0794 compatible = "nvidia,tegra20-emc-table";
0795 clock-frequency = <50000>;
0796 nvidia,emc-registers = <0x00000003 0x00000007
0797 0x00000003 0x00000003 0x00000006 0x00000004
0798 0x00000002 0x00000009 0x00000003 0x00000003
0799 0x00000002 0x00000002 0x00000002 0x00000005
0800 0x00000003 0x00000008 0x0000000b 0x0000009f
0801 0x00000000 0x00000003 0x00000003 0x00000003
0802 0x00000008 0x00000001 0x0000000a 0x00000007
0803 0x00000003 0x00000008 0x00000004 0x00000006
0804 0x00000002 0x000000d0 0x00000000 0x00000000
0805 0x00000000 0x00000000 0x00000282 0xa0ae04ae
0806 0x00070000 0x00000000 0x00000000 0x00000005
0807 0x00000000 0x00000000 0x00000000 0x00000000>;
0808 };
0809
0810 emc-table@75000 {
0811 reg = <75000>;
0812 compatible = "nvidia,tegra20-emc-table";
0813 clock-frequency = <75000>;
0814 nvidia,emc-registers = <0x00000005 0x0000000a
0815 0x00000004 0x00000003 0x00000006 0x00000004
0816 0x00000002 0x00000009 0x00000003 0x00000003
0817 0x00000002 0x00000002 0x00000002 0x00000005
0818 0x00000003 0x00000008 0x0000000b 0x000000ff
0819 0x00000000 0x00000003 0x00000003 0x00000003
0820 0x00000008 0x00000001 0x0000000a 0x0000000b
0821 0x00000003 0x00000008 0x00000004 0x00000006
0822 0x00000002 0x00000138 0x00000000 0x00000000
0823 0x00000000 0x00000000 0x00000282 0xa0ae04ae
0824 0x00070000 0x00000000 0x00000000 0x00000007
0825 0x00000000 0x00000000 0x00000000 0x00000000>;
0826 };
0827
0828 emc-table@150000 {
0829 reg = <150000>;
0830 compatible = "nvidia,tegra20-emc-table";
0831 clock-frequency = <150000>;
0832 nvidia,emc-registers = <0x00000009 0x00000014
0833 0x00000007 0x00000003 0x00000006 0x00000004
0834 0x00000002 0x00000009 0x00000003 0x00000003
0835 0x00000002 0x00000002 0x00000002 0x00000005
0836 0x00000003 0x00000008 0x0000000b 0x0000021f
0837 0x00000000 0x00000003 0x00000003 0x00000003
0838 0x00000008 0x00000001 0x0000000a 0x00000015
0839 0x00000003 0x00000008 0x00000004 0x00000006
0840 0x00000002 0x00000270 0x00000000 0x00000001
0841 0x00000000 0x00000000 0x00000282 0xa07c04ae
0842 0x007dc010 0x00000000 0x00000000 0x0000000e
0843 0x00000000 0x00000000 0x00000000 0x00000000>;
0844 };
0845
0846 emc-table@300000 {
0847 reg = <300000>;
0848 compatible = "nvidia,tegra20-emc-table";
0849 clock-frequency = <300000>;
0850 nvidia,emc-registers = <0x00000012 0x00000027
0851 0x0000000d 0x00000006 0x00000007 0x00000005
0852 0x00000003 0x00000009 0x00000006 0x00000006
0853 0x00000003 0x00000003 0x00000002 0x00000006
0854 0x00000003 0x00000009 0x0000000c 0x0000045f
0855 0x00000000 0x00000004 0x00000004 0x00000006
0856 0x00000008 0x00000001 0x0000000e 0x0000002a
0857 0x00000003 0x0000000f 0x00000007 0x00000005
0858 0x00000002 0x000004e0 0x00000005 0x00000002
0859 0x00000000 0x00000000 0x00000282 0xe059048b
0860 0x007e0010 0x00000000 0x00000000 0x0000001b
0861 0x00000000 0x00000000 0x00000000 0x00000000>;
0862 };
0863 };
0864 };
0865
0866 /* Peripheral USB via ASUS connector */
0867 usb@c5000000 {
0868 compatible = "nvidia,tegra20-udc";
0869 status = "okay";
0870 dr_mode = "peripheral";
0871 };
0872
0873 usb-phy@c5000000 {
0874 status = "okay";
0875 dr_mode = "peripheral";
0876 nvidia,xcvr-setup-use-fuses;
0877 nvidia,xcvr-lsfslew = <2>;
0878 nvidia,xcvr-lsrslew = <2>;
0879 vbus-supply = <&vdd_5v0_sys>;
0880 };
0881
0882 /* Dock's USB port */
0883 usb@c5008000 {
0884 status = "okay";
0885 };
0886
0887 usb-phy@c5008000 {
0888 status = "okay";
0889 nvidia,xcvr-setup-use-fuses;
0890 vbus-supply = <&vdd_5v0_sys>;
0891 };
0892
0893 sdmmc1: mmc@c8000000 {
0894 status = "okay";
0895
0896 #address-cells = <1>;
0897 #size-cells = <0>;
0898
0899 assigned-clocks = <&tegra_car TEGRA20_CLK_SDMMC1>;
0900 assigned-clock-parents = <&tegra_car TEGRA20_CLK_PLL_C>;
0901 assigned-clock-rates = <40000000>;
0902
0903 max-frequency = <40000000>;
0904 keep-power-in-suspend;
0905 bus-width = <4>;
0906 non-removable;
0907
0908 mmc-pwrseq = <&brcm_wifi_pwrseq>;
0909 vmmc-supply = <&vdd_3v3_sys>;
0910 vqmmc-supply = <&vdd_3v3_sys>;
0911
0912 /* Azurewave AW-NH615 BCM4329B1 */
0913 wifi@1 {
0914 compatible = "brcm,bcm4329-fmac";
0915 reg = <1>;
0916
0917 interrupt-parent = <&gpio>;
0918 interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_LEVEL_HIGH>;
0919 interrupt-names = "host-wake";
0920 };
0921 };
0922
0923 sdmmc3: mmc@c8000400 {
0924 status = "okay";
0925 bus-width = <4>;
0926 cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
0927 wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
0928 power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
0929 vmmc-supply = <&vdd_3v3_sys>;
0930 vqmmc-supply = <&vdd_3v3_sys>;
0931 };
0932
0933 sdmmc4: mmc@c8000600 {
0934 status = "okay";
0935 bus-width = <8>;
0936 vmmc-supply = <&vcore_emmc>;
0937 vqmmc-supply = <&vdd_3v3_sys>;
0938 non-removable;
0939 };
0940
0941 mains: ac-adapter-detect {
0942 compatible = "gpio-charger";
0943 charger-type = "mains";
0944 gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
0945 };
0946
0947 backlight: backlight {
0948 compatible = "pwm-backlight";
0949
0950 enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
0951 power-supply = <&vdd_3v3_sys>;
0952 pwms = <&pwm 2 4000000>;
0953
0954 brightness-levels = <7 255>;
0955 num-interpolated-steps = <248>;
0956 default-brightness-level = <20>;
0957 };
0958
0959 /* PMIC has a built-in 32KHz oscillator which is used by PMC */
0960 clk32k_in: clock-32k-in {
0961 compatible = "fixed-clock";
0962 clock-frequency = <32768>;
0963 #clock-cells = <0>;
0964 };
0965
0966 cpus {
0967 cpu0: cpu@0 {
0968 cpu-supply = <&vdd_cpu>;
0969 operating-points-v2 = <&cpu0_opp_table>;
0970 #cooling-cells = <2>;
0971 };
0972
0973 cpu1: cpu@1 {
0974 cpu-supply = <&vdd_cpu>;
0975 operating-points-v2 = <&cpu0_opp_table>;
0976 #cooling-cells = <2>;
0977 };
0978 };
0979
0980 gpio-keys {
0981 compatible = "gpio-keys";
0982
0983 switch-dock-hall-sensor {
0984 label = "Lid";
0985 gpios = <&gpio TEGRA_GPIO(S, 4) GPIO_ACTIVE_LOW>;
0986 linux,input-type = <EV_SW>;
0987 linux,code = <SW_LID>;
0988 debounce-interval = <500>;
0989 wakeup-event-action = <EV_ACT_ASSERTED>;
0990 wakeup-source;
0991 };
0992
0993 key-power {
0994 label = "Power";
0995 gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
0996 linux,code = <KEY_POWER>;
0997 debounce-interval = <10>;
0998 wakeup-event-action = <EV_ACT_ASSERTED>;
0999 wakeup-source;
1000 };
1001
1002 key-volume-up {
1003 label = "Volume Up";
1004 gpios = <&gpio TEGRA_GPIO(Q, 5) GPIO_ACTIVE_LOW>;
1005 linux,code = <KEY_VOLUMEUP>;
1006 debounce-interval = <10>;
1007 wakeup-event-action = <EV_ACT_ASSERTED>;
1008 wakeup-source;
1009 };
1010
1011 key-volume-down {
1012 label = "Volume Down";
1013 gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>;
1014 linux,code = <KEY_VOLUMEDOWN>;
1015 debounce-interval = <10>;
1016 wakeup-event-action = <EV_ACT_ASSERTED>;
1017 wakeup-source;
1018 };
1019 };
1020
1021 display-panel {
1022 compatible = "panel-lvds";
1023
1024 /* AUO B101EW05 using custom timings */
1025
1026 backlight = <&backlight>;
1027 ddc-i2c-bus = <&lvds_ddc>;
1028 power-supply = <&vdd_pnl_reg>;
1029
1030 width-mm = <218>;
1031 height-mm = <135>;
1032
1033 data-mapping = "jeida-18";
1034
1035 panel-timing {
1036 clock-frequency = <71200000>;
1037 hactive = <1280>;
1038 vactive = <800>;
1039 hfront-porch = <8>;
1040 hback-porch = <18>;
1041 hsync-len = <184>;
1042 vsync-len = <3>;
1043 vfront-porch = <4>;
1044 vback-porch = <8>;
1045 };
1046
1047 port {
1048 panel_input: endpoint {
1049 remote-endpoint = <&lvds_encoder_output>;
1050 };
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 vdd_5v0_sys: regulator-5v0 {
1116 compatible = "regulator-fixed";
1117 regulator-name = "vdd_5v0";
1118 regulator-min-microvolt = <5000000>;
1119 regulator-max-microvolt = <5000000>;
1120 regulator-always-on;
1121 };
1122
1123 vdd_3v3_sys: regulator-3v3 {
1124 compatible = "regulator-fixed";
1125 regulator-name = "vdd_3v3_vs";
1126 regulator-min-microvolt = <3300000>;
1127 regulator-max-microvolt = <3300000>;
1128 regulator-always-on;
1129 vin-supply = <&vdd_5v0_sys>;
1130 };
1131
1132 regulator-pcie {
1133 compatible = "regulator-fixed";
1134 regulator-name = "pcie_vdd";
1135 regulator-min-microvolt = <1500000>;
1136 regulator-max-microvolt = <1500000>;
1137 gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
1138 regulator-always-on;
1139 };
1140
1141 vdd_pnl_reg: regulator-panel {
1142 compatible = "regulator-fixed";
1143 regulator-name = "vdd_pnl";
1144 regulator-min-microvolt = <2800000>;
1145 regulator-max-microvolt = <2800000>;
1146 gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
1147 enable-active-high;
1148 };
1149
1150 vdd_1v8_sys: regulator-1v8 {
1151 compatible = "regulator-fixed";
1152 regulator-name = "vdd_1v8_vs";
1153 regulator-min-microvolt = <1800000>;
1154 regulator-max-microvolt = <1800000>;
1155 regulator-always-on;
1156 vin-supply = <&vdd_5v0_sys>;
1157 };
1158
1159 vdd_hdmi_en: regulator-hdmi {
1160 compatible = "regulator-fixed";
1161 regulator-name = "vdd_5v0_hdmi_en";
1162 regulator-min-microvolt = <5000000>;
1163 regulator-max-microvolt = <5000000>;
1164 regulator-always-on;
1165 vin-supply = <&vdd_5v0_sys>;
1166 gpio = <&gpio TEGRA_GPIO(V, 5) GPIO_ACTIVE_HIGH>;
1167 enable-active-high;
1168 };
1169
1170 sound {
1171 compatible = "asus,tegra-audio-wm8903-tf101",
1172 "nvidia,tegra-audio-wm8903";
1173 nvidia,model = "Asus EeePad Transformer WM8903";
1174
1175 nvidia,audio-routing =
1176 "Headphone Jack", "HPOUTR",
1177 "Headphone Jack", "HPOUTL",
1178 "Int Spk", "ROP",
1179 "Int Spk", "RON",
1180 "Int Spk", "LOP",
1181 "Int Spk", "LON",
1182 "Mic Jack", "MICBIAS",
1183 "IN1L", "Mic Jack";
1184
1185 nvidia,i2s-controller = <&tegra_i2s1>;
1186 nvidia,audio-codec = <&wm8903>;
1187
1188 nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
1189 nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
1190 nvidia,headset;
1191
1192 clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
1193 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
1194 <&tegra_car TEGRA20_CLK_CDEV1>;
1195 clock-names = "pll_a", "pll_a_out0", "mclk";
1196 };
1197
1198 thermal-zones {
1199 /*
1200 * NCT1008 has two sensors:
1201 *
1202 * 0: internal that monitors ambient/skin temperature
1203 * 1: external that is connected to the CPU's diode
1204 *
1205 * Ideally we should use userspace thermal governor,
1206 * but it's a much more complex solution. The "skin"
1207 * zone is a simpler solution which prevents TF101 from
1208 * getting too hot from a user's tactile perspective.
1209 * The CPU zone is intended to protect silicon from damage.
1210 */
1211
1212 skin-thermal {
1213 polling-delay-passive = <1000>; /* milliseconds */
1214 polling-delay = <5000>; /* milliseconds */
1215
1216 thermal-sensors = <&nct1008 0>;
1217
1218 trips {
1219 trip0: skin-alert {
1220 /* start throttling at 60C */
1221 temperature = <60000>;
1222 hysteresis = <200>;
1223 type = "passive";
1224 };
1225
1226 trip1: skin-crit {
1227 /* shut down at 70C */
1228 temperature = <70000>;
1229 hysteresis = <2000>;
1230 type = "critical";
1231 };
1232 };
1233
1234 cooling-maps {
1235 map0 {
1236 trip = <&trip0>;
1237 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1238 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1239 };
1240 };
1241 };
1242
1243 cpu-thermal {
1244 polling-delay-passive = <1000>; /* milliseconds */
1245 polling-delay = <5000>; /* milliseconds */
1246
1247 thermal-sensors = <&nct1008 1>;
1248
1249 trips {
1250 trip2: cpu-alert {
1251 /* throttle at 85C until temperature drops to 84.8C */
1252 temperature = <85000>;
1253 hysteresis = <200>;
1254 type = "passive";
1255 };
1256
1257 trip3: cpu-crit {
1258 /* shut down at 90C */
1259 temperature = <90000>;
1260 hysteresis = <2000>;
1261 type = "critical";
1262 };
1263 };
1264
1265 cooling-maps {
1266 map1 {
1267 trip = <&trip2>;
1268 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1269 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1270 };
1271 };
1272 };
1273 };
1274
1275 brcm_wifi_pwrseq: wifi-pwrseq {
1276 compatible = "mmc-pwrseq-simple";
1277
1278 clocks = <&tegra_pmc TEGRA_PMC_CLK_BLINK>;
1279 clock-names = "ext_clock";
1280
1281 reset-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_LOW>;
1282 post-power-on-delay-ms = <200>;
1283 power-off-delay-us = <200>;
1284 };
1285 };
1286
1287 &emc_icc_dvfs_opp_table {
1288 /delete-node/ opp-666000000;
1289 /delete-node/ opp-760000000;
1290 };