Linux Audio

Check our new training course

In-person Linux kernel drivers training

Jun 16-20, 2025
Register
Loading...
v4.17
  1// SPDX-License-Identifier: GPL-2.0
  2#include "tegra20.dtsi"
  3
  4/ {
  5	model = "Toradex Colibri T20 512MB";
  6	compatible = "toradex,colibri_t20-512", "nvidia,tegra20";
  7
  8	aliases {
  9		rtc0 = "/i2c@7000d000/tps6586x@34";
 10		rtc1 = "/rtc@7000e000";
 11	};
 12
 13	memory {
 14		reg = <0x00000000 0x20000000>;
 15	};
 16
 17	host1x@50000000 {
 18		hdmi@54280000 {
 19			vdd-supply = <&hdmi_vdd_reg>;
 20			pll-supply = <&hdmi_pll_reg>;
 21
 22			nvidia,ddc-i2c-bus = <&i2c_ddc>;
 23			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
 24				GPIO_ACTIVE_HIGH>;
 25		};
 26	};
 27
 28	pinmux@70000014 {
 29		pinctrl-names = "default";
 30		pinctrl-0 = <&state_default>;
 31
 32		state_default: pinmux {
 33			audio_refclk {
 34				nvidia,pins = "cdev1";
 35				nvidia,function = "plla_out";
 36				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 37				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 38			};
 39			crt {
 40				nvidia,pins = "crtp";
 41				nvidia,function = "crt";
 42				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 43				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 44			};
 45			dap3 {
 46				nvidia,pins = "dap3";
 47				nvidia,function = "dap3";
 48				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 49				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 50			};
 51			displaya {
 52				nvidia,pins = "ld0", "ld1", "ld2", "ld3",
 53					"ld4", "ld5", "ld6", "ld7", "ld8",
 54					"ld9", "ld10", "ld11", "ld12", "ld13",
 55					"ld14", "ld15", "ld16", "ld17",
 56					"lhs", "lpw0", "lpw2", "lsc0",
 57					"lsc1", "lsck", "lsda", "lspi", "lvs";
 58				nvidia,function = "displaya";
 59				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 60			};
 61			gpio_dte {
 62				nvidia,pins = "dte";
 63				nvidia,function = "rsvd1";
 64				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 65				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 66			};
 67			gpio_gmi {
 68				nvidia,pins = "ata", "atc", "atd", "ate",
 69					"dap1", "dap2", "dap4", "gpu", "irrx",
 70					"irtx", "spia", "spib", "spic";
 71				nvidia,function = "gmi";
 72				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 73				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 74			};
 75			gpio_pta {
 76				nvidia,pins = "pta";
 77				nvidia,function = "rsvd4";
 78				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 79				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 80			};
 81			gpio_uac {
 82				nvidia,pins = "uac";
 83				nvidia,function = "rsvd2";
 84				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 85				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 86			};
 87			hdint {
 88				nvidia,pins = "hdint";
 89				nvidia,function = "hdmi";
 90				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 91			};
 92			i2c1 {
 93				nvidia,pins = "rm";
 94				nvidia,function = "i2c1";
 95				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 96				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 97			};
 98			i2c3 {
 99				nvidia,pins = "dtf";
100				nvidia,function = "i2c3";
101				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
102				nvidia,tristate = <TEGRA_PIN_ENABLE>;
103			};
104			i2cddc {
105				nvidia,pins = "ddc";
106				nvidia,function = "i2c2";
107				nvidia,pull = <TEGRA_PIN_PULL_UP>;
108				nvidia,tristate = <TEGRA_PIN_ENABLE>;
109			};
110			i2cp {
111				nvidia,pins = "i2cp";
112				nvidia,function = "i2cp";
113				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
114				nvidia,tristate = <TEGRA_PIN_DISABLE>;
115			};
116			irda {
117				nvidia,pins = "uad";
118				nvidia,function = "irda";
119				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
120				nvidia,tristate = <TEGRA_PIN_ENABLE>;
121			};
122			nand {
123				nvidia,pins = "kbca", "kbcc", "kbcd",
124					"kbce", "kbcf";
125				nvidia,function = "nand";
126				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
127				nvidia,tristate = <TEGRA_PIN_DISABLE>;
128			};
129			owc {
130				nvidia,pins = "owc";
131				nvidia,function = "owr";
132				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
133				nvidia,tristate = <TEGRA_PIN_ENABLE>;
134			};
135			pmc {
136				nvidia,pins = "pmc";
137				nvidia,function = "pwr_on";
138				nvidia,tristate = <TEGRA_PIN_DISABLE>;
139			};
140			pwm {
141				nvidia,pins = "sdb", "sdc", "sdd";
142				nvidia,function = "pwm";
143				nvidia,tristate = <TEGRA_PIN_ENABLE>;
144			};
145			sdio4 {
146				nvidia,pins = "atb", "gma", "gme";
147				nvidia,function = "sdio4";
148				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
149				nvidia,tristate = <TEGRA_PIN_ENABLE>;
150			};
151			spi1 {
152				nvidia,pins = "spid", "spie", "spif";
153				nvidia,function = "spi1";
154				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
155				nvidia,tristate = <TEGRA_PIN_ENABLE>;
156			};
157			spi4 {
158				nvidia,pins = "slxa", "slxc", "slxd", "slxk";
159				nvidia,function = "spi4";
160				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
161				nvidia,tristate = <TEGRA_PIN_ENABLE>;
162			};
163			uarta {
164				nvidia,pins = "sdio1";
165				nvidia,function = "uarta";
166				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
167				nvidia,tristate = <TEGRA_PIN_ENABLE>;
168			};
169			uartd {
170				nvidia,pins = "gmc";
171				nvidia,function = "uartd";
172				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
173				nvidia,tristate = <TEGRA_PIN_ENABLE>;
174			};
175			ulpi {
176				nvidia,pins = "uaa", "uab", "uda";
177				nvidia,function = "ulpi";
178				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
179				nvidia,tristate = <TEGRA_PIN_DISABLE>;
180			};
181			ulpi_refclk {
182				nvidia,pins = "cdev2";
183				nvidia,function = "pllp_out4";
184				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
185				nvidia,tristate = <TEGRA_PIN_DISABLE>;
186			};
187			usb_gpio {
188				nvidia,pins = "spig", "spih";
189				nvidia,function = "spi2_alt";
190				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
191				nvidia,tristate = <TEGRA_PIN_DISABLE>;
192			};
193			vi {
194				nvidia,pins = "dta", "dtb", "dtc", "dtd";
195				nvidia,function = "vi";
196				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
197				nvidia,tristate = <TEGRA_PIN_ENABLE>;
198			};
199			vi_sc {
200				nvidia,pins = "csus";
201				nvidia,function = "vi_sensor_clk";
202				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
203				nvidia,tristate = <TEGRA_PIN_ENABLE>;
204			};
205		};
206	};
207
208	ac97: ac97@70002000 {
209		status = "okay";
210		nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
211			GPIO_ACTIVE_HIGH>;
212		nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0)
213			GPIO_ACTIVE_HIGH>;
214	};
215
216	/*
217	 * GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
218	 * board)
219	 */
220	i2c@7000c000 {
221		clock-frequency = <400000>;
222	};
223
224	/* DDC_SCL/SDA on X3 pin 15/16 (e.g. display EDID) */
225	i2c_ddc: i2c@7000c400 {
226		clock-frequency = <10000>;
227	};
228
229	/* GEN2_I2C: unused */
230
231	/* CAM/GEN3_I2C: used as EXT_IO1/2 GPIOs on SODIMM pin 133/127 */
232
233	/* PWR_I2C: power I2C to PMIC and temperature sensor (On-module) */
234	i2c@7000d000 {
235		status = "okay";
236		clock-frequency = <100000>;
237
238		pmic: tps6586x@34 {
239			compatible = "ti,tps6586x";
240			reg = <0x34>;
241			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
242
243			ti,system-power-controller;
244
245			#gpio-cells = <2>;
246			gpio-controller;
247
248			sys-supply = <&vdd_3v3_reg>;
249			vin-sm0-supply = <&sys_reg>;
250			vin-sm1-supply = <&sys_reg>;
251			vin-sm2-supply = <&sys_reg>;
252			vinldo01-supply = <&sm2_reg>;
253			vinldo23-supply = <&vdd_3v3_reg>;
254			vinldo4-supply = <&vdd_3v3_reg>;
255			vinldo678-supply = <&vdd_3v3_reg>;
256			vinldo9-supply = <&vdd_3v3_reg>;
257
258			regulators {
259				#address-cells = <1>;
260				#size-cells = <0>;
261
262				sys_reg: regulator@0 {
263					reg = <0>;
264					regulator-compatible = "sys";
265					regulator-name = "vdd_sys";
266					regulator-always-on;
267				};
268
269				regulator@1 {
270					reg = <1>;
271					regulator-compatible = "sm0";
272					regulator-name = "vdd_sm0,vdd_core";
273					regulator-min-microvolt = <1200000>;
274					regulator-max-microvolt = <1200000>;
275					regulator-always-on;
276				};
277
278				regulator@2 {
279					reg = <2>;
280					regulator-compatible = "sm1";
281					regulator-name = "vdd_sm1,vdd_cpu";
282					regulator-min-microvolt = <1000000>;
283					regulator-max-microvolt = <1000000>;
284					regulator-always-on;
285				};
286
287				sm2_reg: regulator@3 {
288					reg = <3>;
289					regulator-compatible = "sm2";
290					regulator-name = "vdd_sm2,vin_ldo*";
291					regulator-min-microvolt = <1800000>;
292					regulator-max-microvolt = <1800000>;
293					regulator-always-on;
294				};
295
296				/* LDO0 is not connected to anything */
297
298				regulator@5 {
299					reg = <5>;
300					regulator-compatible = "ldo1";
301					regulator-name = "vdd_ldo1,avdd_pll*";
302					regulator-min-microvolt = <1100000>;
303					regulator-max-microvolt = <1100000>;
304					regulator-always-on;
305				};
306
307				regulator@6 {
308					reg = <6>;
309					regulator-compatible = "ldo2";
310					regulator-name = "vdd_ldo2,vdd_rtc";
311					regulator-min-microvolt = <1200000>;
312					regulator-max-microvolt = <1200000>;
313				};
314
315				/* LDO3 is not connected to anything */
316
317				regulator@8 {
318					reg = <8>;
319					regulator-compatible = "ldo4";
320					regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
321					regulator-min-microvolt = <1800000>;
322					regulator-max-microvolt = <1800000>;
323					regulator-always-on;
324				};
325
326				ldo5_reg: regulator@9 {
327					reg = <9>;
328					regulator-compatible = "ldo5";
329					regulator-name = "vdd_ldo5,vdd_fuse";
330					regulator-min-microvolt = <3300000>;
331					regulator-max-microvolt = <3300000>;
332					regulator-always-on;
333				};
334
335				regulator@10 {
336					reg = <10>;
337					regulator-compatible = "ldo6";
338					regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
339					regulator-min-microvolt = <2850000>;
340					regulator-max-microvolt = <2850000>;
341				};
342
343				hdmi_vdd_reg: regulator@11 {
344					reg = <11>;
345					regulator-compatible = "ldo7";
346					regulator-name = "vdd_ldo7,avdd_hdmi";
347					regulator-min-microvolt = <3300000>;
348					regulator-max-microvolt = <3300000>;
349				};
350
351				hdmi_pll_reg: regulator@12 {
352					reg = <12>;
353					regulator-compatible = "ldo8";
354					regulator-name = "vdd_ldo8,avdd_hdmi_pll";
355					regulator-min-microvolt = <1800000>;
356					regulator-max-microvolt = <1800000>;
357				};
358
359				regulator@13 {
360					reg = <13>;
361					regulator-compatible = "ldo9";
362					regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
363					regulator-min-microvolt = <2850000>;
364					regulator-max-microvolt = <2850000>;
365					regulator-always-on;
366				};
367
368				regulator@14 {
369					reg = <14>;
370					regulator-compatible = "ldo_rtc";
371					regulator-name = "vdd_rtc_out,vdd_cell";
372					regulator-min-microvolt = <3300000>;
373					regulator-max-microvolt = <3300000>;
374					regulator-always-on;
375				};
376			};
377		};
378
379		temperature-sensor@4c {
380			compatible = "national,lm95245";
381			reg = <0x4c>;
382		};
383	};
384
385	pmc@7000e400 {
386		nvidia,suspend-mode = <1>;
387		nvidia,cpu-pwr-good-time = <5000>;
388		nvidia,cpu-pwr-off-time = <5000>;
389		nvidia,core-pwr-good-time = <3845 3845>;
390		nvidia,core-pwr-off-time = <3875>;
391		nvidia,sys-clock-req-active-high;
392	};
393
394	memory-controller@7000f400 {
395		emc-table@83250 {
396			reg = <83250>;
397			compatible = "nvidia,tegra20-emc-table";
398			clock-frequency = <83250>;
399			nvidia,emc-registers =   <0x00000005 0x00000011
400				0x00000004 0x00000002 0x00000004 0x00000004
401				0x00000001 0x0000000a 0x00000002 0x00000002
402				0x00000001 0x00000001 0x00000003 0x00000004
403				0x00000003 0x00000009 0x0000000c 0x0000025f
404				0x00000000 0x00000003 0x00000003 0x00000002
405				0x00000002 0x00000001 0x00000008 0x000000c8
406				0x00000003 0x00000005 0x00000003 0x0000000c
407				0x00000002 0x00000000 0x00000000 0x00000002
408				0x00000000 0x00000000 0x00000083 0x00520006
409				0x00000010 0x00000008 0x00000000 0x00000000
410				0x00000000 0x00000000 0x00000000 0x00000000>;
411		};
412		emc-table@133200 {
413			reg = <133200>;
414			compatible = "nvidia,tegra20-emc-table";
415			clock-frequency = <133200>;
416			nvidia,emc-registers =   <0x00000008 0x00000019
417				0x00000006 0x00000002 0x00000004 0x00000004
418				0x00000001 0x0000000a 0x00000002 0x00000002
419				0x00000002 0x00000001 0x00000003 0x00000004
420				0x00000003 0x00000009 0x0000000c 0x0000039f
421				0x00000000 0x00000003 0x00000003 0x00000002
422				0x00000002 0x00000001 0x00000008 0x000000c8
423				0x00000003 0x00000007 0x00000003 0x0000000c
424				0x00000002 0x00000000 0x00000000 0x00000002
425				0x00000000 0x00000000 0x00000083 0x00510006
426				0x00000010 0x00000008 0x00000000 0x00000000
427				0x00000000 0x00000000 0x00000000 0x00000000>;
428		};
429		emc-table@166500 {
430			reg = <166500>;
431			compatible = "nvidia,tegra20-emc-table";
432			clock-frequency = <166500>;
433			nvidia,emc-registers =   <0x0000000a 0x00000021
434				0x00000008 0x00000003 0x00000004 0x00000004
435				0x00000002 0x0000000a 0x00000003 0x00000003
436				0x00000002 0x00000001 0x00000003 0x00000004
437				0x00000003 0x00000009 0x0000000c 0x000004df
438				0x00000000 0x00000003 0x00000003 0x00000003
439				0x00000003 0x00000001 0x00000009 0x000000c8
440				0x00000003 0x00000009 0x00000004 0x0000000c
441				0x00000002 0x00000000 0x00000000 0x00000002
442				0x00000000 0x00000000 0x00000083 0x004f0006
443				0x00000010 0x00000008 0x00000000 0x00000000
444				0x00000000 0x00000000 0x00000000 0x00000000>;
445		};
446		emc-table@333000 {
447			reg = <333000>;
448			compatible = "nvidia,tegra20-emc-table";
449			clock-frequency = <333000>;
450			nvidia,emc-registers =   <0x00000014 0x00000041
451				0x0000000f 0x00000005 0x00000004 0x00000005
452				0x00000003 0x0000000a 0x00000005 0x00000005
453				0x00000004 0x00000001 0x00000003 0x00000004
454				0x00000003 0x00000009 0x0000000c 0x000009ff
455				0x00000000 0x00000003 0x00000003 0x00000005
456				0x00000005 0x00000001 0x0000000e 0x000000c8
457				0x00000003 0x00000011 0x00000006 0x0000000c
458				0x00000002 0x00000000 0x00000000 0x00000002
459				0x00000000 0x00000000 0x00000083 0x00380006
460				0x00000010 0x00000008 0x00000000 0x00000000
461				0x00000000 0x00000000 0x00000000 0x00000000>;
462		};
463	};
464
465	usb@c5004000 {
466		status = "okay";
467		nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
468			GPIO_ACTIVE_LOW>;
469	};
470
471	usb-phy@c5004000 {
472		status = "okay";
473		nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
474			GPIO_ACTIVE_LOW>;
475	};
476
477	sdhci@c8000600 {
478		cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
479	};
480
481	clocks {
482		compatible = "simple-bus";
483		#address-cells = <1>;
484		#size-cells = <0>;
485
486		clk32k_in: clock@0 {
487			compatible = "fixed-clock";
488			reg = <0>;
489			#clock-cells = <0>;
490			clock-frequency = <32768>;
491		};
492	};
493
494	regulators {
495		compatible = "simple-bus";
496		#address-cells = <1>;
497		#size-cells = <0>;
498
499		vdd_3v3_reg: regulator@100 {
500			compatible = "regulator-fixed";
501			reg = <100>;
502			regulator-name = "vdd_3v3";
503			regulator-min-microvolt = <3300000>;
504			regulator-max-microvolt = <3300000>;
505			regulator-always-on;
506		};
507
508		regulator@101 {
509			compatible = "regulator-fixed";
510			reg = <101>;
511			regulator-name = "internal_usb";
512			regulator-min-microvolt = <5000000>;
513			regulator-max-microvolt = <5000000>;
514			enable-active-high;
515			regulator-boot-on;
516			regulator-always-on;
517			gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
518		};
519	};
520
521	sound {
522		compatible = "nvidia,tegra-audio-wm9712-colibri_t20",
523			         "nvidia,tegra-audio-wm9712";
524		nvidia,model = "Colibri T20 AC97 Audio";
525
526		nvidia,audio-routing =
527			"Headphone", "HPOUTL",
528			"Headphone", "HPOUTR",
529			"LineIn", "LINEINL",
530			"LineIn", "LINEINR",
531			"Mic", "MIC1";
532
533		nvidia,ac97-controller = <&ac97>;
534
535		clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
536			 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
537			 <&tegra_car TEGRA20_CLK_CDEV1>;
538		clock-names = "pll_a", "pll_a_out0", "mclk";
539	};
540};
v3.15
 
  1#include "tegra20.dtsi"
  2
  3/ {
  4	model = "Toradex Colibri T20 512MB";
  5	compatible = "toradex,colibri_t20-512", "nvidia,tegra20";
  6
  7	aliases {
  8		rtc0 = "/i2c@7000d000/tps6586x@34";
  9		rtc1 = "/rtc@7000e000";
 10	};
 11
 12	memory {
 13		reg = <0x00000000 0x20000000>;
 14	};
 15
 16	host1x@50000000 {
 17		hdmi@54280000 {
 18			vdd-supply = <&hdmi_vdd_reg>;
 19			pll-supply = <&hdmi_pll_reg>;
 20
 21			nvidia,ddc-i2c-bus = <&i2c_ddc>;
 22			nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7)
 23				GPIO_ACTIVE_HIGH>;
 24		};
 25	};
 26
 27	pinmux@70000014 {
 28		pinctrl-names = "default";
 29		pinctrl-0 = <&state_default>;
 30
 31		state_default: pinmux {
 32			audio_refclk {
 33				nvidia,pins = "cdev1";
 34				nvidia,function = "plla_out";
 35				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 36				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 37			};
 38			crt {
 39				nvidia,pins = "crtp";
 40				nvidia,function = "crt";
 41				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 42				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 43			};
 44			dap3 {
 45				nvidia,pins = "dap3";
 46				nvidia,function = "dap3";
 47				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 48				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 49			};
 50			displaya {
 51				nvidia,pins = "ld0", "ld1", "ld2", "ld3",
 52					"ld4", "ld5", "ld6", "ld7", "ld8",
 53					"ld9", "ld10", "ld11", "ld12", "ld13",
 54					"ld14", "ld15", "ld16", "ld17",
 55					"lhs", "lpw0", "lpw2", "lsc0",
 56					"lsc1", "lsck", "lsda", "lspi", "lvs";
 57				nvidia,function = "displaya";
 58				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 59			};
 60			gpio_dte {
 61				nvidia,pins = "dte";
 62				nvidia,function = "rsvd1";
 63				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 64				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 65			};
 66			gpio_gmi {
 67				nvidia,pins = "ata", "atc", "atd", "ate",
 68					"dap1", "dap2", "dap4", "gpu", "irrx",
 69					"irtx", "spia", "spib", "spic";
 70				nvidia,function = "gmi";
 71				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 72				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 73			};
 74			gpio_pta {
 75				nvidia,pins = "pta";
 76				nvidia,function = "rsvd4";
 77				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 78				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 79			};
 80			gpio_uac {
 81				nvidia,pins = "uac";
 82				nvidia,function = "rsvd2";
 83				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 84				nvidia,tristate = <TEGRA_PIN_DISABLE>;
 85			};
 86			hdint {
 87				nvidia,pins = "hdint";
 88				nvidia,function = "hdmi";
 89				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 90			};
 91			i2c1 {
 92				nvidia,pins = "rm";
 93				nvidia,function = "i2c1";
 94				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
 95				nvidia,tristate = <TEGRA_PIN_ENABLE>;
 96			};
 97			i2c3 {
 98				nvidia,pins = "dtf";
 99				nvidia,function = "i2c3";
100				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
101				nvidia,tristate = <TEGRA_PIN_ENABLE>;
102			};
103			i2cddc {
104				nvidia,pins = "ddc";
105				nvidia,function = "i2c2";
106				nvidia,pull = <TEGRA_PIN_PULL_UP>;
107				nvidia,tristate = <TEGRA_PIN_ENABLE>;
108			};
109			i2cp {
110				nvidia,pins = "i2cp";
111				nvidia,function = "i2cp";
112				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
113				nvidia,tristate = <TEGRA_PIN_DISABLE>;
114			};
115			irda {
116				nvidia,pins = "uad";
117				nvidia,function = "irda";
118				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
119				nvidia,tristate = <TEGRA_PIN_ENABLE>;
120			};
121			nand {
122				nvidia,pins = "kbca", "kbcc", "kbcd",
123					"kbce", "kbcf";
124				nvidia,function = "nand";
125				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
126				nvidia,tristate = <TEGRA_PIN_DISABLE>;
127			};
128			owc {
129				nvidia,pins = "owc";
130				nvidia,function = "owr";
131				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
132				nvidia,tristate = <TEGRA_PIN_ENABLE>;
133			};
134			pmc {
135				nvidia,pins = "pmc";
136				nvidia,function = "pwr_on";
137				nvidia,tristate = <TEGRA_PIN_DISABLE>;
138			};
139			pwm {
140				nvidia,pins = "sdb", "sdc", "sdd";
141				nvidia,function = "pwm";
142				nvidia,tristate = <TEGRA_PIN_ENABLE>;
143			};
144			sdio4 {
145				nvidia,pins = "atb", "gma", "gme";
146				nvidia,function = "sdio4";
147				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
148				nvidia,tristate = <TEGRA_PIN_ENABLE>;
149			};
150			spi1 {
151				nvidia,pins = "spid", "spie", "spif";
152				nvidia,function = "spi1";
153				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
154				nvidia,tristate = <TEGRA_PIN_ENABLE>;
155			};
156			spi4 {
157				nvidia,pins = "slxa", "slxc", "slxd", "slxk";
158				nvidia,function = "spi4";
159				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
160				nvidia,tristate = <TEGRA_PIN_ENABLE>;
161			};
162			uarta {
163				nvidia,pins = "sdio1";
164				nvidia,function = "uarta";
165				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
166				nvidia,tristate = <TEGRA_PIN_ENABLE>;
167			};
168			uartd {
169				nvidia,pins = "gmc";
170				nvidia,function = "uartd";
171				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
172				nvidia,tristate = <TEGRA_PIN_ENABLE>;
173			};
174			ulpi {
175				nvidia,pins = "uaa", "uab", "uda";
176				nvidia,function = "ulpi";
177				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
178				nvidia,tristate = <TEGRA_PIN_DISABLE>;
179			};
180			ulpi_refclk {
181				nvidia,pins = "cdev2";
182				nvidia,function = "pllp_out4";
183				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
184				nvidia,tristate = <TEGRA_PIN_DISABLE>;
185			};
186			usb_gpio {
187				nvidia,pins = "spig", "spih";
188				nvidia,function = "spi2_alt";
189				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
190				nvidia,tristate = <TEGRA_PIN_DISABLE>;
191			};
192			vi {
193				nvidia,pins = "dta", "dtb", "dtc", "dtd";
194				nvidia,function = "vi";
195				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
196				nvidia,tristate = <TEGRA_PIN_ENABLE>;
197			};
198			vi_sc {
199				nvidia,pins = "csus";
200				nvidia,function = "vi_sensor_clk";
201				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
202				nvidia,tristate = <TEGRA_PIN_ENABLE>;
203			};
204		};
205	};
206
207	ac97: ac97@70002000 {
208		status = "okay";
209		nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0)
210			GPIO_ACTIVE_HIGH>;
211		nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0)
212			GPIO_ACTIVE_HIGH>;
213	};
214
 
 
 
 
215	i2c@7000c000 {
216		clock-frequency = <400000>;
217	};
218
 
