1// SPDX-License-Identifier: GPL-2.0
2#include "tegra194.dtsi"
3
4#include <dt-bindings/mfd/max77620.h>
5
6/ {
7	model = "NVIDIA Jetson AGX Xavier";
8	compatible = "nvidia,p2888", "nvidia,tegra194";
9
10	aliases {
11		ethernet0 = "/bus@0/ethernet@2490000";
12		i2c0 = "/bpmp/i2c";
13		i2c1 = "/bus@0/i2c@3160000";
14		i2c2 = "/bus@0/i2c@c240000";
15		i2c3 = "/bus@0/i2c@3180000";
16		i2c4 = "/bus@0/i2c@3190000";
17		i2c5 = "/bus@0/i2c@31c0000";
18		i2c6 = "/bus@0/i2c@c250000";
19		i2c7 = "/bus@0/i2c@31e0000";
20		mmc0 = "/bus@0/mmc@3460000";
21		mmc1 = "/bus@0/mmc@3400000";
22		serial0 = &tcu;
23	};
24
25	chosen {
26		bootargs = "console=ttyTCU0,115200n8";
27		stdout-path = "serial0:115200n8";
28	};
29
30	bus@0 {
31		ethernet@2490000 {
32			status = "okay";
33
34			phy-reset-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 5) GPIO_ACTIVE_LOW>;
35			phy-handle = <&phy>;
36			phy-mode = "rgmii-id";
37
38			mdio {
39				#address-cells = <1>;
40				#size-cells = <0>;
41
42				phy: ethernet-phy@0 {
43					compatible = "ethernet-phy-ieee802.3-c22";
44					reg = <0x0>;
45					interrupt-parent = <&gpio>;
46					interrupts = <TEGRA194_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
47					#phy-cells = <0>;
48				};
49			};
50		};
51
52		memory-controller@2c00000 {
53			status = "okay";
54		};
55
56		i2c@c240000 {
57			status = "okay";
58
59			power-sensor@40 {
60				compatible = "ti,ina3221";
61				reg = <0x40>;
62				#address-cells = <1>;
63				#size-cells = <0>;
64
65				input@0 {
66					reg = <0x0>;
67					label = "GPU";
68					shunt-resistor-micro-ohms = <5000>;
69				};
70				input@1 {
71					reg = <0x1>;
72					label = "CPU";
73					shunt-resistor-micro-ohms = <5000>;
74				};
75				input@2 {
76					reg = <0x2>;
77					label = "SOC";
78					shunt-resistor-micro-ohms = <5000>;
79				};
80			};
81
82			power-sensor@41 {
83				compatible = "ti,ina3221";
84				reg = <0x41>;
85				#address-cells = <1>;
86				#size-cells = <0>;
87
88				input@0 {
89					reg = <0x0>;
90					label = "CV";
91					shunt-resistor-micro-ohms = <5000>;
92				};
93				input@1 {
94					reg = <0x1>;
95					label = "VDDRQ";
96					shunt-resistor-micro-ohms = <5000>;
97				};
98				input@2 {
99					reg = <0x2>;
100					label = "SYS5V";
101					shunt-resistor-micro-ohms = <5000>;
102				};
103			};
104		};
105
106		serial@3110000 {
107			status = "okay";
108		};
109
110		i2c@3160000 {
111			status = "okay";
112
113			eeprom@50 {
114				compatible = "atmel,24c02";
115				reg = <0x50>;
116
117				label = "module";
118				vcc-supply = <&vdd_1v8ls>;
119				address-width = <8>;
120				pagesize = <8>;
121				size = <256>;
122				read-only;
123			};
124		};
125
126		/* SDMMC1 (SD/MMC) */
127		mmc@3400000 {
128			cd-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>;
129		};
130
131		/* SDMMC4 (eMMC) */
132		mmc@3460000 {
133			status = "okay";
134			bus-width = <8>;
135			non-removable;
136
137			vqmmc-supply = <&vdd_1v8ls>;
138			vmmc-supply = <&vdd_emmc_3v3>;
139		};
140
141		padctl@3520000 {
142			avdd-usb-supply = <&vdd_usb_3v3>;
143			vclamp-usb-supply = <&vdd_1v8ao>;
144
145			ports {
146				usb2-0 {
147					vbus-supply = <&vdd_5v0_sys>;
148				};
149
150				usb2-1 {
151					vbus-supply = <&vdd_5v0_sys>;
152				};
153
154				usb2-3 {
155					vbus-supply = <&vdd_5v_sata>;
156				};
157
158				usb3-0 {
159					vbus-supply = <&vdd_5v0_sys>;
160				};
161
162				usb3-2 {
163					vbus-supply = <&vdd_5v0_sys>;
164				};
165
166				usb3-3 {
167					vbus-supply = <&vdd_5v0_sys>;
168				};
169			};
170		};
171
172		rtc@c2a0000 {
173			status = "okay";
174		};
175
176		pmc@c360000 {
177			nvidia,invert-interrupt;
178		};
179	};
180
181	bpmp {
182		i2c {
183			status = "okay";
184
185			pmic: pmic@3c {
186				compatible = "maxim,max20024";
187				reg = <0x3c>;
188
189				interrupt-parent = <&pmc>;
190				interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
191				#interrupt-cells = <2>;
192				interrupt-controller;
193
194				#gpio-cells = <2>;
195				gpio-controller;
196
197				pinctrl-names = "default";
198				pinctrl-0 = <&max20024_default>;
199
200				fps {
201					fps0 {
202						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
203						maxim,shutdown-fps-time-period-us = <640>;
204					};
205
206					fps1 {
207						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
208						maxim,shutdown-fps-time-period-us = <640>;
209						maxim,device-state-on-disabled-event = <MAX77620_FPS_INACTIVE_STATE_SLEEP>;
210					};
211
212					fps2 {
213						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
214						maxim,shutdown-fps-time-period-us = <640>;
215					};
216				};
217
218				max20024_default: pinmux {
219					gpio0 {
220						pins = "gpio0";
221						function = "gpio";
222					};
223
224					gpio1 {
225						pins = "gpio1";
226						function = "fps-out";
227						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
228					};
229
230					gpio2 {
231						pins = "gpio2";
232						function = "fps-out";
233						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
234					};
235
236					gpio3 {
237						pins = "gpio3";
238						function = "fps-out";
239						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
240					};
241
242					gpio4 {
243						pins = "gpio4";
244						function = "32k-out1";
245						drive-push-pull = <1>;
246					};
247
248					gpio6 {
249						pins = "gpio6";
250						function = "gpio";
251						drive-push-pull = <1>;
252					};
253
254					gpio7 {
255						pins = "gpio7";
256						function = "gpio";
257						drive-push-pull = <0>;
258					};
259				};
260
261				regulators {
262					in-sd0-supply = <&vdd_5v0_sys>;
263					in-sd1-supply = <&vdd_5v0_sys>;
264					in-sd2-supply = <&vdd_5v0_sys>;
265					in-sd3-supply = <&vdd_5v0_sys>;
266					in-sd4-supply = <&vdd_5v0_sys>;
267
268					in-ldo0-1-supply = <&vdd_5v0_sys>;
269					in-ldo2-supply = <&vdd_5v0_sys>;
270					in-ldo3-5-supply = <&vdd_5v0_sys>;
271					in-ldo4-6-supply = <&vdd_5v0_sys>;
272					in-ldo7-8-supply = <&vdd_1v8ls>;
273
274					vdd_1v0: sd0 {
275						regulator-name = "VDDIO_SYS_1V0";
276						regulator-min-microvolt = <1000000>;
277						regulator-max-microvolt = <1000000>;
278						regulator-always-on;
279						regulator-boot-on;
280					};
281
282					vdd_1v8hs: sd1 {
283						regulator-name = "VDDIO_SYS_1V8HS";
284						regulator-min-microvolt = <1800000>;
285						regulator-max-microvolt = <1800000>;
286						regulator-always-on;
287						regulator-boot-on;
288					};
289
290					vdd_1v8ls: sd2 {
291						regulator-name = "VDDIO_SYS_1V8LS";
292						regulator-min-microvolt = <1800000>;
293						regulator-max-microvolt = <1800000>;
294						regulator-always-on;
295						regulator-boot-on;
296					};
297
298					vdd_1v8ao: sd3 {
299						regulator-name = "VDDIO_AO_1V8";
300						regulator-min-microvolt = <1800000>;
301						regulator-max-microvolt = <1800000>;
302						regulator-always-on;
303						regulator-boot-on;
304					};
305
306					sd4 {
307						regulator-name = "VDD_DDR_1V1";
308						regulator-min-microvolt = <1100000>;
309						regulator-max-microvolt = <1100000>;
310						regulator-always-on;
311						regulator-boot-on;
312					};
313
314					ldo0 {
315						regulator-name = "VDD_RTC";
316						regulator-min-microvolt = <800000>;
317						regulator-max-microvolt = <800000>;
318						regulator-always-on;
319						regulator-boot-on;
320					};
321
322					ldo2 {
323						regulator-name = "VDDIO_AO_3V3";
324						regulator-min-microvolt = <3300000>;
325						regulator-max-microvolt = <3300000>;
326						regulator-always-on;
327						regulator-boot-on;
328					};
329
330					vdd_emmc_3v3: ldo3 {
331						regulator-name = "VDD_EMMC_3V3";
332						regulator-min-microvolt = <3300000>;
333						regulator-max-microvolt = <3300000>;
334					};
335
336					vdd_usb_3v3: ldo5 {
337						regulator-name = "VDD_USB_3V3";
338						regulator-min-microvolt = <3300000>;
339						regulator-max-microvolt = <3300000>;
340					};
341
342					ldo6 {
343						regulator-name = "VDD_SDIO_3V3";
344						regulator-min-microvolt = <3300000>;
345						regulator-max-microvolt = <3300000>;
346					};
347
348					ldo7 {
349						regulator-name = "AVDD_CSI_1V2";
350						regulator-min-microvolt = <1200000>;
351						regulator-max-microvolt = <1200000>;
352					};
353				};
354			};
355
356			temperature-sensor@4c {
357				compatible = "ti,tmp451";
358				reg = <0x4c>;
359
360				interrupt-parent = <&gpio>;
361				interrupts = <TEGRA194_MAIN_GPIO(H, 2)
362					      IRQ_TYPE_EDGE_FALLING>;
363				vcc-supply = <&vdd_1v8ls>;
364
365				#thermal-sensor-cells = <1>;
366			};
367		};
368	};
369
370	vdd_5v0_sys: regulator-vdd-5v0-sys {
371		compatible = "regulator-fixed";
372		regulator-name = "VIN_SYS_5V0";
373		regulator-min-microvolt = <5000000>;
374		regulator-max-microvolt = <5000000>;
375		regulator-always-on;
376		regulator-boot-on;
377	};
378
379	vdd_hdmi: regulator-vdd-hdmi {
380		compatible = "regulator-fixed";
381		regulator-name = "VDD_5V0_HDMI_CON";
382		regulator-min-microvolt = <5000000>;
383		regulator-max-microvolt = <5000000>;
384		gpio = <&gpio TEGRA194_MAIN_GPIO(A, 3) GPIO_ACTIVE_HIGH>;
385		enable-active-high;
386	};
387
388	vdd_3v3_pcie: regulator-vdd-3v3-pcie {
389		compatible = "regulator-fixed";
390		regulator-name = "PEX_3V3";
391		regulator-min-microvolt = <3300000>;
392		regulator-max-microvolt = <3300000>;
393		gpio = <&gpio TEGRA194_MAIN_GPIO(Z, 2) GPIO_ACTIVE_HIGH>;
394		regulator-boot-on;
395		enable-active-high;
396	};
397
398	vdd_12v_pcie: regulator-vdd-12v-pcie {
399		compatible = "regulator-fixed";
400		regulator-name = "VDD_12V";
401		regulator-min-microvolt = <1200000>;
402		regulator-max-microvolt = <1200000>;
403		gpio = <&gpio TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
404		regulator-boot-on;
405	};
406
407	vdd_5v_sata: regulator-vdd-5v0-sata {
408		compatible = "regulator-fixed";
409		regulator-name = "VDD_5V_SATA";
410		regulator-min-microvolt = <5000000>;
411		regulator-max-microvolt = <5000000>;
412		gpio = <&gpio TEGRA194_MAIN_GPIO(Z, 1) GPIO_ACTIVE_HIGH>;
413		enable-active-high;
414	};
415};
416