1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2724ba675SRob Herring#include <dt-bindings/input/input.h>
3724ba675SRob Herring#include <dt-bindings/thermal/thermal.h>
4724ba675SRob Herring#include "tegra30.dtsi"
5724ba675SRob Herring#include "tegra30-cpu-opp.dtsi"
6724ba675SRob Herring#include "tegra30-cpu-opp-microvolt.dtsi"
7724ba675SRob Herring
8724ba675SRob Herring/**
9724ba675SRob Herring * This file contains common DT entry for all fab version of Cardhu.
10724ba675SRob Herring * There is multiple fab version of Cardhu starting from A01 to A07.
11724ba675SRob Herring * Cardhu fab version A01 and A03 are not supported. Cardhu fab version
12724ba675SRob Herring * A02 will have different sets of GPIOs for fixed regulator compare to
13724ba675SRob Herring * Cardhu fab version A04. The Cardhu fab version A05, A06, A07 are
14724ba675SRob Herring * compatible with fab version A04. Based on Cardhu fab version, the
15724ba675SRob Herring * related dts file need to be chosen like for Cardhu fab version A02,
16724ba675SRob Herring * use tegra30-cardhu-a02.dts, Cardhu fab version A04 and later, use
17724ba675SRob Herring * tegra30-cardhu-a04.dts.
18724ba675SRob Herring * The identification of board is done in two ways, by looking the sticker
19724ba675SRob Herring * on PCB and by reading board id eeprom.
20724ba675SRob Herring * The sticker will have number like 600-81291-1000-002 C.3. In this 4th
21724ba675SRob Herring * number is the fab version like here it is 002 and hence fab version A02.
22724ba675SRob Herring * The (downstream internal) U-Boot of Cardhu display the board-id as
23724ba675SRob Herring * follows:
24724ba675SRob Herring * BoardID: 0C5B, SKU: 0A01, Fab: 02, Rev: 45.00
25724ba675SRob Herring * In this Fab version is 02 i.e. A02.
26724ba675SRob Herring * The BoardID I2C eeprom is interfaced through i2c5 (pwr_i2c address 0x56).
27724ba675SRob Herring * The location 0x8 of this eeprom contains the Fab version. It is 1 byte
28724ba675SRob Herring * wide.
29724ba675SRob Herring */
30724ba675SRob Herring
31724ba675SRob Herring/ {
32724ba675SRob Herring	model = "NVIDIA Tegra30 Cardhu evaluation board";
33724ba675SRob Herring	compatible = "nvidia,cardhu", "nvidia,tegra30";
34724ba675SRob Herring
35724ba675SRob Herring	aliases {
36724ba675SRob Herring		rtc0 = "/i2c@7000d000/tps65911@2d";
37724ba675SRob Herring		rtc1 = "/rtc@7000e000";
38724ba675SRob Herring		serial0 = &uarta;
39724ba675SRob Herring		serial1 = &uartc;
40724ba675SRob Herring	};
41724ba675SRob Herring
42724ba675SRob Herring	chosen {
43724ba675SRob Herring		stdout-path = "serial0:115200n8";
44724ba675SRob Herring	};
45724ba675SRob Herring
46724ba675SRob Herring	memory@80000000 {
47724ba675SRob Herring		reg = <0x80000000 0x40000000>;
48724ba675SRob Herring	};
49724ba675SRob Herring
50724ba675SRob Herring	pcie@3000 {
51724ba675SRob Herring		status = "okay";
52724ba675SRob Herring
53724ba675SRob Herring		/* AVDD_PEXA and VDD_PEXA inputs are grounded on Cardhu. */
54724ba675SRob Herring		avdd-pexb-supply = <&ldo1_reg>;
55724ba675SRob Herring		vdd-pexb-supply = <&ldo1_reg>;
56724ba675SRob Herring		avdd-pex-pll-supply = <&ldo1_reg>;
57724ba675SRob Herring		hvdd-pex-supply = <&pex_hvdd_3v3_reg>;
58724ba675SRob Herring		vddio-pex-ctl-supply = <&sys_3v3_reg>;
59724ba675SRob Herring		avdd-plle-supply = <&ldo2_reg>;
60724ba675SRob Herring
61724ba675SRob Herring		pci@1,0 {
62724ba675SRob Herring			nvidia,num-lanes = <4>;
63724ba675SRob Herring		};
64724ba675SRob Herring
65724ba675SRob Herring		pci@2,0 {
66724ba675SRob Herring			nvidia,num-lanes = <1>;
67724ba675SRob Herring		};
68724ba675SRob Herring
69724ba675SRob Herring		pci@3,0 {
70724ba675SRob Herring			status = "okay";
71724ba675SRob Herring			nvidia,num-lanes = <1>;
72724ba675SRob Herring		};
73724ba675SRob Herring	};
74724ba675SRob Herring
75724ba675SRob Herring	host1x@50000000 {
76724ba675SRob Herring		dc@54200000 {
77724ba675SRob Herring			rgb {
78724ba675SRob Herring				status = "okay";
79724ba675SRob Herring
80724ba675SRob Herring				nvidia,panel = <&panel>;
81724ba675SRob Herring			};
82724ba675SRob Herring		};
83724ba675SRob Herring	};
84724ba675SRob Herring
85724ba675SRob Herring	pinmux@70000868 {
86724ba675SRob Herring		pinctrl-names = "default";
87724ba675SRob Herring		pinctrl-0 = <&state_default>;
88724ba675SRob Herring
89724ba675SRob Herring		state_default: pinmux {
90724ba675SRob Herring			sdmmc1_clk_pz0 {
91724ba675SRob Herring				nvidia,pins = "sdmmc1_clk_pz0";
92724ba675SRob Herring				nvidia,function = "sdmmc1";
93724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
94724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
95724ba675SRob Herring			};
96724ba675SRob Herring			sdmmc1_cmd_pz1 {
97724ba675SRob Herring				nvidia,pins =	"sdmmc1_cmd_pz1",
98724ba675SRob Herring						"sdmmc1_dat0_py7",
99724ba675SRob Herring						"sdmmc1_dat1_py6",
100724ba675SRob Herring						"sdmmc1_dat2_py5",
101724ba675SRob Herring						"sdmmc1_dat3_py4";
102724ba675SRob Herring				nvidia,function = "sdmmc1";
103724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_UP>;
104724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
105724ba675SRob Herring			};
106724ba675SRob Herring			sdmmc3_clk_pa6 {
107724ba675SRob Herring				nvidia,pins = "sdmmc3_clk_pa6";
108724ba675SRob Herring				nvidia,function = "sdmmc3";
109724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
110724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
111724ba675SRob Herring			};
112724ba675SRob Herring			sdmmc3_cmd_pa7 {
113724ba675SRob Herring				nvidia,pins =	"sdmmc3_cmd_pa7",
114724ba675SRob Herring						"sdmmc3_dat0_pb7",
115724ba675SRob Herring						"sdmmc3_dat1_pb6",
116724ba675SRob Herring						"sdmmc3_dat2_pb5",
117724ba675SRob Herring						"sdmmc3_dat3_pb4";
118724ba675SRob Herring				nvidia,function = "sdmmc3";
119724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_UP>;
120724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
121724ba675SRob Herring			};
122724ba675SRob Herring			sdmmc4_clk_pcc4 {
123724ba675SRob Herring				nvidia,pins =	"sdmmc4_clk_pcc4",
124724ba675SRob Herring						"sdmmc4_rst_n_pcc3";
125724ba675SRob Herring				nvidia,function = "sdmmc4";
126724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
127724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
128724ba675SRob Herring			};
129724ba675SRob Herring			sdmmc4_dat0_paa0 {
130724ba675SRob Herring				nvidia,pins =	"sdmmc4_dat0_paa0",
131724ba675SRob Herring						"sdmmc4_dat1_paa1",
132724ba675SRob Herring						"sdmmc4_dat2_paa2",
133724ba675SRob Herring						"sdmmc4_dat3_paa3",
134724ba675SRob Herring						"sdmmc4_dat4_paa4",
135724ba675SRob Herring						"sdmmc4_dat5_paa5",
136724ba675SRob Herring						"sdmmc4_dat6_paa6",
137724ba675SRob Herring						"sdmmc4_dat7_paa7";
138724ba675SRob Herring				nvidia,function = "sdmmc4";
139724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_UP>;
140724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
141724ba675SRob Herring			};
142724ba675SRob Herring			dap2_fs_pa2 {
143724ba675SRob Herring				nvidia,pins =	"dap2_fs_pa2",
144724ba675SRob Herring						"dap2_sclk_pa3",
145724ba675SRob Herring						"dap2_din_pa4",
146724ba675SRob Herring						"dap2_dout_pa5";
147724ba675SRob Herring				nvidia,function = "i2s1";
148724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
149724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
150724ba675SRob Herring			};
151724ba675SRob Herring			sdio3 {
152724ba675SRob Herring				nvidia,pins = "drive_sdio3";
153724ba675SRob Herring				nvidia,high-speed-mode = <TEGRA_PIN_DISABLE>;
154724ba675SRob Herring				nvidia,schmitt = <TEGRA_PIN_DISABLE>;
155724ba675SRob Herring				nvidia,pull-down-strength = <46>;
156724ba675SRob Herring				nvidia,pull-up-strength = <42>;
157724ba675SRob Herring				nvidia,slew-rate-rising = <TEGRA_PIN_SLEW_RATE_FAST>;
158724ba675SRob Herring				nvidia,slew-rate-falling = <TEGRA_PIN_SLEW_RATE_FAST>;
159724ba675SRob Herring			};
160724ba675SRob Herring			uart3_txd_pw6 {
161724ba675SRob Herring				nvidia,pins =	"uart3_txd_pw6",
162724ba675SRob Herring						"uart3_cts_n_pa1",
163724ba675SRob Herring						"uart3_rts_n_pc0",
164724ba675SRob Herring						"uart3_rxd_pw7";
165724ba675SRob Herring				nvidia,function = "uartc";
166724ba675SRob Herring				nvidia,pull = <TEGRA_PIN_PULL_NONE>;
167724ba675SRob Herring				nvidia,tristate = <TEGRA_PIN_DISABLE>;
168724ba675SRob Herring			};
169724ba675SRob Herring		};
170724ba675SRob Herring	};
171724ba675SRob Herring
172724ba675SRob Herring	serial@70006000 {
1739766116aSThierry Reding		/delete-property/ dmas;
1749766116aSThierry Reding		/delete-property/ dma-names;
175724ba675SRob Herring		status = "okay";
176724ba675SRob Herring	};
177724ba675SRob Herring
178724ba675SRob Herring	serial@70006200 {
179724ba675SRob Herring		compatible = "nvidia,tegra30-hsuart";
180*500b861dSThierry Reding		reset-names = "serial";
181724ba675SRob Herring		/delete-property/ reg-shift;
182724ba675SRob Herring		status = "okay";
183724ba675SRob Herring	};
184724ba675SRob Herring
185724ba675SRob Herring	pwm@7000a000 {
186724ba675SRob Herring		status = "okay";
187724ba675SRob Herring	};
188724ba675SRob Herring
189724ba675SRob Herring	panelddc: i2c@7000c000 {
190724ba675SRob Herring		status = "okay";
191724ba675SRob Herring		clock-frequency = <100000>;
192724ba675SRob Herring	};
193724ba675SRob Herring
194724ba675SRob Herring	i2c@7000c400 {
195724ba675SRob Herring		status = "okay";
196724ba675SRob Herring		clock-frequency = <100000>;
197724ba675SRob Herring	};
198724ba675SRob Herring
199724ba675SRob Herring	i2c@7000c500 {
200724ba675SRob Herring		status = "okay";
201724ba675SRob Herring		clock-frequency = <100000>;
202724ba675SRob Herring
203724ba675SRob Herring		/* ALS and Proximity sensor */
204724ba675SRob Herring		isl29028@44 {
205724ba675SRob Herring			compatible = "isil,isl29028";
206724ba675SRob Herring			reg = <0x44>;
207724ba675SRob Herring			interrupt-parent = <&gpio>;
208724ba675SRob Herring			interrupts = <TEGRA_GPIO(L, 0) IRQ_TYPE_LEVEL_HIGH>;
209724ba675SRob Herring		};
210724ba675SRob Herring
211724ba675SRob Herring		i2cmux@70 {
212724ba675SRob Herring			compatible = "nxp,pca9546";
213724ba675SRob Herring			#address-cells = <1>;
214724ba675SRob Herring			#size-cells = <0>;
215724ba675SRob Herring			reg = <0x70>;
216724ba675SRob Herring			reset-gpios = <&gpio TEGRA_GPIO(BB, 0) GPIO_ACTIVE_LOW>;
217724ba675SRob Herring		};
218724ba675SRob Herring	};
219724ba675SRob Herring
220724ba675SRob Herring	i2c@7000c700 {
221724ba675SRob Herring		status = "okay";
222724ba675SRob Herring		clock-frequency = <100000>;
223724ba675SRob Herring	};
224724ba675SRob Herring
225724ba675SRob Herring	i2c@7000d000 {
226724ba675SRob Herring		status = "okay";
227724ba675SRob Herring		clock-frequency = <100000>;
228724ba675SRob Herring
229724ba675SRob Herring		wm8903: wm8903@1a {
230724ba675SRob Herring			compatible = "wlf,wm8903";
231724ba675SRob Herring			reg = <0x1a>;
232724ba675SRob Herring			interrupt-parent = <&gpio>;
233724ba675SRob Herring			interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_HIGH>;
234724ba675SRob Herring
235724ba675SRob Herring			gpio-controller;
236724ba675SRob Herring			#gpio-cells = <2>;
237724ba675SRob Herring
238724ba675SRob Herring			micdet-cfg = <0>;
239724ba675SRob Herring			micdet-delay = <100>;
240724ba675SRob Herring			gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
241724ba675SRob Herring		};
242724ba675SRob Herring
243724ba675SRob Herring		pmic: tps65911@2d {
244724ba675SRob Herring			compatible = "ti,tps65911";
245724ba675SRob Herring			reg = <0x2d>;
246724ba675SRob Herring
247724ba675SRob Herring			interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
248724ba675SRob Herring			#interrupt-cells = <2>;
249724ba675SRob Herring			interrupt-controller;
250724ba675SRob Herring			wakeup-source;
251724ba675SRob Herring
252724ba675SRob Herring			ti,system-power-controller;
253724ba675SRob Herring
254724ba675SRob Herring			#gpio-cells = <2>;
255724ba675SRob Herring			gpio-controller;
256724ba675SRob Herring
257724ba675SRob Herring			vcc1-supply = <&vdd_ac_bat_reg>;
258724ba675SRob Herring			vcc2-supply = <&vdd_ac_bat_reg>;
259724ba675SRob Herring			vcc3-supply = <&vio_reg>;
260724ba675SRob Herring			vcc4-supply = <&vdd_5v0_reg>;
261724ba675SRob Herring			vcc5-supply = <&vdd_ac_bat_reg>;
262724ba675SRob Herring			vcc6-supply = <&vdd2_reg>;
263724ba675SRob Herring			vcc7-supply = <&vdd_ac_bat_reg>;
264724ba675SRob Herring			vccio-supply = <&vdd_ac_bat_reg>;
265724ba675SRob Herring
266724ba675SRob Herring			regulators {
267724ba675SRob Herring				vdd1_reg: vdd1 {
268724ba675SRob Herring					regulator-name = "vddio_ddr_1v2";
269724ba675SRob Herring					regulator-min-microvolt = <1200000>;
270724ba675SRob Herring					regulator-max-microvolt = <1200000>;
271724ba675SRob Herring					regulator-always-on;
272724ba675SRob Herring				};
273724ba675SRob Herring
274724ba675SRob Herring				vdd2_reg: vdd2 {
275724ba675SRob Herring					regulator-name = "vdd_1v5_gen";
276724ba675SRob Herring					regulator-min-microvolt = <1500000>;
277724ba675SRob Herring					regulator-max-microvolt = <1500000>;
278724ba675SRob Herring					regulator-always-on;
279724ba675SRob Herring				};
280724ba675SRob Herring
281724ba675SRob Herring				vddctrl_reg: vddctrl {
282724ba675SRob Herring					regulator-name = "vdd_cpu,vdd_sys";
283724ba675SRob Herring					regulator-min-microvolt = <800000>;
284724ba675SRob Herring					regulator-max-microvolt = <1250000>;
285724ba675SRob Herring					regulator-coupled-with = <&vdd_core>;
286724ba675SRob Herring					regulator-coupled-max-spread = <300000>;
287724ba675SRob Herring					regulator-max-step-microvolt = <100000>;
288724ba675SRob Herring					regulator-always-on;
289724ba675SRob Herring
290724ba675SRob Herring					nvidia,tegra-cpu-regulator;
291724ba675SRob Herring				};
292724ba675SRob Herring
293724ba675SRob Herring				vio_reg: vio {
294724ba675SRob Herring					regulator-name = "vdd_1v8_gen";
295724ba675SRob Herring					regulator-min-microvolt = <1800000>;
296724ba675SRob Herring					regulator-max-microvolt = <1800000>;
297724ba675SRob Herring					regulator-always-on;
298724ba675SRob Herring				};
299724ba675SRob Herring
300724ba675SRob Herring				ldo1_reg: ldo1 {
301724ba675SRob Herring					regulator-name = "vdd_pexa,vdd_pexb";
302724ba675SRob Herring					regulator-min-microvolt = <1050000>;
303724ba675SRob Herring					regulator-max-microvolt = <1050000>;
304724ba675SRob Herring				};
305724ba675SRob Herring
306724ba675SRob Herring				ldo2_reg: ldo2 {
307724ba675SRob Herring					regulator-name = "vdd_sata,avdd_plle";
308724ba675SRob Herring					regulator-min-microvolt = <1050000>;
309724ba675SRob Herring					regulator-max-microvolt = <1050000>;
310724ba675SRob Herring				};
311724ba675SRob Herring
312724ba675SRob Herring				/* LDO3 is not connected to anything */
313724ba675SRob Herring
314724ba675SRob Herring				ldo4_reg: ldo4 {
315724ba675SRob Herring					regulator-name = "vdd_rtc";
316724ba675SRob Herring					regulator-min-microvolt = <1200000>;
317724ba675SRob Herring					regulator-max-microvolt = <1200000>;
318724ba675SRob Herring					regulator-always-on;
319724ba675SRob Herring				};
320724ba675SRob Herring
321724ba675SRob Herring				ldo5_reg: ldo5 {
322724ba675SRob Herring					regulator-name = "vddio_sdmmc,avdd_vdac";
323724ba675SRob Herring					regulator-min-microvolt = <3300000>;
324724ba675SRob Herring					regulator-max-microvolt = <3300000>;
325724ba675SRob Herring					regulator-always-on;
326724ba675SRob Herring				};
327724ba675SRob Herring
328724ba675SRob Herring				ldo6_reg: ldo6 {
329724ba675SRob Herring					regulator-name = "avdd_dsi_csi,pwrdet_mipi";
330724ba675SRob Herring					regulator-min-microvolt = <1200000>;
331724ba675SRob Herring					regulator-max-microvolt = <1200000>;
332724ba675SRob Herring				};
333724ba675SRob Herring
334724ba675SRob Herring				ldo7_reg: ldo7 {
335724ba675SRob Herring					regulator-name = "vdd_pllm,x,u,a_p_c_s";
336724ba675SRob Herring					regulator-min-microvolt = <1200000>;
337724ba675SRob Herring					regulator-max-microvolt = <1200000>;
338724ba675SRob Herring					regulator-always-on;
339724ba675SRob Herring				};
340724ba675SRob Herring
341724ba675SRob Herring				ldo8_reg: ldo8 {
342724ba675SRob Herring					regulator-name = "vdd_ddr_hs";
343724ba675SRob Herring					regulator-min-microvolt = <1000000>;
344724ba675SRob Herring					regulator-max-microvolt = <1000000>;
345724ba675SRob Herring					regulator-always-on;
346724ba675SRob Herring				};
347724ba675SRob Herring			};
348724ba675SRob Herring		};
349724ba675SRob Herring
350724ba675SRob Herring		nct1008: temperature-sensor@4c {
351724ba675SRob Herring			compatible = "onnn,nct1008";
352724ba675SRob Herring			reg = <0x4c>;
353724ba675SRob Herring			vcc-supply = <&sys_3v3_reg>;
354724ba675SRob Herring			interrupt-parent = <&gpio>;
355724ba675SRob Herring			interrupts = <TEGRA_GPIO(CC, 2) IRQ_TYPE_EDGE_FALLING>;
356724ba675SRob Herring			#thermal-sensor-cells = <1>;
357724ba675SRob Herring		};
358724ba675SRob Herring
359724ba675SRob Herring		vdd_core: tps62361@60 {
360724ba675SRob Herring			compatible = "ti,tps62361";
361724ba675SRob Herring			reg = <0x60>;
362724ba675SRob Herring
363724ba675SRob Herring			regulator-name = "tps62361-vout";
364724ba675SRob Herring			regulator-min-microvolt = <500000>;
365724ba675SRob Herring			regulator-max-microvolt = <1500000>;
366724ba675SRob Herring			regulator-coupled-with = <&vddctrl_reg>;
367724ba675SRob Herring			regulator-coupled-max-spread = <300000>;
368724ba675SRob Herring			regulator-max-step-microvolt = <100000>;
369724ba675SRob Herring			regulator-boot-on;
370724ba675SRob Herring			regulator-always-on;
371724ba675SRob Herring			ti,vsel0-state-high;
372724ba675SRob Herring			ti,vsel1-state-high;
373724ba675SRob Herring
374724ba675SRob Herring			nvidia,tegra-core-regulator;
375724ba675SRob Herring		};
376724ba675SRob Herring	};
377724ba675SRob Herring
378724ba675SRob Herring	spi@7000da00 {
379724ba675SRob Herring		status = "okay";
380724ba675SRob Herring		spi-max-frequency = <25000000>;
381724ba675SRob Herring
382724ba675SRob Herring		flash@1 {
383724ba675SRob Herring			compatible = "winbond,w25q32", "jedec,spi-nor";
384724ba675SRob Herring			reg = <1>;
385724ba675SRob Herring			spi-max-frequency = <20000000>;
386724ba675SRob Herring		};
387724ba675SRob Herring	};
388724ba675SRob Herring
389724ba675SRob Herring	pmc@7000e400 {
390724ba675SRob Herring		status = "okay";
391724ba675SRob Herring		nvidia,invert-interrupt;
392724ba675SRob Herring		nvidia,suspend-mode = <1>;
393724ba675SRob Herring		nvidia,cpu-pwr-good-time = <2000>;
394724ba675SRob Herring		nvidia,cpu-pwr-off-time = <200>;
395724ba675SRob Herring		nvidia,core-pwr-good-time = <3845 3845>;
396724ba675SRob Herring		nvidia,core-pwr-off-time = <0>;
397724ba675SRob Herring		nvidia,core-power-req-active-high;
398724ba675SRob Herring		nvidia,sys-clock-req-active-high;
399724ba675SRob Herring		core-supply = <&vdd_core>;
400724ba675SRob Herring	};
401724ba675SRob Herring
402724ba675SRob Herring	ahub@70080000 {
403724ba675SRob Herring		i2s@70080400 {
404724ba675SRob Herring			status = "okay";
405724ba675SRob Herring		};
406724ba675SRob Herring	};
407724ba675SRob Herring
408724ba675SRob Herring	mmc@78000000 {
409724ba675SRob Herring		status = "okay";
410724ba675SRob Herring		cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
411724ba675SRob Herring		wp-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
412724ba675SRob Herring		power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
413724ba675SRob Herring		bus-width = <4>;
414724ba675SRob Herring	};
415724ba675SRob Herring
416724ba675SRob Herring	mmc@78000600 {
417724ba675SRob Herring		status = "okay";
418724ba675SRob Herring		bus-width = <8>;
419724ba675SRob Herring		non-removable;
420724ba675SRob Herring	};
421724ba675SRob Herring
422724ba675SRob Herring	usb@7d008000 {
423724ba675SRob Herring		status = "okay";
424724ba675SRob Herring	};
425724ba675SRob Herring
426724ba675SRob Herring	usb-phy@7d008000 {
427724ba675SRob Herring		vbus-supply = <&usb3_vbus_reg>;
428724ba675SRob Herring		status = "okay";
429724ba675SRob Herring	};
430724ba675SRob Herring
431724ba675SRob Herring	backlight: backlight {
432724ba675SRob Herring		compatible = "pwm-backlight";
433724ba675SRob Herring
434724ba675SRob Herring		enable-gpios = <&gpio TEGRA_GPIO(H, 2) GPIO_ACTIVE_HIGH>;
435724ba675SRob Herring		power-supply = <&vdd_bl_reg>;
436724ba675SRob Herring		pwms = <&pwm 0 5000000>;
437724ba675SRob Herring
438724ba675SRob Herring		brightness-levels = <0 4 8 16 32 64 128 255>;
439724ba675SRob Herring		default-brightness-level = <6>;
440724ba675SRob Herring	};
441724ba675SRob Herring
442724ba675SRob Herring	clk32k_in: clock-32k {
443724ba675SRob Herring		compatible = "fixed-clock";
444724ba675SRob Herring		clock-frequency = <32768>;
445724ba675SRob Herring		#clock-cells = <0>;
446724ba675SRob Herring	};
447724ba675SRob Herring
448724ba675SRob Herring	cpus {
449724ba675SRob Herring		cpu0: cpu@0 {
450724ba675SRob Herring			cpu-supply = <&vddctrl_reg>;
451724ba675SRob Herring			operating-points-v2 = <&cpu0_opp_table>;
452724ba675SRob Herring			#cooling-cells = <2>;
453724ba675SRob Herring		};
454724ba675SRob Herring
455724ba675SRob Herring		cpu1: cpu@1 {
456724ba675SRob Herring			cpu-supply = <&vddctrl_reg>;
457724ba675SRob Herring			operating-points-v2 = <&cpu0_opp_table>;
458724ba675SRob Herring			#cooling-cells = <2>;
459724ba675SRob Herring		};
460724ba675SRob Herring
461724ba675SRob Herring		cpu2: cpu@2 {
462724ba675SRob Herring			cpu-supply = <&vddctrl_reg>;
463724ba675SRob Herring			operating-points-v2 = <&cpu0_opp_table>;
464724ba675SRob Herring			#cooling-cells = <2>;
465724ba675SRob Herring		};
466724ba675SRob Herring
467724ba675SRob Herring		cpu3: cpu@3 {
468724ba675SRob Herring			cpu-supply = <&vddctrl_reg>;
469724ba675SRob Herring			operating-points-v2 = <&cpu0_opp_table>;
470724ba675SRob Herring			#cooling-cells = <2>;
471724ba675SRob Herring		};
472724ba675SRob Herring	};
473724ba675SRob Herring
474724ba675SRob Herring	gpio-keys {
475724ba675SRob Herring		compatible = "gpio-keys";
476724ba675SRob Herring
477724ba675SRob Herring		key-power {
478724ba675SRob Herring			label = "Power";
479724ba675SRob Herring			interrupt-parent = <&pmic>;
480724ba675SRob Herring			interrupts = <2 0>;
481724ba675SRob Herring			linux,code = <KEY_POWER>;
482724ba675SRob Herring			debounce-interval = <100>;
483724ba675SRob Herring			wakeup-source;
484724ba675SRob Herring		};
485724ba675SRob Herring
486724ba675SRob Herring		key-volume-down {
487724ba675SRob Herring			label = "Volume Down";
488724ba675SRob Herring			gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_LOW>;
489724ba675SRob Herring			linux,code = <KEY_VOLUMEDOWN>;
490724ba675SRob Herring			debounce-interval = <10>;
491724ba675SRob Herring		};
492724ba675SRob Herring
493724ba675SRob Herring		key-volume-up {
494724ba675SRob Herring			label = "Volume Up";
495724ba675SRob Herring			gpios = <&gpio TEGRA_GPIO(R, 1) GPIO_ACTIVE_LOW>;
496724ba675SRob Herring			linux,code = <KEY_VOLUMEUP>;
497724ba675SRob Herring			debounce-interval = <10>;
498724ba675SRob Herring		};
499724ba675SRob Herring	};
500724ba675SRob Herring
501724ba675SRob Herring	panel: panel {
502724ba675SRob Herring		compatible = "chunghwa,claa101wb01";
503724ba675SRob Herring		ddc-i2c-bus = <&panelddc>;
504724ba675SRob Herring
505724ba675SRob Herring		power-supply = <&vdd_pnl1_reg>;
506724ba675SRob Herring		enable-gpios = <&gpio TEGRA_GPIO(L, 2) GPIO_ACTIVE_HIGH>;
507724ba675SRob Herring
508724ba675SRob Herring		backlight = <&backlight>;
509724ba675SRob Herring	};
510724ba675SRob Herring
511724ba675SRob Herring	vdd_ac_bat_reg: regulator-acbat {
512724ba675SRob Herring		compatible = "regulator-fixed";
513724ba675SRob Herring		regulator-name = "vdd_ac_bat";
514724ba675SRob Herring		regulator-min-microvolt = <5000000>;
515724ba675SRob Herring		regulator-max-microvolt = <5000000>;
516724ba675SRob Herring		regulator-always-on;
517724ba675SRob Herring	};
518724ba675SRob Herring
519724ba675SRob Herring	cam_1v8_reg: regulator-cam {
520724ba675SRob Herring		compatible = "regulator-fixed";
521724ba675SRob Herring		regulator-name = "cam_1v8";
522724ba675SRob Herring		regulator-min-microvolt = <1800000>;
523724ba675SRob Herring		regulator-max-microvolt = <1800000>;
524724ba675SRob Herring		enable-active-high;
525724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
526724ba675SRob Herring		vin-supply = <&vio_reg>;
527724ba675SRob Herring	};
528724ba675SRob Herring
529724ba675SRob Herring	cp_5v_reg: regulator-5v0cp {
530724ba675SRob Herring		compatible = "regulator-fixed";
531724ba675SRob Herring		regulator-name = "cp_5v";
532724ba675SRob Herring		regulator-min-microvolt = <5000000>;
533724ba675SRob Herring		regulator-max-microvolt = <5000000>;
534724ba675SRob Herring		regulator-boot-on;
535724ba675SRob Herring		regulator-always-on;
536724ba675SRob Herring		enable-active-high;
537724ba675SRob Herring		gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
538724ba675SRob Herring	};
539724ba675SRob Herring
540724ba675SRob Herring	emmc_3v3_reg: regulator-emmc {
541724ba675SRob Herring		compatible = "regulator-fixed";
542724ba675SRob Herring		regulator-name = "emmc_3v3";
543724ba675SRob Herring		regulator-min-microvolt = <3300000>;
544724ba675SRob Herring		regulator-max-microvolt = <3300000>;
545724ba675SRob Herring		regulator-always-on;
546724ba675SRob Herring		regulator-boot-on;
547724ba675SRob Herring		enable-active-high;
548724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
549724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
550724ba675SRob Herring	};
551724ba675SRob Herring
552724ba675SRob Herring	modem_3v3_reg: regulator-modem {
553724ba675SRob Herring		compatible = "regulator-fixed";
554724ba675SRob Herring		regulator-name = "modem_3v3";
555724ba675SRob Herring		regulator-min-microvolt = <3300000>;
556724ba675SRob Herring		regulator-max-microvolt = <3300000>;
557724ba675SRob Herring		enable-active-high;
558724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
559724ba675SRob Herring	};
560724ba675SRob Herring
561724ba675SRob Herring	pex_hvdd_3v3_reg: regulator-pex {
562724ba675SRob Herring		compatible = "regulator-fixed";
563724ba675SRob Herring		regulator-name = "pex_hvdd_3v3";
564724ba675SRob Herring		regulator-min-microvolt = <3300000>;
565724ba675SRob Herring		regulator-max-microvolt = <3300000>;
566724ba675SRob Herring		enable-active-high;
567724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
568724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
569724ba675SRob Herring	};
570724ba675SRob Herring
571724ba675SRob Herring	vdd_cam1_ldo_reg: regulator-cam1 {
572724ba675SRob Herring		compatible = "regulator-fixed";
573724ba675SRob Herring		regulator-name = "vdd_cam1_ldo";
574724ba675SRob Herring		regulator-min-microvolt = <2800000>;
575724ba675SRob Herring		regulator-max-microvolt = <2800000>;
576724ba675SRob Herring		enable-active-high;
577724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
578724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
579724ba675SRob Herring	};
580724ba675SRob Herring
581724ba675SRob Herring	vdd_cam2_ldo_reg: regulator-cam2 {
582724ba675SRob Herring		compatible = "regulator-fixed";
583724ba675SRob Herring		regulator-name = "vdd_cam2_ldo";
584724ba675SRob Herring		regulator-min-microvolt = <2800000>;
585724ba675SRob Herring		regulator-max-microvolt = <2800000>;
586724ba675SRob Herring		enable-active-high;
587724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
588724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
589724ba675SRob Herring	};
590724ba675SRob Herring
591724ba675SRob Herring	vdd_cam3_ldo_reg: regulator-cam3 {
592724ba675SRob Herring		compatible = "regulator-fixed";
593724ba675SRob Herring		regulator-name = "vdd_cam3_ldo";
594724ba675SRob Herring		regulator-min-microvolt = <3300000>;
595724ba675SRob Herring		regulator-max-microvolt = <3300000>;
596724ba675SRob Herring		enable-active-high;
597724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_HIGH>;
598724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
599724ba675SRob Herring	};
600724ba675SRob Herring
601724ba675SRob Herring	vdd_com_reg: regulator-com {
602724ba675SRob Herring		compatible = "regulator-fixed";
603724ba675SRob Herring		regulator-name = "vdd_com";
604724ba675SRob Herring		regulator-min-microvolt = <3300000>;
605724ba675SRob Herring		regulator-max-microvolt = <3300000>;
606724ba675SRob Herring		regulator-always-on;
607724ba675SRob Herring		regulator-boot-on;
608724ba675SRob Herring		enable-active-high;
609724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
610724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
611724ba675SRob Herring	};
612724ba675SRob Herring
613724ba675SRob Herring	vdd_fuse_3v3_reg: regulator-fuse {
614724ba675SRob Herring		compatible = "regulator-fixed";
615724ba675SRob Herring		regulator-name = "vdd_fuse_3v3";
616724ba675SRob Herring		regulator-min-microvolt = <3300000>;
617724ba675SRob Herring		regulator-max-microvolt = <3300000>;
618724ba675SRob Herring		enable-active-high;
619724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
620724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
621724ba675SRob Herring	};
622724ba675SRob Herring
623724ba675SRob Herring	vdd_pnl1_reg: regulator-pnl1 {
624724ba675SRob Herring		compatible = "regulator-fixed";
625724ba675SRob Herring		regulator-name = "vdd_pnl1";
626724ba675SRob Herring		regulator-min-microvolt = <3300000>;
627724ba675SRob Herring		regulator-max-microvolt = <3300000>;
628724ba675SRob Herring		regulator-always-on;
629724ba675SRob Herring		regulator-boot-on;
630724ba675SRob Herring		enable-active-high;
631724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
632724ba675SRob Herring		vin-supply = <&sys_3v3_reg>;
633724ba675SRob Herring	};
634724ba675SRob Herring
635724ba675SRob Herring	vdd_vid_reg: regulator-vid {
636724ba675SRob Herring		compatible = "regulator-fixed";
637724ba675SRob Herring		regulator-name = "vddio_vid";
638724ba675SRob Herring		regulator-min-microvolt = <5000000>;
639724ba675SRob Herring		regulator-max-microvolt = <5000000>;
640724ba675SRob Herring		enable-active-high;
641724ba675SRob Herring		gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
642724ba675SRob Herring		gpio-open-drain;
643724ba675SRob Herring		vin-supply = <&vdd_5v0_reg>;
644724ba675SRob Herring	};
645724ba675SRob Herring
646724ba675SRob Herring	sound {
647724ba675SRob Herring		compatible = "nvidia,tegra-audio-wm8903-cardhu",
648724ba675SRob Herring			     "nvidia,tegra-audio-wm8903";
649724ba675SRob Herring		nvidia,model = "NVIDIA Tegra Cardhu";
650724ba675SRob Herring
651724ba675SRob Herring		nvidia,audio-routing =
652724ba675SRob Herring			"Headphone Jack", "HPOUTR",
653724ba675SRob Herring			"Headphone Jack", "HPOUTL",
654724ba675SRob Herring			"Int Spk", "ROP",
655724ba675SRob Herring			"Int Spk", "RON",
656724ba675SRob Herring			"Int Spk", "LOP",
657724ba675SRob Herring			"Int Spk", "LON",
658724ba675SRob Herring			"Mic Jack", "MICBIAS",
659724ba675SRob Herring			"IN1L", "Mic Jack";
660724ba675SRob Herring
661724ba675SRob Herring		nvidia,i2s-controller = <&tegra_i2s1>;
662724ba675SRob Herring		nvidia,audio-codec = <&wm8903>;
663724ba675SRob Herring
664724ba675SRob Herring		nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
665724ba675SRob Herring		nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
666724ba675SRob Herring			GPIO_ACTIVE_LOW>;
667724ba675SRob Herring
668724ba675SRob Herring		clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
669724ba675SRob Herring			 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
670724ba675SRob Herring			 <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
671724ba675SRob Herring		clock-names = "pll_a", "pll_a_out0", "mclk";
672724ba675SRob Herring
673724ba675SRob Herring		assigned-clocks = <&tegra_car TEGRA30_CLK_EXTERN1>,
674724ba675SRob Herring				  <&tegra_pmc TEGRA_PMC_CLK_OUT_1>;
675724ba675SRob Herring
676724ba675SRob Herring		assigned-clock-parents = <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
677724ba675SRob Herring					 <&tegra_car TEGRA30_CLK_EXTERN1>;
678724ba675SRob Herring	};
679724ba675SRob Herring
680724ba675SRob Herring	thermal-zones {
681724ba675SRob Herring		cpu-thermal {
682724ba675SRob Herring			polling-delay-passive = <1000>; /* milliseconds */
683724ba675SRob Herring			polling-delay = <5000>; /* milliseconds */
684724ba675SRob Herring
685724ba675SRob Herring			thermal-sensors = <&nct1008 1>;
686724ba675SRob Herring
687724ba675SRob Herring			trips {
688724ba675SRob Herring				trip0: cpu-alert0 {
689724ba675SRob Herring					/* throttle at 57C until temperature drops to 56.8C */
690724ba675SRob Herring					temperature = <57000>;
691724ba675SRob Herring					hysteresis = <200>;
692724ba675SRob Herring					type = "passive";
693724ba675SRob Herring				};
694724ba675SRob Herring
695724ba675SRob Herring				trip1: cpu-crit {
696724ba675SRob Herring					/* shut down at 60C */
697724ba675SRob Herring					temperature = <60000>;
698724ba675SRob Herring					hysteresis = <2000>;
699724ba675SRob Herring					type = "critical";
700724ba675SRob Herring				};
701724ba675SRob Herring			};
702724ba675SRob Herring
703724ba675SRob Herring			cooling-maps {
704724ba675SRob Herring				map0 {
705724ba675SRob Herring					trip = <&trip0>;
706724ba675SRob Herring					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
707724ba675SRob Herring							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
708724ba675SRob Herring							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
709724ba675SRob Herring							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
710724ba675SRob Herring				};
711724ba675SRob Herring			};
712724ba675SRob Herring		};
713724ba675SRob Herring	};
714724ba675SRob Herring};
715