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