219	i2c_ddc: i2c@7000c400 {
220		clock-frequency = <100000>;
221	};
222
223	i2c@7000c500 {
224		clock-frequency = <400000>;
225	};
226
 
227	i2c@7000d000 {
228		status = "okay";
229		clock-frequency = <400000>;
230
231		pmic: tps6586x@34 {
232			compatible = "ti,tps6586x";
233			reg = <0x34>;
234			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
235
236			ti,system-power-controller;
237
238			#gpio-cells = <2>;
239			gpio-controller;
240
241			sys-supply = <&vdd_3v3_reg>;
242			vin-sm0-supply = <&sys_reg>;
243			vin-sm1-supply = <&sys_reg>;
244			vin-sm2-supply = <&sys_reg>;
245			vinldo01-supply = <&sm2_reg>;
246			vinldo23-supply = <&vdd_3v3_reg>;
247			vinldo4-supply = <&vdd_3v3_reg>;
248			vinldo678-supply = <&vdd_3v3_reg>;
249			vinldo9-supply = <&vdd_3v3_reg>;
250
251			regulators {
252				#address-cells = <1>;
253				#size-cells = <0>;
254
255				sys_reg: regulator@0 {
256					reg = <0>;
257					regulator-compatible = "sys";
258					regulator-name = "vdd_sys";
259					regulator-always-on;
260				};
261
262				regulator@1 {
263					reg = <1>;
264					regulator-compatible = "sm0";
265					regulator-name = "vdd_sm0,vdd_core";
266					regulator-min-microvolt = <1200000>;
267					regulator-max-microvolt = <1200000>;
268					regulator-always-on;
269				};
270
271				regulator@2 {
272					reg = <2>;
273					regulator-compatible = "sm1";
274					regulator-name = "vdd_sm1,vdd_cpu";
275					regulator-min-microvolt = <1000000>;
276					regulator-max-microvolt = <1000000>;
277					regulator-always-on;
278				};
279
280				sm2_reg: regulator@3 {
281					reg = <3>;
282					regulator-compatible = "sm2";
283					regulator-name = "vdd_sm2,vin_ldo*";
284					regulator-min-microvolt = <1800000>;
285					regulator-max-microvolt = <1800000>;
286					regulator-always-on;
287				};
288
289				/* LDO0 is not connected to anything */
290
291				regulator@5 {
292					reg = <5>;
293					regulator-compatible = "ldo1";
294					regulator-name = "vdd_ldo1,avdd_pll*";
295					regulator-min-microvolt = <1100000>;
296					regulator-max-microvolt = <1100000>;
297					regulator-always-on;
298				};
299
300				regulator@6 {
301					reg = <6>;
302					regulator-compatible = "ldo2";
303					regulator-name = "vdd_ldo2,vdd_rtc";
304					regulator-min-microvolt = <1200000>;
305					regulator-max-microvolt = <1200000>;
306				};
307
308				/* LDO3 is not connected to anything */
309
310				regulator@8 {
311					reg = <8>;
312					regulator-compatible = "ldo4";
313					regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
314					regulator-min-microvolt = <1800000>;
315					regulator-max-microvolt = <1800000>;
316					regulator-always-on;
317				};
318
319				ldo5_reg: regulator@9 {
320					reg = <9>;
321					regulator-compatible = "ldo5";
322					regulator-name = "vdd_ldo5,vdd_fuse";
323					regulator-min-microvolt = <3300000>;
324					regulator-max-microvolt = <3300000>;
325					regulator-always-on;
326				};
327
328				regulator@10 {
329					reg = <10>;
330					regulator-compatible = "ldo6";
331					regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
332					regulator-min-microvolt = <2850000>;
333					regulator-max-microvolt = <2850000>;
334				};
335
336				hdmi_vdd_reg: regulator@11 {
337					reg = <11>;
338					regulator-compatible = "ldo7";
339					regulator-name = "vdd_ldo7,avdd_hdmi";
340					regulator-min-microvolt = <3300000>;
341					regulator-max-microvolt = <3300000>;
342				};
343
344				hdmi_pll_reg: regulator@12 {
345					reg = <12>;
346					regulator-compatible = "ldo8";
347					regulator-name = "vdd_ldo8,avdd_hdmi_pll";
348					regulator-min-microvolt = <1800000>;
349					regulator-max-microvolt = <1800000>;
350				};
351
352				regulator@13 {
353					reg = <13>;
354					regulator-compatible = "ldo9";
355					regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
356					regulator-min-microvolt = <2850000>;
357					regulator-max-microvolt = <2850000>;
358					regulator-always-on;
359				};
360
361				regulator@14 {
362					reg = <14>;
363					regulator-compatible = "ldo_rtc";
364					regulator-name = "vdd_rtc_out,vdd_cell";
365					regulator-min-microvolt = <3300000>;
366					regulator-max-microvolt = <3300000>;
367					regulator-always-on;
368				};
369			};
370		};
371
372		temperature-sensor@4c {
373			compatible = "national,lm95245";
374			reg = <0x4c>;
375		};
376	};
377
378	pmc@7000e400 {
379		nvidia,suspend-mode = <1>;
380		nvidia,cpu-pwr-good-time = <5000>;
381		nvidia,cpu-pwr-off-time = <5000>;
382		nvidia,core-pwr-good-time = <3845 3845>;
383		nvidia,core-pwr-off-time = <3875>;
384		nvidia,sys-clock-req-active-high;
385	};
386
387	memory-controller@7000f400 {
388		emc-table@83250 {
389			reg = <83250>;
390			compatible = "nvidia,tegra20-emc-table";
391			clock-frequency = <83250>;
392			nvidia,emc-registers =   <0x00000005 0x00000011
393				0x00000004 0x00000002 0x00000004 0x00000004
394				0x00000001 0x0000000a 0x00000002 0x00000002
395				0x00000001 0x00000001 0x00000003 0x00000004
396				0x00000003 0x00000009 0x0000000c 0x0000025f
397				0x00000000 0x00000003 0x00000003 0x00000002
398				0x00000002 0x00000001 0x00000008 0x000000c8
399				0x00000003 0x00000005 0x00000003 0x0000000c
400				0x00000002 0x00000000 0x00000000 0x00000002
401				0x00000000 0x00000000 0x00000083 0x00520006
402				0x00000010 0x00000008 0x00000000 0x00000000
403				0x00000000 0x00000000 0x00000000 0x00000000>;
404		};
405		emc-table@133200 {
406			reg = <133200>;
407			compatible = "nvidia,tegra20-emc-table";
408			clock-frequency = <133200>;
409			nvidia,emc-registers =   <0x00000008 0x00000019
410				0x00000006 0x00000002 0x00000004 0x00000004
411				0x00000001 0x0000000a 0x00000002 0x00000002
412				0x00000002 0x00000001 0x00000003 0x00000004
413				0x00000003 0x00000009 0x0000000c 0x0000039f
414				0x00000000 0x00000003 0x00000003 0x00000002
415				0x00000002 0x00000001 0x00000008 0x000000c8
416				0x00000003 0x00000007 0x00000003 0x0000000c
417				0x00000002 0x00000000 0x00000000 0x00000002
418				0x00000000 0x00000000 0x00000083 0x00510006
419				0x00000010 0x00000008 0x00000000 0x00000000
420				0x00000000 0x00000000 0x00000000 0x00000000>;
421		};
422		emc-table@166500 {
423			reg = <166500>;
424			compatible = "nvidia,tegra20-emc-table";
425			clock-frequency = <166500>;
426			nvidia,emc-registers =   <0x0000000a 0x00000021
427				0x00000008 0x00000003 0x00000004 0x00000004
428				0x00000002 0x0000000a 0x00000003 0x00000003
429				0x00000002 0x00000001 0x00000003 0x00000004
430				0x00000003 0x00000009 0x0000000c 0x000004df
431				0x00000000 0x00000003 0x00000003 0x00000003
432				0x00000003 0x00000001 0x00000009 0x000000c8
433				0x00000003 0x00000009 0x00000004 0x0000000c
434				0x00000002 0x00000000 0x00000000 0x00000002
435				0x00000000 0x00000000 0x00000083 0x004f0006
436				0x00000010 0x00000008 0x00000000 0x00000000
437				0x00000000 0x00000000 0x00000000 0x00000000>;
438		};
439		emc-table@333000 {
440			reg = <333000>;
441			compatible = "nvidia,tegra20-emc-table";
442			clock-frequency = <333000>;
443			nvidia,emc-registers =   <0x00000014 0x00000041
444				0x0000000f 0x00000005 0x00000004 0x00000005
445				0x00000003 0x0000000a 0x00000005 0x00000005
446				0x00000004 0x00000001 0x00000003 0x00000004
447				0x00000003 0x00000009 0x0000000c 0x000009ff
448				0x00000000 0x00000003 0x00000003 0x00000005
449				0x00000005 0x00000001 0x0000000e 0x000000c8
450				0x00000003 0x00000011 0x00000006 0x0000000c
451				0x00000002 0x00000000 0x00000000 0x00000002
452				0x00000000 0x00000000 0x00000083 0x00380006
453				0x00000010 0x00000008 0x00000000 0x00000000
454				0x00000000 0x00000000 0x00000000 0x00000000>;
455		};
456	};
457
458	usb@c5004000 {
459		status = "okay";
460		nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
461			GPIO_ACTIVE_LOW>;
462	};
463
464	usb-phy@c5004000 {
465		status = "okay";
466		nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1)
467			GPIO_ACTIVE_LOW>;
468	};
469
470	sdhci@c8000600 {
471		cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
472	};
473
474	clocks {
475		compatible = "simple-bus";
476		#address-cells = <1>;
477		#size-cells = <0>;
478
479		clk32k_in: clock@0 {
480			compatible = "fixed-clock";
481			reg=<0>;
482			#clock-cells = <0>;
483			clock-frequency = <32768>;
484		};
485	};
486
487	regulators {
488		compatible = "simple-bus";
489		#address-cells = <1>;
490		#size-cells = <0>;
491
492		vdd_3v3_reg: regulator@100 {
493			compatible = "regulator-fixed";
494			reg = <100>;
495			regulator-name = "vdd_3v3";
496			regulator-min-microvolt = <3300000>;
497			regulator-max-microvolt = <3300000>;
498			regulator-always-on;
499		};
500
501		regulator@101 {
502			compatible = "regulator-fixed";
503			reg = <101>;
504			regulator-name = "internal_usb";
505			regulator-min-microvolt = <5000000>;
506			regulator-max-microvolt = <5000000>;
507			enable-active-high;
508			regulator-boot-on;
509			regulator-always-on;
510			gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
511		};
512	};
513
514	sound {
515		compatible = "nvidia,tegra-audio-wm9712-colibri_t20",
516			         "nvidia,tegra-audio-wm9712";
517		nvidia,model = "Colibri T20 AC97 Audio";
518
519		nvidia,audio-routing =
520			"Headphone", "HPOUTL",
521			"Headphone", "HPOUTR",
522			"LineIn", "LINEINL",
523			"LineIn", "LINEINR",
524			"Mic", "MIC1";
525
526		nvidia,ac97-controller = <&ac97>;
527
528		clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
529			 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
530			 <&tegra_car TEGRA20_CLK_CDEV1>;
531		clock-names = "pll_a", "pll_a_out0", "mclk";
532	};
533};