1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2724ba675SRob Herring#include "tegra20.dtsi"
3724ba675SRob Herring
4724ba675SRob Herring/*
5724ba675SRob Herring * Toradex Colibri T20 Module Device Tree
6724ba675SRob Herring * Compatible for Revisions Colibri T20 256MB V1.1B, V1.2A;
7724ba675SRob Herring * Colibri T20 256MB IT V1.2A; Colibri T20 512MB V1.1C, V1.2A;
8724ba675SRob Herring * Colibri T20 512MB IT V1.2A
9724ba675SRob Herring */
10724ba675SRob Herring/ {
11724ba675SRob Herring	memory@0 {
12724ba675SRob Herring		/*
13724ba675SRob Herring		 * Set memory to 256 MB to be safe as this could be used on
14724ba675SRob Herring		 * 256 or 512 MB module. It is expected from bootloader
15724ba675SRob Herring		 * to fix this up for 512 MB version.
16724ba675SRob Herring		 */
17724ba675SRob Herring		reg = <0x00000000 0x10000000>;
18724ba675SRob Herring	};
19724ba675SRob Herring
20724ba675SRob Herring	host1x@50000000 {
21724ba675SRob Herring		hdmi@54280000 {
22724ba675SRob Herring			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
23724ba675SRob Herring			nvidia,hpd-gpio =
24724ba675SRob Herring				<&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
25724ba675SRob Herring			pll-supply = <&reg_1v8_avdd_hdmi_pll>;
26724ba675SRob Herring			vdd-supply = <&reg_3v3_avdd_hdmi>;
27724ba675SRob Herring		};
28724ba675SRob Herring	};
29724ba675SRob Herring
30724ba675SRob Herring	gpio@6000d000 {
31724ba675SRob Herring		lan-reset-n-hog {
32724ba675SRob Herring			gpio-hog;
33724ba675SRob Herring			gpios = <TEGRA_GPIO(V, 4) GPIO_ACTIVE_HIGH>;
34724ba675SRob Herring			output-high;
35724ba675SRob Herring			line-name = "LAN_RESET#";
36724ba675SRob Herring		};
37724ba675SRob Herring
38724ba675SRob Herring		/* Tri-stating GMI_WR_N on SODIMM pin 99 nPWE */
39724ba675SRob Herring		npwe-hog {
40724ba675SRob Herring			gpio-hog;
41724ba675SRob Herring			gpios = <TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
42724ba675SRob Herring			output-high;
43724ba675SRob Herring			line-name = "Tri-state nPWE";
44724ba675SRob Herring		};
45724ba675SRob Herring
46724ba675SRob Herring		/* Not tri-stating GMI_WR_N on SODIMM pin 93 RDnWR */
47724ba675SRob Herring		rdnwr-hog {
48724ba675SRob Herring			gpio-hog;
49724ba675SRob Herring			gpios = <TEGRA_GPIO(T, 6) GPIO_ACTIVE_HIGH>;
50724ba675SRob Herring			output-low;
51724ba675SRob Herring			line-name = "Not tri-state RDnWR";
52724ba675SRob Herring		};
53724ba675SRob Herring	};
54724ba675SRob Herring
55724ba675SRob Herring	pinmux@70000014 {
56724ba675SRob Herring		pinctrl-names = "default";
57724ba675SRob Herring		pinctrl-0 = <&state_default>;
58724ba675SRob Herring
59724ba675SRob Herring		state_default: pinmux {
60724ba675SRob Herring			/* Analogue Audio AC97 to WM9712 (On-module) */
61724ba675SRob Herring			audio-refclk {
62724ba675SRob Herring				nvidia,pins = "cdev1";
63724ba675SRob Herring				nvidia,function = "plla_out";
64724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
65724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
66724ba675SRob Herring			};
67724ba675SRob Herring			dap3 {
68724ba675SRob Herring				nvidia,pins = "dap3";
69724ba675SRob Herring				nvidia,function = "dap3";
70724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
71724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
72724ba675SRob Herring			};
73724ba675SRob Herring
74724ba675SRob Herring			/*
75724ba675SRob Herring			 * AC97_RESET, ULPI_RESET, AC97_INT aka WM9712 GENIRQ
76724ba675SRob Herring			 * (All on-module), SODIMM Pin 45 Wakeup
77724ba675SRob Herring			 */
78724ba675SRob Herring			gpio-uac {
79724ba675SRob Herring				nvidia,pins = "uac";
80724ba675SRob Herring				nvidia,function = "rsvd2";
81724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
82724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
83724ba675SRob Herring			};
84724ba675SRob Herring
85724ba675SRob Herring			/*
86724ba675SRob Herring			 * Buffer Enables for nPWE and RDnWR (On-module,
87724ba675SRob Herring			 * see GPIO hogging further down below)
88724ba675SRob Herring			 */
89724ba675SRob Herring			gpio-pta {
90724ba675SRob Herring				nvidia,pins = "pta";
91724ba675SRob Herring				nvidia,function = "rsvd4";
92724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
93724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
94724ba675SRob Herring			};
95724ba675SRob Herring
96724ba675SRob Herring			/*
97724ba675SRob Herring			 * CLK_32K_OUT, CORE_PWR_REQ, CPU_PWR_REQ, PWR_INT_N,
98724ba675SRob Herring			 * SYS_CLK_REQ (All on-module)
99724ba675SRob Herring			 */
100724ba675SRob Herring			pmc {
101724ba675SRob Herring				nvidia,pins = "pmc";
102724ba675SRob Herring				nvidia,function = "pwr_on";
103724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
104724ba675SRob Herring			};
105724ba675SRob Herring
106724ba675SRob Herring			/*
107724ba675SRob Herring			 * Colibri Address/Data Bus (GMI)
108724ba675SRob Herring			 * Note: spid and spie optionally used for SPI1
109724ba675SRob Herring			 */
110724ba675SRob Herring			gmi {
111724ba675SRob Herring				nvidia,pins = "atc", "atd", "ate", "dap1",
112724ba675SRob Herring					      "dap2", "dap4", "gmd", "gpu",
113724ba675SRob Herring					      "irrx", "irtx", "spia", "spib",
114724ba675SRob Herring					      "spic", "spid", "spie", "uca",
115724ba675SRob Herring					      "ucb";
116724ba675SRob Herring				nvidia,function = "gmi";
117724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
118724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
119724ba675SRob Herring			};
120724ba675SRob Herring			/* Further pins may be used as GPIOs */
121724ba675SRob Herring			gmi-gpio1 {
122724ba675SRob Herring				nvidia,pins = "lpw0", "lsc1", "lsck", "lsda";
123724ba675SRob Herring				nvidia,function = "hdmi";
124724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
125724ba675SRob Herring			};
126724ba675SRob Herring			gmi-gpio2 {
127724ba675SRob Herring				nvidia,pins = "lcsn", "ldc", "lm0", "lsdi";
128724ba675SRob Herring				nvidia,function = "rsvd4";
129724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
130724ba675SRob Herring			};
131724ba675SRob Herring
132724ba675SRob Herring			/* Colibri BL_ON */
133724ba675SRob Herring			bl-on {
134724ba675SRob Herring				nvidia,pins = "dta";
135724ba675SRob Herring				nvidia,function = "rsvd1";
136724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
137724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
138724ba675SRob Herring			};
139724ba675SRob Herring
140724ba675SRob Herring			/* Colibri Backlight PWM<A>, PWM<B> */
141724ba675SRob Herring			sdc {
142724ba675SRob Herring				nvidia,pins = "sdc";
143724ba675SRob Herring				nvidia,function = "pwm";
144724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
145724ba675SRob Herring			};
146724ba675SRob Herring
147724ba675SRob Herring			/* Colibri DDC */
148724ba675SRob Herring			ddc {
149724ba675SRob Herring				nvidia,pins = "ddc";
150724ba675SRob Herring				nvidia,function = "i2c2";
151724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_UP>;
152724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
153724ba675SRob Herring			};
154724ba675SRob Herring
155724ba675SRob Herring			/*
156724ba675SRob Herring			 * Colibri EXT_IO*
157724ba675SRob Herring			 * Note: dtf optionally used for I2C3
158724ba675SRob Herring			 */
159724ba675SRob Herring			ext-io {
160724ba675SRob Herring				nvidia,pins = "dtf", "spdi";
161724ba675SRob Herring				nvidia,function = "rsvd2";
162724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
163724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
164724ba675SRob Herring			};
165724ba675SRob Herring
166724ba675SRob Herring			/*
167724ba675SRob Herring			 * Colibri Ethernet (On-module)
168724ba675SRob Herring			 * ULPI EHCI instance 1 USB2_DP/N -> AX88772B
169724ba675SRob Herring			 */
170724ba675SRob Herring			ulpi {
171724ba675SRob Herring				nvidia,pins = "uaa", "uab", "uda";
172724ba675SRob Herring				nvidia,function = "ulpi";
173724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
174724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
175724ba675SRob Herring			};
176724ba675SRob Herring			ulpi-refclk {
177724ba675SRob Herring				nvidia,pins = "cdev2";
178724ba675SRob Herring				nvidia,function = "pllp_out4";
179724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
180724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
181724ba675SRob Herring			};
182724ba675SRob Herring
183724ba675SRob Herring			/* Colibri HOTPLUG_DETECT (HDMI) */
184724ba675SRob Herring			hotplug-detect {
185724ba675SRob Herring				nvidia,pins = "hdint";
186724ba675SRob Herring				nvidia,function = "hdmi";
187724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
188724ba675SRob Herring			};
189724ba675SRob Herring
190724ba675SRob Herring			/* Colibri I2C */
191724ba675SRob Herring			i2c {
192724ba675SRob Herring				nvidia,pins = "rm";
193724ba675SRob Herring				nvidia,function = "i2c1";
194724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
195724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
196724ba675SRob Herring			};
197724ba675SRob Herring
198724ba675SRob Herring			/*
199724ba675SRob Herring			 * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
200724ba675SRob Herring			 * today's display need DE, disable LCD_M1
201724ba675SRob Herring			 */
202724ba675SRob Herring			lm1 {
203724ba675SRob Herring				nvidia,pins = "lm1";
204724ba675SRob Herring				nvidia,function = "rsvd3";
205724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
206724ba675SRob Herring			};
207724ba675SRob Herring
208724ba675SRob Herring			/* Colibri LCD (L_* resp. LDD<*>) */
209724ba675SRob Herring			lcd {
210724ba675SRob Herring				nvidia,pins = "ld0", "ld1", "ld2", "ld3",
211724ba675SRob Herring					      "ld4", "ld5", "ld6", "ld7",
212724ba675SRob Herring					      "ld8", "ld9", "ld10", "ld11",
213724ba675SRob Herring					      "ld12", "ld13", "ld14", "ld15",
214724ba675SRob Herring					      "ld16", "ld17", "lhs", "lsc0",
215724ba675SRob Herring					      "lspi", "lvs";
216724ba675SRob Herring				nvidia,function = "displaya";
217724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
218724ba675SRob Herring			};
219724ba675SRob Herring			/* Colibri LCD (Optional 24 BPP Support) */
220724ba675SRob Herring			lcd-24 {
221724ba675SRob Herring				nvidia,pins = "ldi", "lhp0", "lhp1", "lhp2",
222724ba675SRob Herring					      "lpp", "lvp1";
223724ba675SRob Herring				nvidia,function = "displaya";
224724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
225724ba675SRob Herring			};
226724ba675SRob Herring
227724ba675SRob Herring			/* Colibri MMC */
228724ba675SRob Herring			mmc {
229724ba675SRob Herring				nvidia,pins = "atb", "gma";
230724ba675SRob Herring				nvidia,function = "sdio4";
231724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
232724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
233724ba675SRob Herring			};
234724ba675SRob Herring
235724ba675SRob Herring			/* Colibri MMCCD */
236724ba675SRob Herring			mmccd {
237724ba675SRob Herring				nvidia,pins = "gmb";
238724ba675SRob Herring				nvidia,function = "gmi_int";
239724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
240724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
241724ba675SRob Herring			};
242724ba675SRob Herring
243724ba675SRob Herring			/* Colibri MMC (Optional 8-bit) */
244724ba675SRob Herring			mmc-8bit {
245724ba675SRob Herring				nvidia,pins = "gme";
246724ba675SRob Herring				nvidia,function = "sdio4";
247724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
248724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
249724ba675SRob Herring			};
250724ba675SRob Herring
251724ba675SRob Herring			/*
252724ba675SRob Herring			 * Colibri Parallel Camera (Optional)
253724ba675SRob Herring			 * pins multiplexed with others and therefore disabled
254724ba675SRob Herring			 * Note: dta used for BL_ON by default
255724ba675SRob Herring			 */
256724ba675SRob Herring			cif-mclk {
257724ba675SRob Herring				nvidia,pins = "csus";
258724ba675SRob Herring				nvidia,function = "vi_sensor_clk";
259724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
260724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
261724ba675SRob Herring			};
262724ba675SRob Herring			cif {
263724ba675SRob Herring				nvidia,pins = "dtb", "dtc", "dtd";
264724ba675SRob Herring				nvidia,function = "vi";
265724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
266724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
267724ba675SRob Herring			};
268724ba675SRob Herring
269724ba675SRob Herring			/* Colibri PWM<C>, PWM<D> */
270724ba675SRob Herring			sdb_sdd {
271724ba675SRob Herring				nvidia,pins = "sdb", "sdd";
272724ba675SRob Herring				nvidia,function = "pwm";
273724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
274724ba675SRob Herring			};
275724ba675SRob Herring
276724ba675SRob Herring			/* Colibri SSP */
277724ba675SRob Herring			ssp {
278724ba675SRob Herring				nvidia,pins = "slxa", "slxc", "slxd", "slxk";
279724ba675SRob Herring				nvidia,function = "spi4";
280724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
281724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
282724ba675SRob Herring			};
283724ba675SRob Herring
284724ba675SRob Herring			/* Colibri UART-A */
285724ba675SRob Herring			uart-a {
286724ba675SRob Herring				nvidia,pins = "sdio1";
287724ba675SRob Herring				nvidia,function = "uarta";
288724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
289724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
290724ba675SRob Herring			};
291724ba675SRob Herring			uart-a-dsr {
292724ba675SRob Herring				nvidia,pins = "lpw1";
293724ba675SRob Herring				nvidia,function = "rsvd3";
294724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
295724ba675SRob Herring			};
296724ba675SRob Herring			uart-a-dcd {
297724ba675SRob Herring				nvidia,pins = "lpw2";
298724ba675SRob Herring				nvidia,function = "hdmi";
299724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
300724ba675SRob Herring			};
301724ba675SRob Herring
302724ba675SRob Herring			/* Colibri UART-B */
303724ba675SRob Herring			uart-b {
304724ba675SRob Herring				nvidia,pins = "gmc";
305724ba675SRob Herring				nvidia,function = "uartd";
306724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
307724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
308724ba675SRob Herring			};
309724ba675SRob Herring
310724ba675SRob Herring			/* Colibri UART-C */
311724ba675SRob Herring			uart-c {
312724ba675SRob Herring				nvidia,pins = "uad";
313724ba675SRob Herring				nvidia,function = "irda";
314724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
315724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
316724ba675SRob Herring			};
317724ba675SRob Herring
318724ba675SRob Herring			/* Colibri USB_CDET */
319724ba675SRob Herring			usb-cdet {
320724ba675SRob Herring				nvidia,pins = "spdo";
321724ba675SRob Herring				nvidia,function = "rsvd2";
322724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
323724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
324724ba675SRob Herring			};
325724ba675SRob Herring
326724ba675SRob Herring			/* Colibri USBH_OC */
327724ba675SRob Herring			usbh-oc {
328724ba675SRob Herring				nvidia,pins = "spih";
329724ba675SRob Herring				nvidia,function = "spi2_alt";
330724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
331724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
332724ba675SRob Herring			};
333724ba675SRob Herring
334724ba675SRob Herring			/* Colibri USBH_PEN */
335724ba675SRob Herring			usbh-pen {
336724ba675SRob Herring				nvidia,pins = "spig";
337724ba675SRob Herring				nvidia,function = "spi2_alt";
338724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
339724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
340724ba675SRob Herring			};
341724ba675SRob Herring
342724ba675SRob Herring			/* Colibri VGA not supported */
343724ba675SRob Herring			vga {
344724ba675SRob Herring				nvidia,pins = "crtp";
345724ba675SRob Herring				nvidia,function = "crt";
346724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
347724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
348724ba675SRob Herring			};
349724ba675SRob Herring
350724ba675SRob Herring			/* I2C3 (Optional) */
351724ba675SRob Herring			i2c3 {
352724ba675SRob Herring				nvidia,pins = "dtf";
353724ba675SRob Herring				nvidia,function = "i2c3";
354724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
355724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
356724ba675SRob Herring			};
357724ba675SRob Herring
358724ba675SRob Herring			/* JTAG_RTCK */
359724ba675SRob Herring			jtag-rtck {
360724ba675SRob Herring				nvidia,pins = "gpu7";
361724ba675SRob Herring				nvidia,function = "rtck";
362724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
363724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
364724ba675SRob Herring			};
365724ba675SRob Herring
366724ba675SRob Herring			/*
367724ba675SRob Herring			 * LAN_RESET, LAN_EXT_WAKEUP and LAN_PME
368724ba675SRob Herring			 * (All On-module)
369724ba675SRob Herring			 */
370724ba675SRob Herring			gpio-gpv {
371724ba675SRob Herring				nvidia,pins = "gpv";
372724ba675SRob Herring				nvidia,function = "rsvd2";
373724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
374724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
375724ba675SRob Herring			};
376724ba675SRob Herring
377724ba675SRob Herring			/*
378724ba675SRob Herring			 * LAN_V_BUS, VDD_FAULT, BATT_FAULT, WM9712 PENDOWN
379724ba675SRob Herring			 * (All On-module); Colibri CAN_INT
380724ba675SRob Herring			 */
381724ba675SRob Herring			gpio-dte {
382724ba675SRob Herring				nvidia,pins = "dte";
383724ba675SRob Herring				nvidia,function = "rsvd1";
384724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
385724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
386724ba675SRob Herring			};
387724ba675SRob Herring
388724ba675SRob Herring			/* NAND (On-module) */
389724ba675SRob Herring			nand {
390724ba675SRob Herring				nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
391724ba675SRob Herring					      "kbce", "kbcf";
392724ba675SRob Herring				nvidia,function = "nand";
393724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
394724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
395724ba675SRob Herring			};
396724ba675SRob Herring
397724ba675SRob Herring			/* Onewire (Optional) */
398724ba675SRob Herring			owr {
399724ba675SRob Herring				nvidia,pins = "owc";
400724ba675SRob Herring				nvidia,function = "owr";
401724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
402724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
403724ba675SRob Herring			};
404724ba675SRob Herring
405724ba675SRob Herring			/* Power I2C (On-module) */
406724ba675SRob Herring			i2cp {
407724ba675SRob Herring				nvidia,pins = "i2cp";
408724ba675SRob Herring				nvidia,function = "i2cp";
409724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
410724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
411724ba675SRob Herring			};
412724ba675SRob Herring
413724ba675SRob Herring			/* RESET_OUT */
414724ba675SRob Herring			reset-out {
415724ba675SRob Herring				nvidia,pins = "ata";
416724ba675SRob Herring				nvidia,function = "gmi";
417724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
418724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
419724ba675SRob Herring			};
420724ba675SRob Herring
421724ba675SRob Herring			/*
422724ba675SRob Herring			 * SPI1 (Optional)
423724ba675SRob Herring			 * Note: spid and spie used for Colibri Address/Data
424724ba675SRob Herring			 *       Bus (GMI)
425724ba675SRob Herring			 */
426724ba675SRob Herring			spi1 {
427724ba675SRob Herring				nvidia,pins = "spid", "spie", "spif";
428724ba675SRob Herring				nvidia,function = "spi1";
429724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
430724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
431724ba675SRob Herring			};
432724ba675SRob Herring
433724ba675SRob Herring			/*
434724ba675SRob Herring			 * THERMD_ALERT# (On-module), unlatched I2C address pin
435724ba675SRob Herring			 * of LM95245 temperature sensor therefore requires
436724ba675SRob Herring			 * disabling for now
437724ba675SRob Herring			 */
438724ba675SRob Herring			lvp0 {
439724ba675SRob Herring				nvidia,pins = "lvp0";
440724ba675SRob Herring				nvidia,function = "rsvd3";
441724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_ENABLE>;
442724ba675SRob Herring			};
443724ba675SRob Herring		};
444724ba675SRob Herring	};
445724ba675SRob Herring
446724ba675SRob Herring	tegra_ac97: ac97@70002000 {
447724ba675SRob Herring		status = "okay";
448724ba675SRob Herring		nvidia,codec-reset-gpio =
449724ba675SRob Herring			<&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
450724ba675SRob Herring		nvidia,codec-sync-gpio =
451724ba675SRob Herring			<&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
452724ba675SRob Herring	};
453724ba675SRob Herring
454724ba675SRob Herring	serial@70006040 {
455724ba675SRob Herring		compatible = "nvidia,tegra20-hsuart";
456*500b861dSThierry Reding		reset-names = "serial";
457724ba675SRob Herring		/delete-property/ reg-shift;
458724ba675SRob Herring	};
459724ba675SRob Herring
460724ba675SRob Herring	serial@70006300 {
461724ba675SRob Herring		compatible = "nvidia,tegra20-hsuart";
462*500b861dSThierry Reding		reset-names = "serial";
463724ba675SRob Herring		/delete-property/ reg-shift;
464724ba675SRob Herring	};
465724ba675SRob Herring
466724ba675SRob Herring	nand-controller@70008000 {
467724ba675SRob Herring		status = "okay";
468724ba675SRob Herring
469724ba675SRob Herring		nand@0 {
470724ba675SRob Herring			reg = <0>;
471724ba675SRob Herring			#address-cells = <1>;
472724ba675SRob Herring			#size-cells = <1>;
473724ba675SRob Herring			nand-bus-width = <8>;
474724ba675SRob Herring			nand-on-flash-bbt;
475724ba675SRob Herring			nand-ecc-algo = "bch";
476724ba675SRob Herring			nand-is-boot-medium;
477724ba675SRob Herring			nand-ecc-maximize;
478724ba675SRob Herring			wp-gpios = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_LOW>;
479724ba675SRob Herring		};
480724ba675SRob Herring	};
481724ba675SRob Herring
482724ba675SRob Herring	/*
483724ba675SRob Herring	 * GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
484724ba675SRob Herring	 * board)
485724ba675SRob Herring	 */
486724ba675SRob Herring	i2c@7000c000 {
487724ba675SRob Herring		clock-frequency = <400000>;
488724ba675SRob Herring	};
489724ba675SRob Herring
490724ba675SRob Herring	/* DDC_SCL/SDA on X3 pin 15/16 (e.g. display EDID) */
491724ba675SRob Herring	hdmi_ddc: i2c@7000c400 {
492724ba675SRob Herring		clock-frequency = <10000>;
493724ba675SRob Herring	};
494724ba675SRob Herring
495724ba675SRob Herring	/* GEN2_I2C: unused */
496724ba675SRob Herring
497724ba675SRob Herring	/* CAM/GEN3_I2C: used as EXT_IO1/2 GPIOs on SODIMM pin 133/127 */
498724ba675SRob Herring
499724ba675SRob Herring	/* PWR_I2C: power I2C to PMIC and temperature sensor (On-module) */
500724ba675SRob Herring	i2c@7000d000 {
501724ba675SRob Herring		status = "okay";
502724ba675SRob Herring		clock-frequency = <100000>;
503724ba675SRob Herring
504724ba675SRob Herring		pmic@34 {
505724ba675SRob Herring			compatible = "ti,tps6586x";
506724ba675SRob Herring			reg = <0x34>;
507724ba675SRob Herring			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
508724ba675SRob Herring			ti,system-power-controller;
509724ba675SRob Herring			#gpio-cells = <2>;
510724ba675SRob Herring			gpio-controller;
511724ba675SRob Herring			sys-supply = <&reg_module_3v3>;
512724ba675SRob Herring			vin-sm0-supply = <&reg_3v3_vsys>;
513724ba675SRob Herring			vin-sm1-supply = <&reg_3v3_vsys>;
514724ba675SRob Herring			vin-sm2-supply = <&reg_3v3_vsys>;
515724ba675SRob Herring			vinldo01-supply = <&reg_1v8_vdd_ddr2>;
516724ba675SRob Herring			vinldo23-supply = <&reg_module_3v3>;
517724ba675SRob Herring			vinldo4-supply = <&reg_module_3v3>;
518724ba675SRob Herring			vinldo678-supply = <&reg_module_3v3>;
519724ba675SRob Herring			vinldo9-supply = <&reg_module_3v3>;
520724ba675SRob Herring
521724ba675SRob Herring			regulators {
522724ba675SRob Herring				reg_3v3_vsys: sys {
523724ba675SRob Herring					regulator-name = "VSYS_3.3V";
524724ba675SRob Herring					regulator-always-on;
525724ba675SRob Herring				};
526724ba675SRob Herring
527724ba675SRob Herring				vdd_core: sm0 {
528724ba675SRob Herring					regulator-name = "VDD_CORE_1.2V";
529724ba675SRob Herring					regulator-min-microvolt = <1200000>;
530724ba675SRob Herring					regulator-max-microvolt = <1200000>;
531724ba675SRob Herring					regulator-always-on;
532724ba675SRob Herring				};
533724ba675SRob Herring
534724ba675SRob Herring				sm1 {
535724ba675SRob Herring					regulator-name = "VDD_CPU_1.0V";
536724ba675SRob Herring					regulator-min-microvolt = <1000000>;
537724ba675SRob Herring					regulator-max-microvolt = <1000000>;
538724ba675SRob Herring					regulator-always-on;
539724ba675SRob Herring				};
540724ba675SRob Herring
541724ba675SRob Herring				reg_1v8_vdd_ddr2: sm2 {
542724ba675SRob Herring					regulator-name = "VDD_DDR2_1.8V";
543724ba675SRob Herring					regulator-min-microvolt = <1800000>;
544724ba675SRob Herring					regulator-max-microvolt = <1800000>;
545724ba675SRob Herring					regulator-always-on;
546724ba675SRob Herring				};
547724ba675SRob Herring
548724ba675SRob Herring				/* LDO0 is not connected to anything */
549724ba675SRob Herring
550724ba675SRob Herring				/*
551724ba675SRob Herring				 * +3.3V_ENABLE_N switching via FET:
552724ba675SRob Herring				 * AVDD_AUDIO_S and +3.3V
553724ba675SRob Herring				 * see also +3.3V fixed supply
554724ba675SRob Herring				 */
555724ba675SRob Herring				ldo1 {
556724ba675SRob Herring					regulator-name = "AVDD_PLL_1.1V";
557724ba675SRob Herring					regulator-min-microvolt = <1100000>;
558724ba675SRob Herring					regulator-max-microvolt = <1100000>;
559724ba675SRob Herring					regulator-always-on;
560724ba675SRob Herring				};
561724ba675SRob Herring
562724ba675SRob Herring				ldo2 {
563724ba675SRob Herring					regulator-name = "VDD_RTC_1.2V";
564724ba675SRob Herring					regulator-min-microvolt = <1200000>;
565724ba675SRob Herring					regulator-max-microvolt = <1200000>;
566724ba675SRob Herring				};
567724ba675SRob Herring
568724ba675SRob Herring				/* LDO3 is not connected to anything */
569724ba675SRob Herring
570724ba675SRob Herring				ldo4 {
571724ba675SRob Herring					regulator-name = "VDDIO_SYS_1.8V";
572724ba675SRob Herring					regulator-min-microvolt = <1800000>;
573724ba675SRob Herring					regulator-max-microvolt = <1800000>;
574724ba675SRob Herring					regulator-always-on;
575724ba675SRob Herring				};
576724ba675SRob Herring
577724ba675SRob Herring				/* Switched via FET from regular +3.3V */
578724ba675SRob Herring				ldo5 {
579724ba675SRob Herring					regulator-name = "+3.3V_USB";
580724ba675SRob Herring					regulator-min-microvolt = <3300000>;
581724ba675SRob Herring					regulator-max-microvolt = <3300000>;
582724ba675SRob Herring					regulator-always-on;
583724ba675SRob Herring				};
584724ba675SRob Herring
585724ba675SRob Herring				ldo6 {
586724ba675SRob Herring					regulator-name = "AVDD_VDAC_2.85V";
587724ba675SRob Herring					regulator-min-microvolt = <2850000>;
588724ba675SRob Herring					regulator-max-microvolt = <2850000>;
589724ba675SRob Herring				};
590724ba675SRob Herring
591724ba675SRob Herring				reg_3v3_avdd_hdmi: ldo7 {
592724ba675SRob Herring					regulator-name = "AVDD_HDMI_3.3V";
593724ba675SRob Herring					regulator-min-microvolt = <3300000>;
594724ba675SRob Herring					regulator-max-microvolt = <3300000>;
595724ba675SRob Herring				};
596724ba675SRob Herring
597724ba675SRob Herring				reg_1v8_avdd_hdmi_pll: ldo8 {
598724ba675SRob Herring					regulator-name = "AVDD_HDMI_PLL_1.8V";
599724ba675SRob Herring					regulator-min-microvolt = <1800000>;
600724ba675SRob Herring					regulator-max-microvolt = <1800000>;
601724ba675SRob Herring				};
602724ba675SRob Herring
603724ba675SRob Herring				ldo9 {
604724ba675SRob Herring					regulator-name = "VDDIO_RX_DDR_2.85V";
605724ba675SRob Herring					regulator-min-microvolt = <2850000>;
606724ba675SRob Herring					regulator-max-microvolt = <2850000>;
607724ba675SRob Herring					regulator-always-on;
608724ba675SRob Herring				};
609724ba675SRob Herring
610724ba675SRob Herring				ldo_rtc {
611724ba675SRob Herring					regulator-name = "VCC_BATT";
612724ba675SRob Herring					regulator-min-microvolt = <3300000>;
613724ba675SRob Herring					regulator-max-microvolt = <3300000>;
614724ba675SRob Herring					regulator-always-on;
615724ba675SRob Herring				};
616724ba675SRob Herring			};
617724ba675SRob Herring		};
618724ba675SRob Herring
619724ba675SRob Herring		/* LM95245 temperature sensor */
620724ba675SRob Herring		temp-sensor@4c {
621724ba675SRob Herring			compatible = "national,lm95245";
622724ba675SRob Herring			reg = <0x4c>;
623724ba675SRob Herring		};
624724ba675SRob Herring	};
625724ba675SRob Herring
626724ba675SRob Herring	pmc@7000e400 {
627724ba675SRob Herring		nvidia,suspend-mode = <1>;
628724ba675SRob Herring		nvidia,cpu-pwr-good-time = <5000>;
629724ba675SRob Herring		nvidia,cpu-pwr-off-time = <5000>;
630724ba675SRob Herring		nvidia,core-pwr-good-time = <3845 3845>;
631724ba675SRob Herring		nvidia,core-pwr-off-time = <3875>;
632724ba675SRob Herring		nvidia,sys-clock-req-active-high;
633724ba675SRob Herring		core-supply = <&vdd_core>;
634724ba675SRob Herring
635724ba675SRob Herring		/* Set SLEEP MODE bit in SUPPLYENE register of TPS658643 PMIC */
636724ba675SRob Herring		i2c-thermtrip {
637724ba675SRob Herring			nvidia,i2c-controller-id = <3>;
638724ba675SRob Herring			nvidia,bus-addr = <0x34>;
639724ba675SRob Herring			nvidia,reg-addr = <0x14>;
640724ba675SRob Herring			nvidia,reg-data = <0x8>;
641724ba675SRob Herring		};
642724ba675SRob Herring	};
643724ba675SRob Herring
644724ba675SRob Herring	memory-controller@7000f400 {
645724ba675SRob Herring		emc-table@83250 {
646724ba675SRob Herring			reg = <83250>;
647724ba675SRob Herring			compatible = "nvidia,tegra20-emc-table";
648724ba675SRob Herring			clock-frequency = <83250>;
649724ba675SRob Herring			nvidia,emc-registers =   <0x00000005 0x00000011
650724ba675SRob Herring				0x00000004 0x00000002 0x00000004 0x00000004
651724ba675SRob Herring				0x00000001 0x0000000a 0x00000002 0x00000002
652724ba675SRob Herring				0x00000001 0x00000001 0x00000003 0x00000004
653724ba675SRob Herring				0x00000003 0x00000009 0x0000000c 0x0000025f
654724ba675SRob Herring				0x00000000 0x00000003 0x00000003 0x00000002
655724ba675SRob Herring				0x00000002 0x00000001 0x00000008 0x000000c8
656724ba675SRob Herring				0x00000003 0x00000005 0x00000003 0x0000000c
657724ba675SRob Herring				0x00000002 0x00000000 0x00000000 0x00000002
658724ba675SRob Herring				0x00000000 0x00000000 0x00000083 0x00520006
659724ba675SRob Herring				0x00000010 0x00000008 0x00000000 0x00000000
660724ba675SRob Herring				0x00000000 0x00000000 0x00000000 0x00000000>;
661724ba675SRob Herring		};
662724ba675SRob Herring		emc-table@133200 {
663724ba675SRob Herring			reg = <133200>;
664724ba675SRob Herring			compatible = "nvidia,tegra20-emc-table";
665724ba675SRob Herring			clock-frequency = <133200>;
666724ba675SRob Herring			nvidia,emc-registers =   <0x00000008 0x00000019
667724ba675SRob Herring				0x00000006 0x00000002 0x00000004 0x00000004
668724ba675SRob Herring				0x00000001 0x0000000a 0x00000002 0x00000002
669724ba675SRob Herring				0x00000002 0x00000001 0x00000003 0x00000004
670724ba675SRob Herring				0x00000003 0x00000009 0x0000000c 0x0000039f
671724ba675SRob Herring				0x00000000 0x00000003 0x00000003 0x00000002
672724ba675SRob Herring				0x00000002 0x00000001 0x00000008 0x000000c8
673724ba675SRob Herring				0x00000003 0x00000007 0x00000003 0x0000000c
674724ba675SRob Herring				0x00000002 0x00000000 0x00000000 0x00000002
675724ba675SRob Herring				0x00000000 0x00000000 0x00000083 0x00510006
676724ba675SRob Herring				0x00000010 0x00000008 0x00000000 0x00000000
677724ba675SRob Herring				0x00000000 0x00000000 0x00000000 0x00000000>;
678724ba675SRob Herring		};
679724ba675SRob Herring		emc-table@166500 {
680724ba675SRob Herring			reg = <166500>;
681724ba675SRob Herring			compatible = "nvidia,tegra20-emc-table";
682724ba675SRob Herring			clock-frequency = <166500>;
683724ba675SRob Herring			nvidia,emc-registers =   <0x0000000a 0x00000021
684724ba675SRob Herring				0x00000008 0x00000003 0x00000004 0x00000004
685724ba675SRob Herring				0x00000002 0x0000000a 0x00000003 0x00000003
686724ba675SRob Herring				0x00000002 0x00000001 0x00000003 0x00000004
687724ba675SRob Herring				0x00000003 0x00000009 0x0000000c 0x000004df
688724ba675SRob Herring				0x00000000 0x00000003 0x00000003 0x00000003
689724ba675SRob Herring				0x00000003 0x00000001 0x00000009 0x000000c8
690724ba675SRob Herring				0x00000003 0x00000009 0x00000004 0x0000000c
691724ba675SRob Herring				0x00000002 0x00000000 0x00000000 0x00000002
692724ba675SRob Herring				0x00000000 0x00000000 0x00000083 0x004f0006
693724ba675SRob Herring				0x00000010 0x00000008 0x00000000 0x00000000
694724ba675SRob Herring				0x00000000 0x00000000 0x00000000 0x00000000>;
695724ba675SRob Herring		};
696724ba675SRob Herring		emc-table@333000 {
697724ba675SRob Herring			reg = <333000>;
698724ba675SRob Herring			compatible = "nvidia,tegra20-emc-table";
699724ba675SRob Herring			clock-frequency = <333000>;
700724ba675SRob Herring			nvidia,emc-registers =   <0x00000014 0x00000041
701724ba675SRob Herring				0x0000000f 0x00000005 0x00000004 0x00000005
702724ba675SRob Herring				0x00000003 0x0000000a 0x00000005 0x00000005
703724ba675SRob Herring				0x00000004 0x00000001 0x00000003 0x00000004
704724ba675SRob Herring				0x00000003 0x00000009 0x0000000c 0x000009ff
705724ba675SRob Herring				0x00000000 0x00000003 0x00000003 0x00000005
706724ba675SRob Herring				0x00000005 0x00000001 0x0000000e 0x000000c8
707724ba675SRob Herring				0x00000003 0x00000011 0x00000006 0x0000000c
708724ba675SRob Herring				0x00000002 0x00000000 0x00000000 0x00000002
709724ba675SRob Herring				0x00000000 0x00000000 0x00000083 0x00380006
710724ba675SRob Herring				0x00000010 0x00000008 0x00000000 0x00000000
711724ba675SRob Herring				0x00000000 0x00000000 0x00000000 0x00000000>;
712724ba675SRob Herring		};
713724ba675SRob Herring	};
714724ba675SRob Herring
715724ba675SRob Herring	/* EHCI instance 1: ULPI PHY -> AX88772B (On-module) */
716724ba675SRob Herring	usb@c5004000 {
717724ba675SRob Herring		status = "okay";
718724ba675SRob Herring		#address-cells = <1>;
719724ba675SRob Herring		#size-cells = <0>;
720724ba675SRob Herring
721724ba675SRob Herring		ethernet@1 {
722724ba675SRob Herring			compatible = "usbb95,772b";
723724ba675SRob Herring			reg = <1>;
724724ba675SRob Herring			local-mac-address = [00 00 00 00 00 00];
725724ba675SRob Herring		};
726724ba675SRob Herring	};
727724ba675SRob Herring
728724ba675SRob Herring	usb-phy@c5004000 {
729724ba675SRob Herring		status = "okay";
730724ba675SRob Herring		nvidia,phy-reset-gpio =
731724ba675SRob Herring			<&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
732724ba675SRob Herring		vbus-supply = <&reg_lan_v_bus>;
733724ba675SRob Herring	};
734724ba675SRob Herring
735724ba675SRob Herring	clk32k_in: clock-xtal3 {
736724ba675SRob Herring		compatible = "fixed-clock";
737724ba675SRob Herring		#clock-cells = <0>;
738724ba675SRob Herring		clock-frequency = <32768>;
739724ba675SRob Herring	};
740724ba675SRob Herring
741724ba675SRob Herring	opp-table-emc {
742724ba675SRob Herring		/delete-node/ opp-760000000;
743724ba675SRob Herring	};
744724ba675SRob Herring
745724ba675SRob Herring	reg_lan_v_bus: regulator-lan-v-bus {
746724ba675SRob Herring		compatible = "regulator-fixed";
747724ba675SRob Herring		regulator-name = "LAN_V_BUS";
748724ba675SRob Herring		regulator-min-microvolt = <5000000>;
749724ba675SRob Herring		regulator-max-microvolt = <5000000>;
750724ba675SRob Herring		enable-active-high;
751724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
752724ba675SRob Herring	};
753724ba675SRob Herring
754724ba675SRob Herring	reg_module_3v3: regulator-module-3v3 {
755724ba675SRob Herring		compatible = "regulator-fixed";
756724ba675SRob Herring		regulator-name = "+V3.3";
757724ba675SRob Herring		regulator-min-microvolt = <3300000>;
758724ba675SRob Herring		regulator-max-microvolt = <3300000>;
759724ba675SRob Herring		regulator-always-on;
760724ba675SRob Herring	};
761724ba675SRob Herring
762724ba675SRob Herring	sound {
763724ba675SRob Herring		compatible = "nvidia,tegra-audio-wm9712-colibri_t20",
764724ba675SRob Herring			     "nvidia,tegra-audio-wm9712";
765724ba675SRob Herring		nvidia,model = "Toradex Colibri T20";
766724ba675SRob Herring		nvidia,audio-routing =
767724ba675SRob Herring			"Headphone", "HPOUTL",
768724ba675SRob Herring			"Headphone", "HPOUTR",
769724ba675SRob Herring			"LineIn", "LINEINL",
770724ba675SRob Herring			"LineIn", "LINEINR",
771724ba675SRob Herring			"Mic", "MIC1";
772724ba675SRob Herring		nvidia,ac97-controller = <&tegra_ac97>;
773724ba675SRob Herring		clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
774724ba675SRob Herring			 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
775724ba675SRob Herring			 <&tegra_car TEGRA20_CLK_CDEV1>;
776724ba675SRob Herring		clock-names = "pll_a", "pll_a_out0", "mclk";
777724ba675SRob Herring	};
778724ba675SRob Herring};
779