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