• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3
4#include <dt-bindings/input/input.h>
5#include "tegra20.dtsi"
6#include "tegra20-cpu-opp.dtsi"
7
8/ {
9	model = "NVIDIA Tegra20 Ventana evaluation board";
10	compatible = "nvidia,ventana", "nvidia,tegra20";
11
12	aliases {
13		rtc0 = "/i2c@7000d000/tps6586x@34";
14		rtc1 = "/rtc@7000e000";
15		serial0 = &uartd;
16	};
17
18	chosen {
19		stdout-path = "serial0:115200n8";
20	};
21
22	memory@0 {
23		reg = <0x00000000 0x40000000>;
24	};
25
26	host1x@50000000 {
27		dc@54200000 {
28			rgb {
29				status = "okay";
30
31				nvidia,panel = <&panel>;
32			};
33		};
34
35		hdmi@54280000 {
36			status = "okay";
37
38			vdd-supply = <&hdmi_vdd_reg>;
39			pll-supply = <&hdmi_pll_reg>;
40
41			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
42			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
43				GPIO_ACTIVE_HIGH>;
44		};
45	};
46
47	pinmux@70000014 {
48		pinctrl-names = "default";
49		pinctrl-0 = <&state_default>;
50
51		state_default: pinmux {
52			ata {
53				nvidia,pins = "ata";
54				nvidia,function = "ide";
55			};
56			atb {
57				nvidia,pins = "atb", "gma", "gme";
58				nvidia,function = "sdio4";
59			};
60			atc {
61				nvidia,pins = "atc";
62				nvidia,function = "nand";
63			};
64			atd {
65				nvidia,pins = "atd", "ate", "gmb", "spia",
66					"spib", "spic";
67				nvidia,function = "gmi";
68			};
69			cdev1 {
70				nvidia,pins = "cdev1";
71				nvidia,function = "plla_out";
72			};
73			cdev2 {
74				nvidia,pins = "cdev2";
75				nvidia,function = "pllp_out4";
76			};
77			crtp {
78				nvidia,pins = "crtp", "lm1";
79				nvidia,function = "crt";
80			};
81			csus {
82				nvidia,pins = "csus";
83				nvidia,function = "vi_sensor_clk";
84			};
85			dap1 {
86				nvidia,pins = "dap1";
87				nvidia,function = "dap1";
88			};
89			dap2 {
90				nvidia,pins = "dap2";
91				nvidia,function = "dap2";
92			};
93			dap3 {
94				nvidia,pins = "dap3";
95				nvidia,function = "dap3";
96			};
97			dap4 {
98				nvidia,pins = "dap4";
99				nvidia,function = "dap4";
100			};
101			dta {
102				nvidia,pins = "dta", "dtb", "dtc", "dtd", "dte";
103				nvidia,function = "vi";
104			};
105			dtf {
106				nvidia,pins = "dtf";
107				nvidia,function = "i2c3";
108			};
109			gmc {
110				nvidia,pins = "gmc";
111				nvidia,function = "uartd";
112			};
113			gmd {
114				nvidia,pins = "gmd";
115				nvidia,function = "sflash";
116			};
117			gpu {
118				nvidia,pins = "gpu";
119				nvidia,function = "pwm";
120			};
121			gpu7 {
122				nvidia,pins = "gpu7";
123				nvidia,function = "rtck";
124			};
125			gpv {
126				nvidia,pins = "gpv", "slxa", "slxk";
127				nvidia,function = "pcie";
128			};
129			hdint {
130				nvidia,pins = "hdint";
131				nvidia,function = "hdmi";
132			};
133			i2cp {
134				nvidia,pins = "i2cp";
135				nvidia,function = "i2cp";
136			};
137			irrx {
138				nvidia,pins = "irrx", "irtx";
139				nvidia,function = "uartb";
140			};
141			kbca {
142				nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
143					"kbce", "kbcf";
144				nvidia,function = "kbc";
145			};
146			lcsn {
147				nvidia,pins = "lcsn", "ldc", "lm0", "lpw1",
148					"lsdi", "lvp0";
149				nvidia,function = "rsvd4";
150			};
151			ld0 {
152				nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
153					"ld5", "ld6", "ld7", "ld8", "ld9",
154					"ld10", "ld11", "ld12", "ld13", "ld14",
155					"ld15", "ld16", "ld17", "ldi", "lhp0",
156					"lhp1", "lhp2", "lhs", "lpp", "lpw0",
157					"lpw2", "lsc0", "lsc1", "lsck", "lsda",
158					"lspi", "lvp1", "lvs";
159				nvidia,function = "displaya";
160			};
161			owc {
162				nvidia,pins = "owc", "spdi", "spdo", "uac";
163				nvidia,function = "rsvd2";
164			};
165			pmc {
166				nvidia,pins = "pmc";
167				nvidia,function = "pwr_on";
168			};
169			rm {
170				nvidia,pins = "rm";
171				nvidia,function = "i2c1";
172			};
173			sdb {
174				nvidia,pins = "sdb", "sdc", "sdd", "slxc";
175				nvidia,function = "sdio3";
176			};
177			sdio1 {
178				nvidia,pins = "sdio1";
179				nvidia,function = "sdio1";
180			};
181			slxd {
182				nvidia,pins = "slxd";
183				nvidia,function = "spdif";
184			};
185			spid {
186				nvidia,pins = "spid", "spie", "spif";
187				nvidia,function = "spi1";
188			};
189			spig {
190				nvidia,pins = "spig", "spih";
191				nvidia,function = "spi2_alt";
192			};
193			uaa {
194				nvidia,pins = "uaa", "uab", "uda";
195				nvidia,function = "ulpi";
196			};
197			uad {
198				nvidia,pins = "uad";
199				nvidia,function = "irda";
200			};
201			uca {
202				nvidia,pins = "uca", "ucb";
203				nvidia,function = "uartc";
204			};
205			conf_ata {
206				nvidia,pins = "ata", "atb", "atc", "atd",
207					"cdev1", "cdev2", "dap1", "dap2",
208					"dap4", "ddc", "dtf", "gma", "gmc",
209					"gme", "gpu", "gpu7", "i2cp", "irrx",
210					"irtx", "pta", "rm", "sdc", "sdd",
211					"slxc", "slxd", "slxk", "spdi", "spdo",
212					"uac", "uad", "uca", "ucb", "uda";
213				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
214				nvidia,tristate = <TEGRA_PIN_DISABLE>;
215			};
216			conf_ate {
217				nvidia,pins = "ate", "csus", "dap3", "gmd",
218					"gpv", "owc", "spia", "spib", "spic",
219					"spid", "spie", "spig";
220				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
221				nvidia,tristate = <TEGRA_PIN_ENABLE>;
222			};
223			conf_ck32 {
224				nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
225					"pmcc", "pmcd", "pmce", "xm2c", "xm2d";
226				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
227			};
228			conf_crtp {
229				nvidia,pins = "crtp", "gmb", "slxa", "spih";
230				nvidia,pull = <TEGRA_PIN_PULL_UP>;
231				nvidia,tristate = <TEGRA_PIN_ENABLE>;
232			};
233			conf_dta {
234				nvidia,pins = "dta", "dtb", "dtc", "dtd";
235				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
236				nvidia,tristate = <TEGRA_PIN_DISABLE>;
237			};
238			conf_dte {
239				nvidia,pins = "dte", "spif";
240				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
241				nvidia,tristate = <TEGRA_PIN_ENABLE>;
242			};
243			conf_hdint {
244				nvidia,pins = "hdint", "lcsn", "ldc", "lm1",
245					"lpw1", "lsck", "lsda", "lsdi", "lvp0";
246				nvidia,tristate = <TEGRA_PIN_ENABLE>;
247			};
248			conf_kbca {
249				nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
250					"kbce", "kbcf", "sdio1", "uaa", "uab";
251				nvidia,pull = <TEGRA_PIN_PULL_UP>;
252				nvidia,tristate = <TEGRA_PIN_DISABLE>;
253			};
254			conf_lc {
255				nvidia,pins = "lc", "ls";
256				nvidia,pull = <TEGRA_PIN_PULL_UP>;
257			};
258			conf_ld0 {
259				nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
260					"ld5", "ld6", "ld7", "ld8", "ld9",
261					"ld10", "ld11", "ld12", "ld13", "ld14",
262					"ld15", "ld16", "ld17", "ldi", "lhp0",
263					"lhp1", "lhp2", "lhs", "lm0", "lpp",
264					"lpw0", "lpw2", "lsc0", "lsc1", "lspi",
265					"lvp1", "lvs", "pmc", "sdb";
266				nvidia,tristate = <TEGRA_PIN_DISABLE>;
267			};
268			conf_ld17_0 {
269				nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
270					"ld23_22";
271				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
272			};
273			drive_sdio1 {
274				nvidia,pins = "drive_sdio1";
275				nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
276				nvidia,schmitt = <TEGRA_PIN_ENABLE>;
277				nvidia,low-power-mode = <TEGRA_PIN_LP_DRIVE_DIV_1>;
278				nvidia,pull-down-strength = <31>;
279				nvidia,pull-up-strength = <31>;
280				nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
281				nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_SLOWEST>;
282			};
283		};
284
285		state_i2cmux_ddc: pinmux_i2cmux_ddc {
286			ddc {
287				nvidia,pins = "ddc";
288				nvidia,function = "i2c2";
289			};
290			pta {
291				nvidia,pins = "pta";
292				nvidia,function = "rsvd4";
293			};
294		};
295
296		state_i2cmux_pta: pinmux_i2cmux_pta {
297			ddc {
298				nvidia,pins = "ddc";
299				nvidia,function = "rsvd4";
300			};
301			pta {
302				nvidia,pins = "pta";
303				nvidia,function = "i2c2";
304			};
305		};
306
307		state_i2cmux_idle: pinmux_i2cmux_idle {
308			ddc {
309				nvidia,pins = "ddc";
310				nvidia,function = "rsvd4";
311			};
312			pta {
313				nvidia,pins = "pta";
314				nvidia,function = "rsvd4";
315			};
316		};
317	};
318
319	i2s@70002800 {
320		status = "okay";
321	};
322
323	serial@70006300 {
324		status = "okay";
325	};
326
327	pwm: pwm@7000a000 {
328		status = "okay";
329	};
330
331	i2c@7000c000 {
332		status = "okay";
333		clock-frequency = <400000>;
334
335		wm8903: wm8903@1a {
336			compatible = "wlf,wm8903";
337			reg = <0x1a>;
338			interrupt-parent = <&gpio>;
339			interrupts = <TEGRA_GPIO(X, 3) IRQ_TYPE_LEVEL_HIGH>;
340
341			gpio-controller;
342			#gpio-cells = <2>;
343
344			micdet-cfg = <0>;
345			micdet-delay = <100>;
346			gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
347		};
348
349		/* ALS and proximity sensor */
350		isl29018@44 {
351			compatible = "isil,isl29018";
352			reg = <0x44>;
353			interrupt-parent = <&gpio>;
354			interrupts = <TEGRA_GPIO(Z, 2) IRQ_TYPE_LEVEL_HIGH>;
355		};
356	};
357
358	i2c@7000c400 {
359		status = "okay";
360		clock-frequency = <100000>;
361	};
362
363	i2cmux {
364		compatible = "i2c-mux-pinctrl";
365		#address-cells = <1>;
366		#size-cells = <0>;
367
368		i2c-parent = <&{/i2c@7000c400}>;
369
370		pinctrl-names = "ddc", "pta", "idle";
371		pinctrl-0 = <&state_i2cmux_ddc>;
372		pinctrl-1 = <&state_i2cmux_pta>;
373		pinctrl-2 = <&state_i2cmux_idle>;
374
375		hdmi_ddc: i2c@0 {
376			reg = <0>;
377			#address-cells = <1>;
378			#size-cells = <0>;
379		};
380
381		lvds_ddc: i2c@1 {
382			reg = <1>;
383			#address-cells = <1>;
384			#size-cells = <0>;
385		};
386	};
387
388	i2c@7000c500 {
389		status = "okay";
390		clock-frequency = <400000>;
391	};
392
393	i2c@7000d000 {
394		status = "okay";
395		clock-frequency = <400000>;
396
397		pmic: tps6586x@34 {
398			compatible = "ti,tps6586x";
399			reg = <0x34>;
400			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
401
402			ti,system-power-controller;
403
404			#gpio-cells = <2>;
405			gpio-controller;
406
407			sys-supply = <&vdd_5v0_reg>;
408			vin-sm0-supply = <&sys_reg>;
409			vin-sm1-supply = <&sys_reg>;
410			vin-sm2-supply = <&sys_reg>;
411			vinldo01-supply = <&sm2_reg>;
412			vinldo23-supply = <&sm2_reg>;
413			vinldo4-supply = <&sm2_reg>;
414			vinldo678-supply = <&sm2_reg>;
415			vinldo9-supply = <&sm2_reg>;
416
417			regulators {
418				sys_reg: sys {
419					regulator-name = "vdd_sys";
420					regulator-always-on;
421				};
422
423				sm0 {
424					regulator-name = "vdd_sm0,vdd_core";
425					regulator-min-microvolt = <1200000>;
426					regulator-max-microvolt = <1200000>;
427					regulator-always-on;
428				};
429
430				sm1 {
431					regulator-name = "vdd_sm1,vdd_cpu";
432					regulator-min-microvolt = <1000000>;
433					regulator-max-microvolt = <1000000>;
434					regulator-always-on;
435				};
436
437				sm2_reg: sm2 {
438					regulator-name = "vdd_sm2,vin_ldo*";
439					regulator-min-microvolt = <3700000>;
440					regulator-max-microvolt = <3700000>;
441					regulator-always-on;
442				};
443
444				/* LDO0 is not connected to anything */
445
446				ldo1 {
447					regulator-name = "vdd_ldo1,avdd_pll*";
448					regulator-min-microvolt = <1100000>;
449					regulator-max-microvolt = <1100000>;
450					regulator-always-on;
451				};
452
453				ldo2 {
454					regulator-name = "vdd_ldo2,vdd_rtc";
455					regulator-min-microvolt = <1200000>;
456					regulator-max-microvolt = <1200000>;
457				};
458
459				ldo3 {
460					regulator-name = "vdd_ldo3,avdd_usb*";
461					regulator-min-microvolt = <3300000>;
462					regulator-max-microvolt = <3300000>;
463					regulator-always-on;
464				};
465
466				ldo4 {
467					regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
468					regulator-min-microvolt = <1800000>;
469					regulator-max-microvolt = <1800000>;
470					regulator-always-on;
471				};
472
473				ldo5 {
474					regulator-name = "vdd_ldo5,vcore_mmc";
475					regulator-min-microvolt = <2850000>;
476					regulator-max-microvolt = <2850000>;
477					regulator-always-on;
478				};
479
480				ldo6 {
481					regulator-name = "vdd_ldo6,avdd_vdac";
482					regulator-min-microvolt = <1800000>;
483					regulator-max-microvolt = <1800000>;
484				};
485
486				hdmi_vdd_reg: ldo7 {
487					regulator-name = "vdd_ldo7,avdd_hdmi,vdd_fuse";
488					regulator-min-microvolt = <3300000>;
489					regulator-max-microvolt = <3300000>;
490				};
491
492				hdmi_pll_reg: ldo8 {
493					regulator-name = "vdd_ldo8,avdd_hdmi_pll";
494					regulator-min-microvolt = <1800000>;
495					regulator-max-microvolt = <1800000>;
496				};
497
498				ldo9 {
499					regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
500					regulator-min-microvolt = <2850000>;
501					regulator-max-microvolt = <2850000>;
502					regulator-always-on;
503				};
504
505				ldo_rtc {
506					regulator-name = "vdd_rtc_out,vdd_cell";
507					regulator-min-microvolt = <3300000>;
508					regulator-max-microvolt = <3300000>;
509					regulator-always-on;
510				};
511			};
512		};
513
514		temperature-sensor@4c {
515			compatible = "onnn,nct1008";
516			reg = <0x4c>;
517		};
518	};
519
520	pmc@7000e400 {
521		nvidia,invert-interrupt;
522		nvidia,suspend-mode = <1>;
523		nvidia,cpu-pwr-good-time = <2000>;
524		nvidia,cpu-pwr-off-time = <100>;
525		nvidia,core-pwr-good-time = <3845 3845>;
526		nvidia,core-pwr-off-time = <458>;
527		nvidia,sys-clock-req-active-high;
528	};
529
530	usb@c5000000 {
531		status = "okay";
532	};
533
534	usb-phy@c5000000 {
535		status = "okay";
536	};
537
538	usb@c5004000 {
539		status = "okay";
540		nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
541			GPIO_ACTIVE_LOW>;
542	};
543
544	usb-phy@c5004000 {
545		status = "okay";
546		nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
547			GPIO_ACTIVE_LOW>;
548	};
549
550	usb@c5008000 {
551		status = "okay";
552	};
553
554	usb-phy@c5008000 {
555		status = "okay";
556	};
557
558	mmc@c8000000 {
559		status = "okay";
560		power-gpios = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
561		bus-width = <4>;
562		keep-power-in-suspend;
563	};
564
565	mmc@c8000400 {
566		status = "okay";
567		cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
568		wp-gpios = <&gpio TEGRA_GPIO(H, 1) GPIO_ACTIVE_HIGH>;
569		power-gpios = <&gpio TEGRA_GPIO(I, 6) GPIO_ACTIVE_HIGH>;
570		bus-width = <4>;
571	};
572
573	mmc@c8000600 {
574		status = "okay";
575		bus-width = <8>;
576		non-removable;
577	};
578
579	backlight: backlight {
580		compatible = "pwm-backlight";
581
582		enable-gpios = <&gpio TEGRA_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
583		power-supply = <&vdd_bl_reg>;
584		pwms = <&pwm 2 5000000>;
585
586		brightness-levels = <0 4 8 16 32 64 128 255>;
587		default-brightness-level = <6>;
588	};
589
590	clk32k_in: clock@0 {
591		compatible = "fixed-clock";
592		clock-frequency = <32768>;
593		#clock-cells = <0>;
594	};
595
596	cpus {
597		cpu0: cpu@0 {
598			operating-points-v2 = <&cpu0_opp_table>;
599		};
600
601		cpu@1 {
602			operating-points-v2 = <&cpu0_opp_table>;
603		};
604	};
605
606	gpio-keys {
607		compatible = "gpio-keys";
608
609		power {
610			label = "Power";
611			gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
612			linux,code = <KEY_POWER>;
613			wakeup-source;
614		};
615	};
616
617	panel: panel {
618		compatible = "chunghwa,claa101wa01a";
619
620		power-supply = <&vdd_pnl_reg>;
621		enable-gpios = <&gpio TEGRA_GPIO(B, 2) GPIO_ACTIVE_HIGH>;
622
623		backlight = <&backlight>;
624		ddc-i2c-bus = <&lvds_ddc>;
625	};
626
627	vdd_5v0_reg: regulator@0 {
628		compatible = "regulator-fixed";
629		regulator-name = "vdd_5v0";
630		regulator-min-microvolt = <5000000>;
631		regulator-max-microvolt = <5000000>;
632		regulator-always-on;
633	};
634
635	regulator@1 {
636		compatible = "regulator-fixed";
637		regulator-name = "vdd_1v5";
638		regulator-min-microvolt = <1500000>;
639		regulator-max-microvolt = <1500000>;
640		gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
641	};
642
643	regulator@2 {
644		compatible = "regulator-fixed";
645		regulator-name = "vdd_1v2";
646		regulator-min-microvolt = <1200000>;
647		regulator-max-microvolt = <1200000>;
648		gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
649		enable-active-high;
650	};
651
652	vdd_pnl_reg: regulator@3 {
653		compatible = "regulator-fixed";
654		regulator-name = "vdd_pnl";
655		regulator-min-microvolt = <2800000>;
656		regulator-max-microvolt = <2800000>;
657		gpio = <&gpio TEGRA_GPIO(C, 6) GPIO_ACTIVE_HIGH>;
658		enable-active-high;
659	};
660
661	vdd_bl_reg: regulator@4 {
662		compatible = "regulator-fixed";
663		regulator-name = "vdd_bl";
664		regulator-min-microvolt = <2800000>;
665		regulator-max-microvolt = <2800000>;
666		gpio = <&gpio TEGRA_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
667		enable-active-high;
668	};
669
670	sound {
671		compatible = "nvidia,tegra-audio-wm8903-ventana",
672			     "nvidia,tegra-audio-wm8903";
673		nvidia,model = "NVIDIA Tegra Ventana";
674
675		nvidia,audio-routing =
676			"Headphone Jack", "HPOUTR",
677			"Headphone Jack", "HPOUTL",
678			"Int Spk", "ROP",
679			"Int Spk", "RON",
680			"Int Spk", "LOP",
681			"Int Spk", "LON",
682			"Mic Jack", "MICBIAS",
683			"IN1L", "Mic Jack";
684
685		nvidia,i2s-controller = <&tegra_i2s1>;
686		nvidia,audio-codec = <&wm8903>;
687
688		nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
689		nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
690		nvidia,int-mic-en-gpios = <&gpio TEGRA_GPIO(X, 0)
691			GPIO_ACTIVE_HIGH>;
692		nvidia,ext-mic-en-gpios = <&gpio TEGRA_GPIO(X, 1)
693			GPIO_ACTIVE_HIGH>;
694
695		clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
696			 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
697			 <&tegra_car TEGRA20_CLK_CDEV1>;
698		clock-names = "pll_a", "pll_a_out0", "mclk";
699	};
700};
701