1// SPDX-License-Identifier: GPL-2.0
2#include "tegra30.dtsi"
3
4/*
5 * Toradex Colibri T30 Module Device Tree
6 * Compatible for Revisions V1.1B, V1.1C, V1.1D, V1.1E, V1.1F; IT: V1.1A, V1.1B
7 */
8/ {
9	memory@80000000 {
10		reg = <0x80000000 0x40000000>;
11	};
12
13	host1x@50000000 {
14		hdmi@54280000 {
15			nvidia,ddc-i2c-bus = <&hdmi_ddc>;
16			nvidia,hpd-gpio =
17				<&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
18			pll-supply = <&reg_1v8_avdd_hdmi_pll>;
19			vdd-supply = <&reg_3v3_avdd_hdmi>;
20		};
21	};
22
23	pinmux@70000868 {
24		pinctrl-names = "default";
25		pinctrl-0 = <&state_default>;
26
27		state_default: pinmux {
28			/* Analogue Audio (On-module) */
29			clk1-out-pw4 {
30				nvidia,pins = "clk1_out_pw4";
31				nvidia,function = "extperiph1";
32				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
33				nvidia,tristate = <TEGRA_PIN_DISABLE>;
34				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
35			};
36			dap3-fs-pp0 {
37				nvidia,pins = "dap3_fs_pp0",
38					      "dap3_sclk_pp3",
39					      "dap3_din_pp1",
40					      "dap3_dout_pp2";
41				nvidia,function = "i2s2";
42				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
43				nvidia,tristate = <TEGRA_PIN_DISABLE>;
44			};
45
46			/* Colibri Address/Data Bus (GMI) */
47			gmi-ad0-pg0 {
48				nvidia,pins = "gmi_ad0_pg0",
49					      "gmi_ad2_pg2",
50					      "gmi_ad3_pg3",
51					      "gmi_ad4_pg4",
52					      "gmi_ad5_pg5",
53					      "gmi_ad6_pg6",
54					      "gmi_ad7_pg7",
55					      "gmi_ad8_ph0",
56					      "gmi_ad9_ph1",
57					      "gmi_ad10_ph2",
58					      "gmi_ad11_ph3",
59					      "gmi_ad12_ph4",
60					      "gmi_ad13_ph5",
61					      "gmi_ad14_ph6",
62					      "gmi_ad15_ph7",
63					      "gmi_adv_n_pk0",
64					      "gmi_clk_pk1",
65					      "gmi_cs4_n_pk2",
66					      "gmi_cs2_n_pk3",
67					      "gmi_iordy_pi5",
68					      "gmi_oe_n_pi1",
69					      "gmi_wait_pi7",
70					      "gmi_wr_n_pi0",
71					      "dap1_fs_pn0",
72					      "dap1_din_pn1",
73					      "dap1_dout_pn2",
74					      "dap1_sclk_pn3",
75					      "dap2_fs_pa2",
76					      "dap2_sclk_pa3",
77					      "dap2_din_pa4",
78					      "dap2_dout_pa5",
79					      "spi1_sck_px5",
80					      "spi1_mosi_px4",
81					      "spi1_cs0_n_px6",
82					      "spi2_cs0_n_px3",
83					      "spi2_miso_px1",
84					      "spi2_mosi_px0",
85					      "spi2_sck_px2",
86					      "uart2_cts_n_pj5",
87					      "uart2_rts_n_pj6";
88				nvidia,function = "gmi";
89				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
90				nvidia,tristate = <TEGRA_PIN_DISABLE>;
91				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
92			};
93			/* Further pins may be used as GPIOs */
94			dap4-din-pp5 {
95				nvidia,pins = "dap4_din_pp5",
96					      "dap4_dout_pp6",
97					      "dap4_fs_pp4",
98					      "dap4_sclk_pp7",
99					      "pbb7",
100					      "sdmmc1_clk_pz0",
101					      "sdmmc1_cmd_pz1",
102					      "sdmmc1_dat0_py7",
103					      "sdmmc1_dat1_py6",
104					      "sdmmc1_dat3_py4",
105					      "uart3_cts_n_pa1",
106					      "uart3_txd_pw6",
107					      "uart3_rxd_pw7";
108				nvidia,function = "rsvd2";
109				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
110				nvidia,tristate = <TEGRA_PIN_DISABLE>;
111				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
112			};
113			lcd-d18-pm2 {
114				nvidia,pins = "lcd_d18_pm2",
115					      "lcd_d19_pm3",
116					      "lcd_d20_pm4",
117					      "lcd_d21_pm5",
118					      "lcd_d22_pm6",
119					      "lcd_d23_pm7",
120					      "lcd_dc0_pn6",
121					      "pex_l2_clkreq_n_pcc7";
122				nvidia,function = "rsvd3";
123				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
124				nvidia,tristate = <TEGRA_PIN_DISABLE>;
125				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
126			};
127			lcd-cs0-n-pn4 {
128				nvidia,pins = "lcd_cs0_n_pn4",
129					      "lcd_sdin_pz2",
130					      "pu0",
131					      "pu1",
132					      "pu2",
133					      "pu3",
134					      "pu4",
135					      "pu5",
136					      "pu6",
137					      "spi1_miso_px7",
138					      "uart3_rts_n_pc0";
139				nvidia,function = "rsvd4";
140				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
141				nvidia,tristate = <TEGRA_PIN_DISABLE>;
142				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
143			};
144			lcd-pwr0-pb2 {
145				nvidia,pins = "lcd_pwr0_pb2",
146					      "lcd_sck_pz4",
147					      "lcd_sdout_pn5",
148					      "lcd_wr_n_pz3";
149				nvidia,function = "hdcp";
150				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
151				nvidia,tristate = <TEGRA_PIN_DISABLE>;
152				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
153			};
154			pbb4 {
155				nvidia,pins = "pbb4",
156					      "pbb5",
157					      "pbb6";
158				nvidia,function = "displayb";
159				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
160				nvidia,tristate = <TEGRA_PIN_DISABLE>;
161				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
162			};
163			/* Multiplexed RDnWR and therefore disabled */
164			lcd-cs1-n-pw0 {
165				nvidia,pins = "lcd_cs1_n_pw0";
166				nvidia,function = "rsvd4";
167				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
168				nvidia,tristate = <TEGRA_PIN_ENABLE>;
169				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
170			};
171			/* Multiplexed GMI_CLK and therefore disabled */
172			owr {
173				nvidia,pins = "owr";
174				nvidia,function = "rsvd3";
175				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
176				nvidia,tristate = <TEGRA_PIN_ENABLE>;
177				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
178			};
179			/* Tri-stating GMI_WR_N on nPWE SODIMM pin 99 */
180			sdmmc3-dat4-pd1 {
181				nvidia,pins = "sdmmc3_dat4_pd1";
182				nvidia,function = "sdmmc3";
183				nvidia,pull = <TEGRA_PIN_PULL_UP>;
184				nvidia,tristate = <TEGRA_PIN_ENABLE>;
185				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
186			};
187			/* Not tri-stating GMI_WR_N on RDnWR SODIMM pin 93 */
188			sdmmc3-dat5-pd0 {
189				nvidia,pins = "sdmmc3_dat5_pd0";
190				nvidia,function = "sdmmc3";
191				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
192				nvidia,tristate = <TEGRA_PIN_ENABLE>;
193				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
194			};
195
196			/* Colibri BL_ON */
197			pv2 {
198				nvidia,pins = "pv2";
199				nvidia,function = "rsvd4";
200				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
201				nvidia,tristate = <TEGRA_PIN_DISABLE>;
202			};
203
204			/* Colibri Backlight PWM<A> */
205			sdmmc3-dat3-pb4 {
206				nvidia,pins = "sdmmc3_dat3_pb4";
207				nvidia,function = "pwm0";
208				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
209				nvidia,tristate = <TEGRA_PIN_DISABLE>;
210			};
211
212			/* Colibri CAN_INT */
213			kb-row8-ps0 {
214				nvidia,pins = "kb_row8_ps0";
215				nvidia,function = "kbc";
216				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
217				nvidia,tristate = <TEGRA_PIN_DISABLE>;
218				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
219			};
220
221			/* Colibri DDC */
222			ddc-scl-pv4 {
223				nvidia,pins = "ddc_scl_pv4",
224					      "ddc_sda_pv5";
225				nvidia,function = "i2c4";
226				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
227				nvidia,tristate = <TEGRA_PIN_DISABLE>;
228				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
229			};
230
231			/* Colibri EXT_IO* */
232			gen2-i2c-scl-pt5 {
233				nvidia,pins = "gen2_i2c_scl_pt5",
234					      "gen2_i2c_sda_pt6";
235				nvidia,function = "rsvd4";
236				nvidia,open-drain = <TEGRA_PIN_DISABLE>;
237				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
238				nvidia,tristate = <TEGRA_PIN_DISABLE>;
239				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
240			};
241			spdif-in-pk6 {
242				nvidia,pins =	"spdif_in_pk6";
243				nvidia,function = "hda";
244				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
245				nvidia,tristate = <TEGRA_PIN_DISABLE>;
246				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
247			};
248
249			/* Colibri GPIO */
250			clk2-out-pw5 {
251				nvidia,pins = "clk2_out_pw5",
252					      "pcc2",
253					      "pv3",
254					      "sdmmc1_dat2_py5";
255				nvidia,function = "rsvd2";
256				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
257				nvidia,tristate = <TEGRA_PIN_DISABLE>;
258				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
259			};
260			lcd-pwr1-pc1 {
261				nvidia,pins = "lcd_pwr1_pc1",
262					      "pex_l1_clkreq_n_pdd6",
263					      "pex_l1_rst_n_pdd5";
264				nvidia,function = "rsvd3";
265				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
266				nvidia,tristate = <TEGRA_PIN_DISABLE>;
267				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
268			};
269			pv1 {
270				nvidia,pins = "pv1",
271					      "sdmmc3_dat0_pb7",
272					      "sdmmc3_dat1_pb6";
273				nvidia,function = "rsvd1";
274				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
275				nvidia,tristate = <TEGRA_PIN_DISABLE>;
276				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
277			};
278
279			/* Colibri HOTPLUG_DETECT (HDMI) */
280			hdmi-int-pn7 {
281				nvidia,pins = "hdmi_int_pn7";
282				nvidia,function = "hdmi";
283				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
284				nvidia,tristate = <TEGRA_PIN_ENABLE>;
285				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
286			};
287
288			/* Colibri I2C */
289			gen1-i2c-scl-pc4 {
290				nvidia,pins = "gen1_i2c_scl_pc4",
291					      "gen1_i2c_sda_pc5";
292				nvidia,function = "i2c1";
293				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
294				nvidia,tristate = <TEGRA_PIN_DISABLE>;
295				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
296				nvidia,open-drain = <TEGRA_PIN_ENABLE>;
297			};
298
299			/* Colibri LCD (L_* resp. LDD<*>) */
300			lcd-d0-pe0 {
301				nvidia,pins = "lcd_d0_pe0",
302					      "lcd_d1_pe1",
303					      "lcd_d2_pe2",
304					      "lcd_d3_pe3",
305					      "lcd_d4_pe4",
306					      "lcd_d5_pe5",
307					      "lcd_d6_pe6",
308					      "lcd_d7_pe7",
309					      "lcd_d8_pf0",
310					      "lcd_d9_pf1",
311					      "lcd_d10_pf2",
312					      "lcd_d11_pf3",
313					      "lcd_d12_pf4",
314					      "lcd_d13_pf5",
315					      "lcd_d14_pf6",
316					      "lcd_d15_pf7",
317					      "lcd_d16_pm0",
318					      "lcd_d17_pm1",
319					      "lcd_de_pj1",
320					      "lcd_hsync_pj3",
321					      "lcd_pclk_pb3",
322					      "lcd_vsync_pj4";
323				nvidia,function = "displaya";
324				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
325				nvidia,tristate = <TEGRA_PIN_DISABLE>;
326				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
327			};
328			/*
329			 * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
330			 * today's display need DE, disable LCD_M1
331			 */
332			lcd-m1-pw1 {
333				nvidia,pins = "lcd_m1_pw1";
334				nvidia,function = "rsvd3";
335				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
336				nvidia,tristate = <TEGRA_PIN_ENABLE>;
337				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
338			};
339
340			/* Colibri MMC */
341			kb-row10-ps2 {
342				nvidia,pins = "kb_row10_ps2";
343				nvidia,function = "sdmmc2";
344				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
345				nvidia,tristate = <TEGRA_PIN_DISABLE>;
346			};
347			kb-row11-ps3 {
348				nvidia,pins = "kb_row11_ps3",
349					      "kb_row12_ps4",
350					      "kb_row13_ps5",
351					      "kb_row14_ps6",
352					      "kb_row15_ps7";
353				nvidia,function = "sdmmc2";
354				nvidia,pull = <TEGRA_PIN_PULL_UP>;
355				nvidia,tristate = <TEGRA_PIN_DISABLE>;
356			};
357			/* Colibri MMC_CD */
358			gmi-wp-n-pc7 {
359				nvidia,pins = "gmi_wp_n_pc7";
360				nvidia,function = "rsvd1";
361				nvidia,pull = <TEGRA_PIN_PULL_UP>;
362				nvidia,tristate = <TEGRA_PIN_DISABLE>;
363				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
364			};
365			/* Multiplexed and therefore disabled */
366			cam-mclk-pcc0 {
367				nvidia,pins =	"cam_mclk_pcc0";
368				nvidia,function = "vi_alt3";
369				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
370				nvidia,tristate = <TEGRA_PIN_ENABLE>;
371				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
372			};
373			cam-i2c-scl-pbb1 {
374				nvidia,pins = "cam_i2c_scl_pbb1",
375					      "cam_i2c_sda_pbb2";
376				nvidia,function = "rsvd3";
377				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
378				nvidia,tristate = <TEGRA_PIN_ENABLE>;
379				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
380				nvidia,open-drain = <TEGRA_PIN_DISABLE>;
381			};
382			pbb0 {
383				nvidia,pins = "pbb0",
384					      "pcc1";
385				nvidia,function = "rsvd2";
386				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
387				nvidia,tristate = <TEGRA_PIN_ENABLE>;
388				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
389			};
390			pbb3 {
391				nvidia,pins = "pbb3";
392				nvidia,function = "displayb";
393				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
394				nvidia,tristate = <TEGRA_PIN_ENABLE>;
395				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
396			};
397
398			/* Colibri nRESET_OUT */
399			gmi-rst-n-pi4 {
400				nvidia,pins = "gmi_rst_n_pi4";
401				nvidia,function = "gmi";
402				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
403				nvidia,tristate = <TEGRA_PIN_DISABLE>;
404			};
405
406			/*
407			 * Colibri Parallel Camera (Optional)
408			 * pins multiplexed with others and therefore disabled
409			 */
410			vi-vsync-pd6 {
411				nvidia,pins = "vi_d0_pt4",
412					      "vi_d1_pd5",
413					      "vi_d2_pl0",
414					      "vi_d3_pl1",
415					      "vi_d4_pl2",
416					      "vi_d5_pl3",
417					      "vi_d6_pl4",
418					      "vi_d7_pl5",
419					      "vi_d8_pl6",
420					      "vi_d9_pl7",
421					      "vi_d10_pt2",
422					      "vi_d11_pt3",
423					      "vi_hsync_pd7",
424					      "vi_mclk_pt1",
425					      "vi_pclk_pt0",
426					      "vi_vsync_pd6";
427				nvidia,function = "vi";
428				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
429				nvidia,tristate = <TEGRA_PIN_ENABLE>;
430				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
431			};
432
433			/* Colibri PWM<B> */
434			sdmmc3-dat2-pb5 {
435				nvidia,pins = "sdmmc3_dat2_pb5";
436				nvidia,function = "pwm1";
437				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
438				nvidia,tristate = <TEGRA_PIN_DISABLE>;
439			};
440
441			/* Colibri PWM<C> */
442			sdmmc3-clk-pa6 {
443				nvidia,pins = "sdmmc3_clk_pa6";
444				nvidia,function = "pwm2";
445				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
446				nvidia,tristate = <TEGRA_PIN_DISABLE>;
447			};
448
449			/* Colibri PWM<D> */
450			sdmmc3-cmd-pa7 {
451				nvidia,pins = "sdmmc3_cmd_pa7";
452				nvidia,function = "pwm3";
453				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
454				nvidia,tristate = <TEGRA_PIN_DISABLE>;
455			};
456
457			/* Colibri SSP */
458			ulpi-clk-py0 {
459				nvidia,pins = "ulpi_clk_py0",
460					      "ulpi_dir_py1",
461					      "ulpi_nxt_py2",
462					      "ulpi_stp_py3";
463				nvidia,function = "spi1";
464				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
465				nvidia,tristate = <TEGRA_PIN_DISABLE>;
466			};
467			/* Multiplexed SSPFRM, SSPTXD and therefore disabled */
468			sdmmc3-dat6-pd3 {
469				nvidia,pins = "sdmmc3_dat6_pd3",
470					      "sdmmc3_dat7_pd4";
471				nvidia,function = "spdif";
472				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
473				nvidia,tristate = <TEGRA_PIN_ENABLE>;
474				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
475			};
476
477			/* Colibri UART-A */
478			ulpi-data0 {
479				nvidia,pins = "ulpi_data0_po1",
480					      "ulpi_data1_po2",
481					      "ulpi_data2_po3",
482					      "ulpi_data3_po4",
483					      "ulpi_data4_po5",
484					      "ulpi_data5_po6",
485					      "ulpi_data6_po7",
486					      "ulpi_data7_po0";
487				nvidia,function = "uarta";
488				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
489				nvidia,tristate = <TEGRA_PIN_DISABLE>;
490			};
491
492			/* Colibri UART-B */
493			gmi-a16-pj7 {
494				nvidia,pins = "gmi_a16_pj7",
495					      "gmi_a17_pb0",
496					      "gmi_a18_pb1",
497					      "gmi_a19_pk7";
498				nvidia,function = "uartd";
499				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
500				nvidia,tristate = <TEGRA_PIN_DISABLE>;
501			};
502
503			/* Colibri UART-C */
504			uart2-rxd {
505				nvidia,pins = "uart2_rxd_pc3",
506					      "uart2_txd_pc2";
507				nvidia,function = "uartb";
508				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
509				nvidia,tristate = <TEGRA_PIN_DISABLE>;
510			};
511
512			/* Colibri USBC_DET */
513			spdif-out-pk5 {
514				nvidia,pins =	"spdif_out_pk5";
515				nvidia,function = "rsvd2";
516				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
517				nvidia,tristate = <TEGRA_PIN_DISABLE>;
518				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
519			};
520
521			/* Colibri USBH_PEN */
522			spi2-cs1-n-pw2 {
523				nvidia,pins = "spi2_cs1_n_pw2";
524				nvidia,function = "spi2_alt";
525				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
526				nvidia,tristate = <TEGRA_PIN_DISABLE>;
527			};
528
529			/* Colibri USBH_OC */
530			spi2-cs2-n-pw3 {
531				nvidia,pins = "spi2_cs2_n_pw3";
532				nvidia,function = "spi2_alt";
533				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
534				nvidia,tristate = <TEGRA_PIN_DISABLE>;
535				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
536			};
537
538			/* Colibri VGA not supported and therefore disabled */
539			crt-hsync-pv6 {
540				nvidia,pins = "crt_hsync_pv6",
541					      "crt_vsync_pv7";
542				nvidia,function = "rsvd2";
543				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
544				nvidia,tristate = <TEGRA_PIN_ENABLE>;
545				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
546			};
547
548			/* eMMC (On-module) */
549			sdmmc4-clk-pcc4 {
550				nvidia,pins = "sdmmc4_clk_pcc4",
551					      "sdmmc4_cmd_pt7",
552					      "sdmmc4_rst_n_pcc3";
553				nvidia,function = "sdmmc4";
554				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
555				nvidia,tristate = <TEGRA_PIN_DISABLE>;
556				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
557			};
558			sdmmc4-dat0-paa0 {
559				nvidia,pins = "sdmmc4_dat0_paa0",
560					      "sdmmc4_dat1_paa1",
561					      "sdmmc4_dat2_paa2",
562					      "sdmmc4_dat3_paa3",
563					      "sdmmc4_dat4_paa4",
564					      "sdmmc4_dat5_paa5",
565					      "sdmmc4_dat6_paa6",
566					      "sdmmc4_dat7_paa7";
567				nvidia,function = "sdmmc4";
568				nvidia,pull = <TEGRA_PIN_PULL_UP>;
569				nvidia,tristate = <TEGRA_PIN_DISABLE>;
570				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
571			};
572
573			/* LAN_EXT_WAKEUP#, LAN_PME (On-module) */
574			pex-l0-rst-n-pdd1 {
575				nvidia,pins = "pex_l0_rst_n_pdd1",
576					      "pex_wake_n_pdd3";
577				nvidia,function = "rsvd3";
578				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
579				nvidia,tristate = <TEGRA_PIN_DISABLE>;
580				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
581			};
582			/* LAN_V_BUS, LAN_RESET# (On-module) */
583			pex-l0-clkreq-n-pdd2 {
584				nvidia,pins = "pex_l0_clkreq_n_pdd2",
585					      "pex_l0_prsnt_n_pdd0";
586				nvidia,function = "rsvd3";
587				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
588				nvidia,tristate = <TEGRA_PIN_DISABLE>;
589				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
590			};
591
592			/* nBATT_FAULT(SENSE), nVDD_FAULT(SENSE) */
593			pex-l2-rst-n-pcc6 {
594				nvidia,pins = "pex_l2_rst_n_pcc6",
595					      "pex_l2_prsnt_n_pdd7";
596				nvidia,function = "rsvd3";
597				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
598				nvidia,tristate = <TEGRA_PIN_DISABLE>;
599				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
600			};
601
602			/* Not connected and therefore disabled */
603			clk1-req-pee2 {
604				nvidia,pins = "clk1_req_pee2",
605					      "pex_l1_prsnt_n_pdd4";
606				nvidia,function = "rsvd3";
607				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
608				nvidia,tristate = <TEGRA_PIN_ENABLE>;
609				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
610			};
611			clk2-req-pcc5 {
612				nvidia,pins = "clk2_req_pcc5",
613					      "clk3_out_pee0",
614					      "clk3_req_pee1",
615					      "clk_32k_out_pa0",
616					      "hdmi_cec_pee3",
617					      "sys_clk_req_pz5";
618				nvidia,function = "rsvd2";
619				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
620				nvidia,tristate = <TEGRA_PIN_ENABLE>;
621				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
622			};
623			gmi-dqs-pi2 {
624				nvidia,pins = "gmi_dqs_pi2",
625					      "kb_col2_pq2",
626					      "kb_col3_pq3",
627					      "kb_col4_pq4",
628					      "kb_col5_pq5",
629					      "kb_row4_pr4";
630				nvidia,function = "rsvd4";
631				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
632				nvidia,tristate = <TEGRA_PIN_ENABLE>;
633				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
634			};
635			kb-col0-pq0 {
636				nvidia,pins = "kb_col0_pq0",
637					      "kb_col1_pq1",
638					      "kb_col6_pq6",
639					      "kb_col7_pq7",
640					      "kb_row5_pr5",
641					      "kb_row6_pr6",
642					      "kb_row7_pr7",
643					      "kb_row9_ps1";
644				nvidia,function = "kbc";
645				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
646				nvidia,tristate = <TEGRA_PIN_ENABLE>;
647				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
648			};
649			kb-row0-pr0 {
650				nvidia,pins = "kb_row0_pr0",
651					      "kb_row1_pr1",
652					      "kb_row2_pr2",
653					      "kb_row3_pr3";
654				nvidia,function = "rsvd3";
655				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
656				nvidia,tristate = <TEGRA_PIN_ENABLE>;
657				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
658			};
659			lcd-pwr2-pc6 {
660				nvidia,pins = "lcd_pwr2_pc6";
661				nvidia,function = "hdcp";
662				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
663				nvidia,tristate = <TEGRA_PIN_ENABLE>;
664				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
665			};
666
667			/* Power I2C (On-module) */
668			pwr-i2c-scl-pz6 {
669				nvidia,pins = "pwr_i2c_scl_pz6",
670					      "pwr_i2c_sda_pz7";
671				nvidia,function = "i2cpwr";
672				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
673				nvidia,tristate = <TEGRA_PIN_DISABLE>;
674				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
675				nvidia,open-drain = <TEGRA_PIN_ENABLE>;
676			};
677
678			/*
679			 * THERMD_ALERT#, unlatched I2C address pin of LM95245
680			 * temperature sensor therefore requires disabling for
681			 * now
682			 */
683			lcd-dc1-pd2 {
684				nvidia,pins = "lcd_dc1_pd2";
685				nvidia,function = "rsvd3";
686				nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
687				nvidia,tristate = <TEGRA_PIN_ENABLE>;
688				nvidia,enable-input = <TEGRA_PIN_DISABLE>;
689			};
690
691			/* TOUCH_PEN_INT# (On-module) */
692			pv0 {
693				nvidia,pins = "pv0";
694				nvidia,function = "rsvd1";
695				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
696				nvidia,tristate = <TEGRA_PIN_DISABLE>;
697				nvidia,enable-input = <TEGRA_PIN_ENABLE>;
698			};
699		};
700	};
701
702	serial@70006040 {
703		compatible = "nvidia,tegra30-hsuart";
704	};
705
706	serial@70006300 {
707		compatible = "nvidia,tegra30-hsuart";
708	};
709
710	hdmi_ddc: i2c@7000c700 {
711		clock-frequency = <10000>;
712	};
713
714	/*
715	 * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
716	 * touch screen controller (On-module)
717	 */
718	i2c@7000d000 {
719		status = "okay";
720		clock-frequency = <100000>;
721
722		/* SGTL5000 audio codec */
723		sgtl5000: codec@a {
724			compatible = "fsl,sgtl5000";
725			reg = <0x0a>;
726			#sound-dai-cells = <0>;
727			VDDA-supply = <&reg_module_3v3_audio>;
728			VDDD-supply = <&reg_1v8_vio>;
729			VDDIO-supply = <&reg_module_3v3>;
730			clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
731		};
732
733		pmic: pmic@2d {
734			compatible = "ti,tps65911";
735			reg = <0x2d>;
736
737			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
738			#interrupt-cells = <2>;
739			interrupt-controller;
740
741			ti,system-power-controller;
742
743			#gpio-cells = <2>;
744			gpio-controller;
745
746			vcc1-supply = <&reg_module_3v3>;
747			vcc2-supply = <&reg_module_3v3>;
748			vcc3-supply = <&reg_1v8_vio>;
749			vcc4-supply = <&reg_module_3v3>;
750			vcc5-supply = <&reg_module_3v3>;
751			vcc6-supply = <&reg_1v8_vio>;
752			vcc7-supply = <&reg_5v0_charge_pump>;
753			vccio-supply = <&reg_module_3v3>;
754
755			regulators {
756				vdd1_reg: vdd1 {
757					regulator-name = "+V1.35_VDDIO_DDR";
758					regulator-min-microvolt = <1350000>;
759					regulator-max-microvolt = <1350000>;
760					regulator-always-on;
761				};
762
763				/* SW2: unused */
764
765				vddctrl_reg: vddctrl {
766					regulator-name = "+V1.0_VDD_CPU";
767					regulator-min-microvolt = <1150000>;
768					regulator-max-microvolt = <1150000>;
769					regulator-always-on;
770				};
771
772				reg_1v8_vio: vio {
773					regulator-name = "+V1.8";
774					regulator-min-microvolt = <1800000>;
775					regulator-max-microvolt = <1800000>;
776					regulator-always-on;
777				};
778
779				/* LDO1: unused */
780
781				/*
782				 * EN_+V3.3 switching via FET:
783				 * +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN
784				 * see also +V3.3 fixed supply
785				 */
786				ldo2_reg: ldo2 {
787					regulator-name = "EN_+V3.3";
788					regulator-min-microvolt = <3300000>;
789					regulator-max-microvolt = <3300000>;
790					regulator-always-on;
791				};
792
793				/* LDO3: unused */
794
795				ldo4_reg: ldo4 {
796					regulator-name = "+V1.2_VDD_RTC";
797					regulator-min-microvolt = <1200000>;
798					regulator-max-microvolt = <1200000>;
799					regulator-always-on;
800				};
801
802				/*
803				 * +V2.8_AVDD_VDAC:
804				 * only required for (unsupported) analog RGB
805				 */
806				ldo5_reg: ldo5 {
807					regulator-name = "+V2.8_AVDD_VDAC";
808					regulator-min-microvolt = <2800000>;
809					regulator-max-microvolt = <2800000>;
810					regulator-always-on;
811				};
812
813				/*
814				 * +V1.05_AVDD_PLLE: avdd_plle should be 1.05V
815				 * but LDO6 can't set voltage in 50mV
816				 * granularity
817				 */
818				ldo6_reg: ldo6 {
819					regulator-name = "+V1.05_AVDD_PLLE";
820					regulator-min-microvolt = <1100000>;
821					regulator-max-microvolt = <1100000>;
822				};
823
824				ldo7_reg: ldo7 {
825					regulator-name = "+V1.2_AVDD_PLL";
826					regulator-min-microvolt = <1200000>;
827					regulator-max-microvolt = <1200000>;
828					regulator-always-on;
829				};
830
831				ldo8_reg: ldo8 {
832					regulator-name = "+V1.0_VDD_DDR_HS";
833					regulator-min-microvolt = <1000000>;
834					regulator-max-microvolt = <1000000>;
835					regulator-always-on;
836				};
837			};
838		};
839
840		/* STMPE811 touch screen controller */
841		touchscreen@41 {
842			compatible = "st,stmpe811";
843			reg = <0x41>;
844			irq-gpio = <&gpio TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>;
845			interrupt-controller;
846			id = <0>;
847			blocks = <0x5>;
848			irq-trigger = <0x1>;
849			/* 3.25 MHz ADC clock speed */
850			st,adc-freq = <1>;
851			/* 12-bit ADC */
852			st,mod-12b = <1>;
853			/* internal ADC reference */
854			st,ref-sel = <0>;
855			/* ADC converstion time: 80 clocks */
856			st,sample-time = <4>;
857			/* forbid to use ADC channels 3-0 (touch) */
858
859			stmpe_touchscreen {
860				compatible = "st,stmpe-ts";
861				/* 8 sample average control */
862				st,ave-ctrl = <3>;
863				/* 7 length fractional part in z */
864				st,fraction-z = <7>;
865				/*
866				 * 50 mA typical 80 mA max touchscreen drivers
867				 * current limit value
868				 */
869				st,i-drive = <1>;
870				/* 1 ms panel driver settling time */
871				st,settling = <3>;
872				/* 5 ms touch detect interrupt delay */
873				st,touch-det-delay = <5>;
874			};
875
876			stmpe_adc {
877				compatible = "st,stmpe-adc";
878				st,norequest-mask = <0x0F>;
879			};
880		};
881
882		/*
883		 * LM95245 temperature sensor
884		 * Note: OVERT1# directly connected to TPS65911 PMIC PWRDN
885		 */
886		temp-sensor@4c {
887			compatible = "national,lm95245";
888			reg = <0x4c>;
889		};
890
891		/* SW: +V1.2_VDD_CORE */
892		regulator@60 {
893			compatible = "ti,tps62362";
894			reg = <0x60>;
895
896			regulator-name = "tps62362-vout";
897			regulator-min-microvolt = <900000>;
898			regulator-max-microvolt = <1400000>;
899			regulator-boot-on;
900			regulator-always-on;
901			ti,vsel0-state-low;
902			/* VSEL1: EN_CORE_DVFS_N low for DVFS */
903			ti,vsel1-state-low;
904		};
905	};
906
907	pmc@7000e400 {
908		nvidia,invert-interrupt;
909		nvidia,suspend-mode = <1>;
910		nvidia,cpu-pwr-good-time = <5000>;
911		nvidia,cpu-pwr-off-time = <5000>;
912		nvidia,core-pwr-good-time = <3845 3845>;
913		nvidia,core-pwr-off-time = <0>;
914		nvidia,core-power-req-active-high;
915		nvidia,sys-clock-req-active-high;
916
917		/* Set DEV_OFF bit in DCDC control register of TPS65911 PMIC */
918		i2c-thermtrip {
919			nvidia,i2c-controller-id = <4>;
920			nvidia,bus-addr = <0x2d>;
921			nvidia,reg-addr = <0x3f>;
922			nvidia,reg-data = <0x1>;
923		};
924	};
925
926	hda@70030000 {
927		status = "okay";
928	};
929
930	ahub@70080000 {
931		i2s@70080500 {
932			status = "okay";
933		};
934	};
935
936	/* eMMC */
937	mmc@78000600 {
938		status = "okay";
939		bus-width = <8>;
940		non-removable;
941		vmmc-supply = <&reg_module_3v3>; /* VCC */
942		vqmmc-supply = <&reg_1v8_vio>; /* VCCQ */
943		mmc-ddr-1_8v;
944	};
945
946	/* EHCI instance 1: USB2_DP/N -> AX88772B (On-module) */
947	usb@7d004000 {
948		status = "okay";
949		#address-cells = <1>;
950		#size-cells = <0>;
951
952		asix@1 {
953			reg = <1>;
954			local-mac-address = [00 00 00 00 00 00];
955		};
956	};
957
958	usb-phy@7d004000 {
959		status = "okay";
960		vbus-supply = <&reg_lan_v_bus>;
961	};
962
963	clk32k_in: xtal1 {
964		compatible = "fixed-clock";
965		#clock-cells = <0>;
966		clock-frequency = <32768>;
967	};
968
969	reg_1v8_avdd_hdmi_pll: regulator-1v8-avdd-hdmi-pll {
970		compatible = "regulator-fixed";
971		regulator-name = "+V1.8_AVDD_HDMI_PLL";
972		regulator-min-microvolt = <1800000>;
973		regulator-max-microvolt = <1800000>;
974		enable-active-high;
975		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
976		vin-supply = <&reg_1v8_vio>;
977	};
978
979	reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
980		compatible = "regulator-fixed";
981		regulator-name = "+V3.3_AVDD_HDMI";
982		regulator-min-microvolt = <3300000>;
983		regulator-max-microvolt = <3300000>;
984		enable-active-high;
985		gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
986		vin-supply = <&reg_module_3v3>;
987	};
988
989	reg_5v0_charge_pump: regulator-5v0-charge-pump {
990		compatible = "regulator-fixed";
991		regulator-name = "+V5.0";
992		regulator-min-microvolt = <5000000>;
993		regulator-max-microvolt = <5000000>;
994		regulator-always-on;
995	};
996
997	reg_lan_v_bus: regulator-lan-v-bus {
998		compatible = "regulator-fixed";
999		regulator-name = "LAN_V_BUS";
1000		regulator-min-microvolt = <5000000>;
1001		regulator-max-microvolt = <5000000>;
1002		enable-active-high;
1003		gpio = <&gpio TEGRA_GPIO(DD, 2) GPIO_ACTIVE_HIGH>;
1004	};
1005
1006	reg_module_3v3: regulator-module-3v3 {
1007		compatible = "regulator-fixed";
1008		regulator-name = "+V3.3";
1009		regulator-min-microvolt = <3300000>;
1010		regulator-max-microvolt = <3300000>;
1011		regulator-always-on;
1012	};
1013
1014	reg_module_3v3_audio: regulator-module-3v3-audio {
1015		compatible = "regulator-fixed";
1016		regulator-name = "+V3.3_AUDIO_AVDD_S";
1017		regulator-min-microvolt = <3300000>;
1018		regulator-max-microvolt = <3300000>;
1019		regulator-always-on;
1020	};
1021
1022	sound {
1023		compatible = "toradex,tegra-audio-sgtl5000-colibri_t30",
1024			     "nvidia,tegra-audio-sgtl5000";
1025		nvidia,model = "Toradex Colibri T30";
1026		nvidia,audio-routing =
1027			"Headphone Jack", "HP_OUT",
1028			"LINE_IN", "Line In Jack",
1029			"MIC_IN", "Mic Jack";
1030		nvidia,i2s-controller = <&tegra_i2s2>;
1031		nvidia,audio-codec = <&sgtl5000>;
1032		clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
1033			 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
1034			 <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
1035		clock-names = "pll_a", "pll_a_out0", "mclk";
1036
1037		assigned-clocks = <&tegra_car TEGRA30_CLK_EXTERN1>,
1038				  <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
1039
1040		assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
1041					 <&tegra_car TEGRA30_CLK_EXTERN1>;
1042	};
1043};
1044
1045&gpio {
1046	lan-reset-n {
1047		gpio-hog;
1048		gpios = <TEGRA_GPIO(DD, 0) GPIO_ACTIVE_HIGH>;
1049		output-high;
1050		line-name = "LAN_RESET#";
1051	};
1052};
1053