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=ttyS0,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: 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		serial@3110000 {
57			status = "okay";
58		};
59
60		i2c@3160000 {
61			status = "okay";
62
63			eeprom@50 {
64				compatible = "atmel,24c02";
65				reg = <0x50>;
66
67				label = "module";
68				vcc-supply = <&vdd_1v8ls>;
69				address-width = <8>;
70				pagesize = <8>;
71				size = <256>;
72				read-only;
73			};
74		};
75
76		/* SDMMC1 (SD/MMC) */
77		mmc@3400000 {
78			cd-gpios = <&gpio TEGRA194_MAIN_GPIO(A, 0) GPIO_ACTIVE_LOW>;
79		};
80
81		/* SDMMC4 (eMMC) */
82		mmc@3460000 {
83			status = "okay";
84			bus-width = <8>;
85			non-removable;
86
87			vqmmc-supply = <&vdd_1v8ls>;
88			vmmc-supply = <&vdd_emmc_3v3>;
89		};
90
91		padctl@3520000 {
92			avdd-usb-supply = <&vdd_usb_3v3>;
93			vclamp-usb-supply = <&vdd_1v8ao>;
94
95			ports {
96				usb2-1 {
97					vbus-supply = <&vdd_5v0_sys>;
98				};
99
100				usb2-3 {
101					vbus-supply = <&vdd_5v_sata>;
102				};
103
104				usb3-0 {
105					vbus-supply = <&vdd_5v0_sys>;
106				};
107
108				usb3-3 {
109					vbus-supply = <&vdd_5v0_sys>;
110				};
111			};
112		};
113
114		rtc@c2a0000 {
115			status = "okay";
116		};
117
118		pmc@c360000 {
119			nvidia,invert-interrupt;
120		};
121	};
122
123	bpmp {
124		i2c {
125			status = "okay";
126
127			pmic: pmic@3c {
128				compatible = "maxim,max20024";
129				reg = <0x3c>;
130
131				interrupt-parent = <&pmc>;
132				interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
133				#interrupt-cells = <2>;
134				interrupt-controller;
135
136				#gpio-cells = <2>;
137				gpio-controller;
138
139				pinctrl-names = "default";
140				pinctrl-0 = <&max20024_default>;
141
142				max20024_default: pinmux {
143					gpio0 {
144						pins = "gpio0";
145						function = "gpio";
146					};
147
148					gpio1 {
149						pins = "gpio1";
150						function = "fps-out";
151						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
152					};
153
154					gpio2 {
155						pins = "gpio2";
156						function = "fps-out";
157						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
158					};
159
160					gpio3 {
161						pins = "gpio3";
162						function = "fps-out";
163						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
164					};
165
166					gpio4 {
167						pins = "gpio4";
168						function = "32k-out1";
169						drive-push-pull = <1>;
170					};
171
172					gpio6 {
173						pins = "gpio6";
174						function = "gpio";
175						drive-push-pull = <1>;
176					};
177
178					gpio7 {
179						pins = "gpio7";
180						function = "gpio";
181						drive-push-pull = <0>;
182					};
183				};
184
185				fps {
186					fps0 {
187						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
188						maxim,shutdown-fps-time-period-us = <640>;
189					};
190
191					fps1 {
192						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
193						maxim,shutdown-fps-time-period-us = <640>;
194						maxim,device-state-on-disabled-event = <MAX77620_FPS_INACTIVE_STATE_SLEEP>;
195					};
196
197					fps2 {
198						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
199						maxim,shutdown-fps-time-period-us = <640>;
200					};
201				};
202
203				regulators {
204					in-sd0-supply = <&vdd_5v0_sys>;
205					in-sd1-supply = <&vdd_5v0_sys>;
206					in-sd2-supply = <&vdd_5v0_sys>;
207					in-sd3-supply = <&vdd_5v0_sys>;
208					in-sd4-supply = <&vdd_5v0_sys>;
209
210					in-ldo0-1-supply = <&vdd_5v0_sys>;
211					in-ldo2-supply = <&vdd_5v0_sys>;
212					in-ldo3-5-supply = <&vdd_5v0_sys>;
213					in-ldo4-6-supply = <&vdd_5v0_sys>;
214					in-ldo7-8-supply = <&vdd_1v8ls>;
215
216					vdd_1v0: sd0 {
217						regulator-name = "VDDIO_SYS_1V0";
218						regulator-min-microvolt = <1000000>;
219						regulator-max-microvolt = <1000000>;
220						regulator-always-on;
221						regulator-boot-on;
222					};
223
224					vdd_1v8hs: sd1 {
225						regulator-name = "VDDIO_SYS_1V8HS";
226						regulator-min-microvolt = <1800000>;
227						regulator-max-microvolt = <1800000>;
228						regulator-always-on;
229						regulator-boot-on;
230					};
231
232					vdd_1v8ls: sd2 {
233						regulator-name = "VDDIO_SYS_1V8LS";
234						regulator-min-microvolt = <1800000>;
235						regulator-max-microvolt = <1800000>;
236						regulator-always-on;
237						regulator-boot-on;
238					};
239
240					vdd_1v8ao: sd3 {
241						regulator-name = "VDDIO_AO_1V8";
242						regulator-min-microvolt = <1800000>;
243						regulator-max-microvolt = <1800000>;
244						regulator-always-on;
245						regulator-boot-on;
246					};
247
248					sd4 {
249						regulator-name = "VDD_DDR_1V1";
250						regulator-min-microvolt = <1100000>;
251						regulator-max-microvolt = <1100000>;
252						regulator-always-on;
253						regulator-boot-on;
254					};
255
256					ldo0 {
257						regulator-name = "VDD_RTC";
258						regulator-min-microvolt = <800000>;
259						regulator-max-microvolt = <800000>;
260						regulator-always-on;
261						regulator-boot-on;
262					};
263
264					ldo2 {
265						regulator-name = "VDDIO_AO_3V3";
266						regulator-min-microvolt = <3300000>;
267						regulator-max-microvolt = <3300000>;
268						regulator-always-on;
269						regulator-boot-on;
270					};
271
272					vdd_emmc_3v3: ldo3 {
273						regulator-name = "VDD_EMMC_3V3";
274						regulator-min-microvolt = <3300000>;
275						regulator-max-microvolt = <3300000>;
276					};
277
278					vdd_usb_3v3: ldo5 {
279						regulator-name = "VDD_USB_3V3";
280						regulator-min-microvolt = <3300000>;
281						regulator-max-microvolt = <3300000>;
282					};
283
284					ldo6 {
285						regulator-name = "VDD_SDIO_3V3";
286						regulator-min-microvolt = <3300000>;
287						regulator-max-microvolt = <3300000>;
288					};
289
290					ldo7 {
291						regulator-name = "AVDD_CSI_1V2";
292						regulator-min-microvolt = <1200000>;
293						regulator-max-microvolt = <1200000>;
294					};
295				};
296			};
297
298			temperature-sensor@4c {
299				compatible = "ti,tmp451";
300				reg = <0x4c>;
301
302				interrupt-parent = <&gpio>;
303				interrupts = <TEGRA194_MAIN_GPIO(H, 2)
304					      IRQ_TYPE_LEVEL_LOW>;
305				vcc-supply = <&vdd_1v8ls>;
306
307				#thermal-sensor-cells = <1>;
308			};
309		};
310	};
311
312	vdd_5v0_sys: regulator@0 {
313		compatible = "regulator-fixed";
314		regulator-name = "VIN_SYS_5V0";
315		regulator-min-microvolt = <5000000>;
316		regulator-max-microvolt = <5000000>;
317		regulator-always-on;
318		regulator-boot-on;
319	};
320
321	vdd_hdmi: regulator@1 {
322		compatible = "regulator-fixed";
323		regulator-name = "VDD_5V0_HDMI_CON";
324		regulator-min-microvolt = <5000000>;
325		regulator-max-microvolt = <5000000>;
326		gpio = <&gpio TEGRA194_MAIN_GPIO(A, 3) GPIO_ACTIVE_HIGH>;
327		enable-active-high;
328	};
329
330	vdd_3v3_pcie: regulator@2 {
331		compatible = "regulator-fixed";
332		regulator-name = "PEX_3V3";
333		regulator-min-microvolt = <3300000>;
334		regulator-max-microvolt = <3300000>;
335		gpio = <&gpio TEGRA194_MAIN_GPIO(Z, 2) GPIO_ACTIVE_HIGH>;
336		regulator-boot-on;
337		enable-active-high;
338	};
339
340	vdd_12v_pcie: regulator@3 {
341		compatible = "regulator-fixed";
342		regulator-name = "VDD_12V";
343		regulator-min-microvolt = <1200000>;
344		regulator-max-microvolt = <1200000>;
345		gpio = <&gpio TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
346		regulator-boot-on;
347	};
348
349	vdd_5v_sata: regulator@4 {
350		compatible = "regulator-fixed";
351		regulator-name = "VDD_5V_SATA";
352		regulator-min-microvolt = <5000000>;
353		regulator-max-microvolt = <5000000>;
354		gpio = <&gpio TEGRA194_MAIN_GPIO(Z, 1) GPIO_ACTIVE_HIGH>;
355		enable-active-high;
356	};
357};
358