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