1/dts-v1/;
2
3#include "tegra124.dtsi"
4
5/ {
6	model = "Colorado Engineering TK1-SOM";
7	compatible = "nvidia,cei-tk1-som", "nvidia,tegra124";
8
9	chosen {
10		stdout-path = &uartd;
11	};
12
13	aliases {
14		i2c0 = "/i2c@7000d000";
15		i2c1 = "/i2c@7000c000";
16		i2c2 = "/i2c@7000c400";
17		i2c3 = "/i2c@7000c500";
18		i2c4 = "/i2c@7000c700";
19		mmc0 = "/sdhci@700b0600";
20		mmc1 = "/sdhci@700b0400";
21		spi0 = "/spi@7000d400";
22		spi1 = "/spi@7000da00";
23		usb0 = "/usb@7d000000";
24		usb1 = "/usb@7d008000";
25	};
26
27	memory {
28		device_type = "memory";
29		reg = <0x80000000 0x80000000>;
30	};
31
32	pcie@1003000 {
33		status = "okay";
34
35		avddio-pex-supply = <&vdd_1v05_run>;
36		dvddio-pex-supply = <&vdd_1v05_run>;
37		avdd-pex-pll-supply = <&vdd_1v05_run>;
38		hvdd-pex-supply = <&vdd_3v3_lp0>;
39		hvdd-pex-pll-e-supply = <&vdd_3v3_lp0>;
40		vddio-pex-ctl-supply = <&vdd_3v3_lp0>;
41		avdd-pll-erefe-supply = <&avdd_1v05_run>;
42
43		pci@1,0 {
44			status = "okay";
45			nvidia,num-lanes = <4>;
46		};
47
48		pci@2,0 {
49			status = "okay";
50		};
51	};
52
53	i2c@7000c000 {
54		status = "okay";
55		clock-frequency = <100000>;
56	};
57
58	i2c@7000c400 {
59		status = "okay";
60		clock-frequency = <100000>;
61	};
62
63	i2c@7000c500 {
64		status = "okay";
65		clock-frequency = <100000>;
66	};
67
68	i2c@7000c700 {
69		status = "okay";
70		clock-frequency = <100000>;
71	};
72
73	/* Expansion PWR_I2C_*, on-board components */
74	i2c@7000d000 {
75		status = "okay";
76		clock-frequency = <400000>;
77
78		pmic: pmic@40 {
79			compatible = "ams,as3722";
80			reg = <0x40>;
81			interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
82
83			ams,system-power-controller;
84
85			#interrupt-cells = <2>;
86			interrupt-controller;
87
88			gpio-controller;
89			#gpio-cells = <2>;
90
91			pinctrl-names = "default";
92			pinctrl-0 = <&as3722_default>;
93
94			as3722_default: pinmux {
95				gpio0 {
96					pins = "gpio0";
97					function = "gpio";
98					bias-pull-down;
99				};
100
101				gpio1_2_4_7 {
102					pins = "gpio1", "gpio2", "gpio4", "gpio7";
103					function = "gpio";
104					bias-pull-up;
105				};
106
107				gpio3_5_6 {
108					pins = "gpio3", "gpio5", "gpio6";
109					bias-high-impedance;
110				};
111			};
112
113			regulators {
114				vsup-sd2-supply = <&vdd_5v0_sys>;
115				vsup-sd3-supply = <&vdd_5v0_sys>;
116				vsup-sd4-supply = <&vdd_5v0_sys>;
117				vsup-sd5-supply = <&vdd_5v0_sys>;
118				vin-ldo0-supply = <&vdd_1v35_lp0>;
119				vin-ldo1-6-supply = <&vdd_3v3_run>;
120				vin-ldo2-5-7-supply = <&vddio_1v8>;
121				vin-ldo3-4-supply = <&vdd_3v3_sys>;
122				vin-ldo9-10-supply = <&vdd_5v0_sys>;
123				vin-ldo11-supply = <&vdd_3v3_run>;
124
125				sd0 {
126					regulator-name = "+VDD_CPU_AP";
127					regulator-min-microvolt = <700000>;
128					regulator-max-microvolt = <1400000>;
129					regulator-min-microamp = <3500000>;
130					regulator-max-microamp = <3500000>;
131					regulator-always-on;
132					regulator-boot-on;
133					ams,ext-control = <2>;
134				};
135
136				sd1 {
137					regulator-name = "+VDD_CORE";
138					regulator-min-microvolt = <700000>;
139					regulator-max-microvolt = <1350000>;
140					regulator-min-microamp = <2500000>;
141					regulator-max-microamp = <2500000>;
142					regulator-always-on;
143					regulator-boot-on;
144					ams,ext-control = <1>;
145				};
146
147				vdd_1v35_lp0: sd2 {
148					regulator-name = "+1.35V_LP0(sd2)";
149					regulator-min-microvolt = <1350000>;
150					regulator-max-microvolt = <1350000>;
151					regulator-always-on;
152					regulator-boot-on;
153				};
154
155				sd3 {
156					regulator-name = "+1.35V_LP0(sd3)";
157					regulator-min-microvolt = <1350000>;
158					regulator-max-microvolt = <1350000>;
159					regulator-always-on;
160					regulator-boot-on;
161				};
162
163				vdd_1v05_run: sd4 {
164					regulator-name = "+1.05V_RUN";
165					regulator-min-microvolt = <1050000>;
166					regulator-max-microvolt = <1050000>;
167				};
168
169				vddio_1v8: sd5 {
170					regulator-name = "+1.8V_VDDIO";
171					regulator-min-microvolt = <1800000>;
172					regulator-max-microvolt = <1800000>;
173					regulator-boot-on;
174					regulator-always-on;
175				};
176
177				vdd_gpu: sd6 {
178					regulator-name = "+VDD_GPU_AP";
179					regulator-min-microvolt = <650000>;
180					regulator-max-microvolt = <1200000>;
181					regulator-min-microamp = <3500000>;
182					regulator-max-microamp = <3500000>;
183					regulator-boot-on;
184					regulator-always-on;
185				};
186
187				avdd_1v05_run: ldo0 {
188					regulator-name = "+1.05V_RUN_AVDD";
189					regulator-min-microvolt = <1050000>;
190					regulator-max-microvolt = <1050000>;
191					regulator-boot-on;
192					regulator-always-on;
193					ams,ext-control = <1>;
194				};
195
196				ldo1 {
197					regulator-name = "+1.8V_RUN_CAM";
198					regulator-min-microvolt = <1800000>;
199					regulator-max-microvolt = <1800000>;
200				};
201
202				ldo2 {
203					regulator-name = "+1.2V_GEN_AVDD";
204					regulator-min-microvolt = <1200000>;
205					regulator-max-microvolt = <1200000>;
206					regulator-boot-on;
207					regulator-always-on;
208				};
209
210				ldo3 {
211					regulator-name = "+1.05V_LP0_VDD_RTC";
212					regulator-min-microvolt = <1000000>;
213					regulator-max-microvolt = <1000000>;
214					regulator-boot-on;
215					regulator-always-on;
216					ams,enable-tracking;
217				};
218
219				ldo4 {
220					regulator-name = "+2.8V_RUN_CAM";
221					regulator-min-microvolt = <2800000>;
222					regulator-max-microvolt = <2800000>;
223				};
224
225				ldo5 {
226					regulator-name = "+1.2V_RUN_CAM_FRONT";
227					regulator-min-microvolt = <1200000>;
228					regulator-max-microvolt = <1200000>;
229				};
230
231				vddio_sdmmc3: ldo6 {
232					regulator-name = "+VDDIO_SDMMC3";
233					regulator-min-microvolt = <1800000>;
234					regulator-max-microvolt = <3300000>;
235				};
236
237				ldo7 {
238					regulator-name = "+1.05V_RUN_CAM_REAR";
239					regulator-min-microvolt = <1050000>;
240					regulator-max-microvolt = <1050000>;
241				};
242
243				ldo9 {
244					regulator-name = "+3.3V_RUN_TOUCH";
245					regulator-min-microvolt = <2800000>;
246					regulator-max-microvolt = <2800000>;
247				};
248
249				ldo10 {
250					regulator-name = "+2.8V_RUN_CAM_AF";
251					regulator-min-microvolt = <2800000>;
252					regulator-max-microvolt = <2800000>;
253				};
254
255				ldo11 {
256					regulator-name = "+1.8V_RUN_VPP_FUSE";
257					regulator-min-microvolt = <1800000>;
258					regulator-max-microvolt = <1800000>;
259				};
260			};
261		};
262	};
263
264	i2c@7000d100 {
265		status = "okay";
266		clock-frequency = <400000>;
267	};
268
269	spi@7000d400 {
270		status = "okay";
271		spi-max-frequency = <25000000>;
272	};
273
274	spi@7000da00 {
275		status = "okay";
276		spi-max-frequency = <25000000>;
277	};
278
279	padctl@7009f000 {
280		pinctrl-0 = <&padctl_default>;
281		pinctrl-names = "default";
282
283		padctl_default: pinmux {
284			usb3 {
285				nvidia,lanes = "sata-0";
286				nvidia,function = "usb3";
287				nvidia,iddq = <0>;
288			};
289
290			pcie {
291				nvidia,lanes = "pcie-0", "pcie-1", "pcie-2", "pcie-3",
292					      "pcie-4";
293				nvidia,function = "pcie";
294				nvidia,iddq = <0>;
295			};
296
297		};
298	};
299
300	sdhci@700b0400 {
301		status = "okay";
302		cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
303		power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>;
304		wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_HIGH>;
305		bus-width = <4>;
306	};
307
308	sdhci@700b0600 {
309		status = "okay";
310		bus-width = <8>;
311	};
312
313	usb@7d000000 {
314		status = "okay";
315		dr_mode = "otg";
316		nvidia,vbus-gpio = <&gpio TEGRA_GPIO(N, 4) GPIO_ACTIVE_HIGH>;
317	};
318
319	usb@7d008000 {
320		status = "okay";
321		nvidia,vbus-gpio = <&gpio TEGRA_GPIO(N, 5) GPIO_ACTIVE_HIGH>;
322	};
323
324	clocks {
325		compatible = "simple-bus";
326		#address-cells = <1>;
327		#size-cells = <0>;
328
329		clk32k_in: clock@0 {
330			compatible = "fixed-clock";
331			reg = <0>;
332			#clock-cells = <0>;
333			clock-frequency = <32768>;
334		};
335	};
336
337	regulators {
338		compatible = "simple-bus";
339		#address-cells = <1>;
340		#size-cells = <0>;
341
342		vdd_mux: regulator@0 {
343			compatible = "regulator-fixed";
344			reg = <0>;
345			regulator-name = "+VDD_MUX";
346			regulator-min-microvolt = <12000000>;
347			regulator-max-microvolt = <12000000>;
348			regulator-always-on;
349			regulator-boot-on;
350		};
351
352		vdd_5v0_sys: regulator@1 {
353			compatible = "regulator-fixed";
354			reg = <1>;
355			regulator-name = "+5V_SYS";
356			regulator-min-microvolt = <5000000>;
357			regulator-max-microvolt = <5000000>;
358			regulator-always-on;
359			regulator-boot-on;
360			vin-supply = <&vdd_mux>;
361		};
362
363		vdd_3v3_sys: regulator@2 {
364			compatible = "regulator-fixed";
365			reg = <2>;
366			regulator-name = "+3.3V_SYS";
367			regulator-min-microvolt = <3300000>;
368			regulator-max-microvolt = <3300000>;
369			regulator-always-on;
370			regulator-boot-on;
371			vin-supply = <&vdd_mux>;
372		};
373
374		vdd_3v3_run: regulator@3 {
375			compatible = "regulator-fixed";
376			reg = <3>;
377			regulator-name = "+3.3V_RUN";
378			regulator-min-microvolt = <3300000>;
379			regulator-max-microvolt = <3300000>;
380			regulator-always-on;
381			regulator-boot-on;
382			gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
383			enable-active-high;
384			vin-supply = <&vdd_3v3_sys>;
385		};
386
387		vdd_3v3_hdmi: regulator@4 {
388			compatible = "regulator-fixed";
389			reg = <4>;
390			regulator-name = "+3.3V_AVDD_HDMI_AP_GATED";
391			regulator-min-microvolt = <3300000>;
392			regulator-max-microvolt = <3300000>;
393			vin-supply = <&vdd_3v3_run>;
394		};
395
396		vdd_usb1_vbus: regulator@7 {
397			compatible = "regulator-fixed";
398			reg = <7>;
399			regulator-name = "+USB0_VBUS_SW";
400			regulator-min-microvolt = <5000000>;
401			regulator-max-microvolt = <5000000>;
402			gpio = <&gpio TEGRA_GPIO(N, 4) GPIO_ACTIVE_HIGH>;
403			enable-active-high;
404			gpio-open-drain;
405			vin-supply = <&vdd_5v0_sys>;
406		};
407
408		vdd_usb3_vbus: regulator@8 {
409			compatible = "regulator-fixed";
410			reg = <8>;
411			regulator-name = "+5V_USB_HS";
412			regulator-min-microvolt = <5000000>;
413			regulator-max-microvolt = <5000000>;
414			gpio = <&gpio TEGRA_GPIO(N, 5) GPIO_ACTIVE_HIGH>;
415			enable-active-high;
416			gpio-open-drain;
417			vin-supply = <&vdd_5v0_sys>;
418		};
419
420		vdd_3v3_lp0: regulator@10 {
421			compatible = "regulator-fixed";
422			reg = <10>;
423			regulator-name = "+3.3V_LP0";
424			regulator-min-microvolt = <3300000>;
425			regulator-max-microvolt = <3300000>;
426			regulator-always-on;
427			regulator-boot-on;
428			gpio = <&pmic 2 GPIO_ACTIVE_HIGH>;
429			enable-active-high;
430			vin-supply = <&vdd_3v3_sys>;
431		};
432
433		vdd_hdmi_pll: regulator@11 {
434			compatible = "regulator-fixed";
435			reg = <11>;
436			regulator-name = "+1.05V_RUN_AVDD_HDMI_PLL";
437			regulator-min-microvolt = <1050000>;
438			regulator-max-microvolt = <1050000>;
439			gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>;
440			vin-supply = <&vdd_1v05_run>;
441		};
442
443		vdd_5v0_hdmi: regulator@12 {
444			compatible = "regulator-fixed";
445			reg = <12>;
446			regulator-name = "+5V_HDMI_CON";
447			regulator-min-microvolt = <5000000>;
448			regulator-max-microvolt = <5000000>;
449			gpio = <&gpio TEGRA_GPIO(K, 6) GPIO_ACTIVE_HIGH>;
450			enable-active-high;
451			vin-supply = <&vdd_5v0_sys>;
452		};
453
454		/* Molex power connector */
455		vdd_5v0_sata: regulator@13 {
456			compatible = "regulator-fixed";
457			reg = <13>;
458			regulator-name = "+5V_SATA";
459			regulator-min-microvolt = <5000000>;
460			regulator-max-microvolt = <5000000>;
461			gpio = <&gpio TEGRA_GPIO(EE, 2) GPIO_ACTIVE_HIGH>;
462			enable-active-high;
463			vin-supply = <&vdd_5v0_sys>;
464		};
465
466		vdd_12v0_sata: regulator@14 {
467			compatible = "regulator-fixed";
468			reg = <14>;
469			regulator-name = "+12V_SATA";
470			regulator-min-microvolt = <12000000>;
471			regulator-max-microvolt = <12000000>;
472			gpio = <&gpio TEGRA_GPIO(EE, 2) GPIO_ACTIVE_HIGH>;
473			enable-active-high;
474			vin-supply = <&vdd_mux>;
475		};
476	};
477};
478
479&uartd {
480	status = "okay";
481};
482