1// SPDX-License-Identifier: GPL-2.0
2#include "tegra20.dtsi"
3
4/ {
5	model = "Avionic Design Tamonten SOM";
6	compatible = "ad,tamonten", "nvidia,tegra20";
7
8	aliases {
9		rtc0 = "/i2c@7000d000/tps6586x@34";
10		rtc1 = "/rtc@7000e000";
11		serial0 = &uartd;
12	};
13
14	chosen {
15		stdout-path = "serial0:115200n8";
16	};
17
18	memory@0 {
19		reg = <0x00000000 0x20000000>;
20	};
21
22	host1x@50000000 {
23		hdmi@54280000 {
24			vdd-supply = <&hdmi_vdd_reg>;
25			pll-supply = <&hdmi_pll_reg>;
26
27			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
28			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
29				GPIO_ACTIVE_HIGH>;
30		};
31	};
32
33	pinmux@70000014 {
34		pinctrl-names = "default";
35		pinctrl-0 = <&state_default>;
36
37		state_default: pinmux {
38			ata {
39				nvidia,pins = "ata";
40				nvidia,function = "ide";
41			};
42			atb {
43				nvidia,pins = "atb", "gma", "gme";
44				nvidia,function = "sdio4";
45			};
46			atc {
47				nvidia,pins = "atc";
48				nvidia,function = "nand";
49			};
50			atd {
51				nvidia,pins = "atd", "ate", "gmb", "gmd", "gpu",
52					"spia", "spib", "spic";
53				nvidia,function = "gmi";
54			};
55			cdev1 {
56				nvidia,pins = "cdev1";
57				nvidia,function = "plla_out";
58			};
59			cdev2 {
60				nvidia,pins = "cdev2";
61				nvidia,function = "pllp_out4";
62			};
63			crtp {
64				nvidia,pins = "crtp";
65				nvidia,function = "crt";
66			};
67			csus {
68				nvidia,pins = "csus";
69				nvidia,function = "vi_sensor_clk";
70			};
71			dap1 {
72				nvidia,pins = "dap1";
73				nvidia,function = "dap1";
74			};
75			dap2 {
76				nvidia,pins = "dap2";
77				nvidia,function = "dap2";
78			};
79			dap3 {
80				nvidia,pins = "dap3";
81				nvidia,function = "dap3";
82			};
83			dap4 {
84				nvidia,pins = "dap4";
85				nvidia,function = "dap4";
86			};
87			dta {
88				nvidia,pins = "dta", "dtd";
89				nvidia,function = "sdio2";
90			};
91			dtb {
92				nvidia,pins = "dtb", "dtc", "dte";
93				nvidia,function = "rsvd1";
94			};
95			dtf {
96				nvidia,pins = "dtf";
97				nvidia,function = "i2c3";
98			};
99			gmc {
100				nvidia,pins = "gmc";
101				nvidia,function = "uartd";
102			};
103			gpu7 {
104				nvidia,pins = "gpu7";
105				nvidia,function = "rtck";
106			};
107			gpv {
108				nvidia,pins = "gpv", "slxa", "slxk";
109				nvidia,function = "pcie";
110			};
111			hdint {
112				nvidia,pins = "hdint";
113				nvidia,function = "hdmi";
114			};
115			i2cp {
116				nvidia,pins = "i2cp";
117				nvidia,function = "i2cp";
118			};
119			irrx {
120				nvidia,pins = "irrx", "irtx";
121				nvidia,function = "uarta";
122			};
123			kbca {
124				nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
125					"kbce", "kbcf";
126				nvidia,function = "kbc";
127			};
128			lcsn {
129				nvidia,pins = "lcsn", "ld0", "ld1", "ld2",
130					"ld3", "ld4", "ld5", "ld6", "ld7",
131					"ld8", "ld9", "ld10", "ld11", "ld12",
132					"ld13", "ld14", "ld15", "ld16", "ld17",
133					"ldc", "ldi", "lhp0", "lhp1", "lhp2",
134					"lhs", "lm0", "lm1", "lpp", "lpw0",
135					"lpw1", "lpw2", "lsc0", "lsc1", "lsck",
136					"lsda", "lsdi", "lspi", "lvp0", "lvp1",
137					"lvs";
138				nvidia,function = "displaya";
139			};
140			owc {
141				nvidia,pins = "owc", "spdi", "spdo", "uac";
142				nvidia,function = "rsvd2";
143			};
144			pmc {
145				nvidia,pins = "pmc";
146				nvidia,function = "pwr_on";
147			};
148			rm {
149				nvidia,pins = "rm";
150				nvidia,function = "i2c1";
151			};
152			sdb {
153				nvidia,pins = "sdb", "sdc", "sdd";
154				nvidia,function = "pwm";
155			};
156			sdio1 {
157				nvidia,pins = "sdio1";
158				nvidia,function = "sdio1";
159			};
160			slxc {
161				nvidia,pins = "slxc", "slxd";
162				nvidia,function = "spdif";
163			};
164			spid {
165				nvidia,pins = "spid", "spie", "spif";
166				nvidia,function = "spi1";
167			};
168			spig {
169				nvidia,pins = "spig", "spih";
170				nvidia,function = "spi2_alt";
171			};
172			uaa {
173				nvidia,pins = "uaa", "uab", "uda";
174				nvidia,function = "ulpi";
175			};
176			uad {
177				nvidia,pins = "uad";
178				nvidia,function = "irda";
179			};
180			uca {
181				nvidia,pins = "uca", "ucb";
182				nvidia,function = "uartc";
183			};
184			conf_ata {
185				nvidia,pins = "ata", "atb", "atc", "atd", "ate",
186					"cdev1", "cdev2", "dap1", "dtb", "dtf",
187					"gma", "gmb", "gmc", "gmd", "gme", "gpu7",
188					"gpv", "i2cp", "irrx", "irtx", "pta",
189					"rm", "slxa", "slxk", "spia", "spib",
190					"uac";
191				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
192				nvidia,tristate = <TEGRA_PIN_DISABLE>;
193			};
194			conf_ck32 {
195				nvidia,pins = "ck32", "ddrc", "pmca", "pmcb",
196					"pmcc", "pmcd", "pmce", "xm2c", "xm2d";
197				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
198			};
199			conf_csus {
200				nvidia,pins = "csus", "spid", "spif";
201				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
202				nvidia,tristate = <TEGRA_PIN_ENABLE>;
203			};
204			conf_crtp {
205				nvidia,pins = "crtp", "dap2", "dap3", "dap4",
206					"dtc", "dte", "gpu", "sdio1",
207					"slxc", "slxd", "spdi", "spdo", "spig",
208					"uda";
209				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
210				nvidia,tristate = <TEGRA_PIN_ENABLE>;
211			};
212			conf_ddc {
213				nvidia,pins = "ddc", "dta", "dtd", "kbca",
214					"kbcb", "kbcc", "kbcd", "kbce", "kbcf",
215					"sdc", "uad", "uca";
216				nvidia,pull = <TEGRA_PIN_PULL_UP>;
217				nvidia,tristate = <TEGRA_PIN_DISABLE>;
218			};
219			conf_hdint {
220				nvidia,pins = "hdint", "lcsn", "ldc", "lm1",
221					"lpw1", "lsc1", "lsck", "lsda", "lsdi",
222					"lvp0", "owc", "sdb";
223				nvidia,tristate = <TEGRA_PIN_ENABLE>;
224			};
225			conf_sdd {
226				nvidia,pins = "sdd", "spic", "spie", "spih",
227					"uaa", "uab", "ucb";
228				nvidia,pull = <TEGRA_PIN_PULL_UP>;
229				nvidia,tristate = <TEGRA_PIN_ENABLE>;
230			};
231			conf_lc {
232				nvidia,pins = "lc", "ls";
233				nvidia,pull = <TEGRA_PIN_PULL_UP>;
234			};
235			conf_ld0 {
236				nvidia,pins = "ld0", "ld1", "ld2", "ld3", "ld4",
237					"ld5", "ld6", "ld7", "ld8", "ld9",
238					"ld10", "ld11", "ld12", "ld13", "ld14",
239					"ld15", "ld16", "ld17", "ldi", "lhp0",
240					"lhp1", "lhp2", "lhs", "lm0", "lpp",
241					"lpw0", "lpw2", "lsc0", "lspi", "lvp1",
242					"lvs", "pmc";
243				nvidia,tristate = <TEGRA_PIN_DISABLE>;
244			};
245			conf_ld17_0 {
246				nvidia,pins = "ld17_0", "ld19_18", "ld21_20",
247					"ld23_22";
248				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
249			};
250		};
251
252		state_i2cmux_ddc: pinmux-i2cmux-ddc {
253			ddc {
254				nvidia,pins = "ddc";
255				nvidia,function = "i2c2";
256			};
257			pta {
258				nvidia,pins = "pta";
259				nvidia,function = "rsvd4";
260			};
261		};
262
263		state_i2cmux_idle: pinmux-i2cmux-idle {
264			ddc {
265				nvidia,pins = "ddc";
266				nvidia,function = "rsvd4";
267			};
268			pta {
269				nvidia,pins = "pta";
270				nvidia,function = "rsvd4";
271			};
272		};
273
274		state_i2cmux_pta: pinmux-i2cmux-pta {
275			ddc {
276				nvidia,pins = "ddc";
277				nvidia,function = "rsvd4";
278			};
279			pta {
280				nvidia,pins = "pta";
281				nvidia,function = "i2c2";
282			};
283		};
284	};
285
286	i2s@70002800 {
287		status = "okay";
288	};
289
290	serial@70006300 {
291		/delete-property/ dmas;
292		/delete-property/ dma-names;
293		status = "okay";
294	};
295
296	i2c@7000c000 {
297		clock-frequency = <400000>;
298		status = "okay";
299	};
300
301	i2c@7000c400 {
302		clock-frequency = <100000>;
303		status = "okay";
304	};
305
306	i2c@7000d000 {
307		clock-frequency = <400000>;
308		status = "okay";
309
310		pmic: tps6586x@34 {
311			compatible = "ti,tps6586x";
312			reg = <0x34>;
313			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
314
315			ti,system-power-controller;
316
317			#gpio-cells = <2>;
318			gpio-controller;
319
320			/* vdd_5v0_reg must be provided by the base board */
321			sys-supply = <&vdd_5v0_reg>;
322			vin-sm0-supply = <&sys_reg>;
323			vin-sm1-supply = <&sys_reg>;
324			vin-sm2-supply = <&sys_reg>;
325			vinldo01-supply = <&sm2_reg>;
326			vinldo23-supply = <&sm2_reg>;
327			vinldo4-supply = <&sm2_reg>;
328			vinldo678-supply = <&sm2_reg>;
329			vinldo9-supply = <&sm2_reg>;
330
331			regulators {
332				sys_reg: sys {
333					regulator-name = "vdd_sys";
334					regulator-always-on;
335				};
336
337				vdd_core: sm0 {
338					regulator-name = "vdd_sys_sm0,vdd_core";
339					regulator-min-microvolt = <1200000>;
340					regulator-max-microvolt = <1200000>;
341					regulator-always-on;
342				};
343
344				sm1 {
345					regulator-name = "vdd_sys_sm1,vdd_cpu";
346					regulator-min-microvolt = <1000000>;
347					regulator-max-microvolt = <1000000>;
348					regulator-always-on;
349				};
350
351				sm2_reg: sm2 {
352					regulator-name = "vdd_sys_sm2,vin_ldo*";
353					regulator-min-microvolt = <3700000>;
354					regulator-max-microvolt = <3700000>;
355					regulator-always-on;
356				};
357
358				pci_clk_reg: ldo0 {
359					regulator-name = "vdd_ldo0,vddio_pex_clk";
360					regulator-min-microvolt = <3300000>;
361					regulator-max-microvolt = <3300000>;
362				};
363
364				ldo1 {
365					regulator-name = "vdd_ldo1,avdd_pll*";
366					regulator-min-microvolt = <1100000>;
367					regulator-max-microvolt = <1100000>;
368					regulator-always-on;
369				};
370
371				ldo2 {
372					regulator-name = "vdd_ldo2,vdd_rtc";
373					regulator-min-microvolt = <1200000>;
374					regulator-max-microvolt = <1200000>;
375				};
376
377				ldo3 {
378					regulator-name = "vdd_ldo3,avdd_usb*";
379					regulator-min-microvolt = <3300000>;
380					regulator-max-microvolt = <3300000>;
381					regulator-always-on;
382				};
383
384				ldo4 {
385					regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
386					regulator-min-microvolt = <1800000>;
387					regulator-max-microvolt = <1800000>;
388					regulator-always-on;
389				};
390
391				ldo5 {
392					regulator-name = "vdd_ldo5,vcore_mmc";
393					regulator-min-microvolt = <2850000>;
394					regulator-max-microvolt = <2850000>;
395				};
396
397				ldo6 {
398					regulator-name = "vdd_ldo6,avdd_vdac";
399					/*
400					 * According to the Tegra 2 Automotive
401					 * DataSheet, a typical value for this
402					 * would be 2.8V, but the PMIC only
403					 * supports 2.85V.
404					 */
405					regulator-min-microvolt = <2850000>;
406					regulator-max-microvolt = <2850000>;
407				};
408
409				hdmi_vdd_reg: ldo7 {
410					regulator-name = "vdd_ldo7,avdd_hdmi";
411					regulator-min-microvolt = <3300000>;
412					regulator-max-microvolt = <3300000>;
413				};
414
415				hdmi_pll_reg: ldo8 {
416					regulator-name = "vdd_ldo8,avdd_hdmi_pll";
417					regulator-min-microvolt = <1800000>;
418					regulator-max-microvolt = <1800000>;
419				};
420
421				ldo9 {
422					regulator-name = "vdd_ldo9,vdd_ddr_rx,avdd_cam";
423					/*
424					 * According to the Tegra 2 Automotive
425					 * DataSheet, a typical value for this
426					 * would be 2.8V, but the PMIC only
427					 * supports 2.85V.
428					 */
429					regulator-min-microvolt = <2850000>;
430					regulator-max-microvolt = <2850000>;
431					regulator-always-on;
432				};
433
434				ldo_rtc {
435					regulator-name = "vdd_rtc_out";
436					regulator-min-microvolt = <3300000>;
437					regulator-max-microvolt = <3300000>;
438					regulator-always-on;
439				};
440			};
441		};
442
443		temperature-sensor@4c {
444			compatible = "onnn,nct1008";
445			reg = <0x4c>;
446		};
447	};
448
449	pmc@7000e400 {
450		nvidia,invert-interrupt;
451		nvidia,suspend-mode = <1>;
452		nvidia,cpu-pwr-good-time = <5000>;
453		nvidia,cpu-pwr-off-time = <5000>;
454		nvidia,core-pwr-good-time = <3845 3845>;
455		nvidia,core-pwr-off-time = <3875>;
456		nvidia,sys-clock-req-active-high;
457		core-supply = <&vdd_core>;
458	};
459
460	pcie@80003000 {
461		avdd-pex-supply = <&pci_vdd_reg>;
462		vdd-pex-supply = <&pci_vdd_reg>;
463		avdd-pex-pll-supply = <&pci_vdd_reg>;
464		avdd-plle-supply = <&pci_vdd_reg>;
465		vddio-pex-clk-supply = <&pci_clk_reg>;
466	};
467
468	usb@c5008000 {
469		status = "okay";
470	};
471
472	usb-phy@c5008000 {
473		status = "okay";
474	};
475
476	mmc@c8000600 {
477		cd-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_LOW>;
478		wp-gpios = <&gpio TEGRA_GPIO(H, 3) GPIO_ACTIVE_HIGH>;
479		bus-width = <4>;
480		status = "okay";
481	};
482
483	clk32k_in: clock-32k {
484		compatible = "fixed-clock";
485		clock-frequency = <32768>;
486		#clock-cells = <0>;
487	};
488
489	i2cmux {
490		compatible = "i2c-mux-pinctrl";
491		#address-cells = <1>;
492		#size-cells = <0>;
493
494		i2c-parent = <&{/i2c@7000c400}>;
495
496		pinctrl-names = "ddc", "pta", "idle";
497		pinctrl-0 = <&state_i2cmux_ddc>;
498		pinctrl-1 = <&state_i2cmux_pta>;
499		pinctrl-2 = <&state_i2cmux_idle>;
500
501		hdmi_ddc: i2c@0 {
502			reg = <0>;
503			#address-cells = <1>;
504			#size-cells = <0>;
505		};
506
507		i2c@1 {
508			reg = <1>;
509			#address-cells = <1>;
510			#size-cells = <0>;
511		};
512	};
513
514	pci_vdd_reg: regulator-1v05 {
515		compatible = "regulator-fixed";
516		regulator-name = "vdd_1v05";
517		regulator-min-microvolt = <1050000>;
518		regulator-max-microvolt = <1050000>;
519		gpio = <&pmic 2 0>;
520		enable-active-high;
521	};
522};
523