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 = "/cbb@0/ethernet@2490000";
12		sdhci0 = "/cbb@0/sdhci@3460000";
13		sdhci1 = "/cbb@0/sdhci@3400000";
14		serial0 = &tcu;
15		i2c0 = "/bpmp/i2c";
16		i2c1 = "/cbb@0/i2c@3160000";
17		i2c2 = "/cbb@0/i2c@c240000";
18		i2c3 = "/cbb@0/i2c@3180000";
19		i2c4 = "/cbb@0/i2c@3190000";
20		i2c5 = "/cbb@0/i2c@31c0000";
21		i2c6 = "/cbb@0/i2c@c250000";
22		i2c7 = "/cbb@0/i2c@31e0000";
23	};
24
25	chosen {
26		bootargs = "console=ttyS0,115200n8";
27		stdout-path = "serial0:115200n8";
28	};
29
30	cbb@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";
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				};
48			};
49		};
50
51		serial@3110000 {
52			status = "okay";
53		};
54
55		/* SDMMC1 (SD/MMC) */
56		sdhci@3400000 {
57			cd-gpios = <&gpio TEGRA194_MAIN_GPIO(A, 0) GPIO_ACTIVE_LOW>;
58		};
59
60		/* SDMMC4 (eMMC) */
61		sdhci@3460000 {
62			status = "okay";
63			bus-width = <8>;
64			non-removable;
65
66			vqmmc-supply = <&vdd_1v8ls>;
67			vmmc-supply = <&vdd_emmc_3v3>;
68		};
69
70		rtc@c2a0000 {
71			status = "okay";
72		};
73
74		pmc@c360000 {
75			nvidia,invert-interrupt;
76		};
77	};
78
79	bpmp {
80		i2c {
81			status = "okay";
82
83			pmic: pmic@3c {
84				compatible = "maxim,max20024";
85				reg = <0x3c>;
86
87				interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
88				#interrupt-cells = <2>;
89				interrupt-controller;
90
91				#gpio-cells = <2>;
92				gpio-controller;
93
94				pinctrl-names = "default";
95				pinctrl-0 = <&max20024_default>;
96
97				max20024_default: pinmux {
98					gpio0 {
99						pins = "gpio0";
100						function = "gpio";
101					};
102
103					gpio1 {
104						pins = "gpio1";
105						function = "fps-out";
106						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
107					};
108
109					gpio2 {
110						pins = "gpio2";
111						function = "fps-out";
112						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
113					};
114
115					gpio3 {
116						pins = "gpio3";
117						function = "fps-out";
118						maxim,active-fps-source = <MAX77620_FPS_SRC_DEF>;
119					};
120
121					gpio4 {
122						pins = "gpio4";
123						function = "32k-out1";
124						drive-push-pull = <1>;
125					};
126
127					gpio6 {
128						pins = "gpio6";
129						function = "gpio";
130						drive-push-pull = <1>;
131					};
132
133					gpio7 {
134						pins = "gpio7";
135						function = "gpio";
136						drive-push-pull = <0>;
137					};
138				};
139
140				fps {
141					fps0 {
142						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
143						maxim,shutdown-fps-time-period-us = <640>;
144					};
145
146					fps1 {
147						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
148						maxim,shutdown-fps-time-period-us = <640>;
149						maxim,device-state-on-disabled-event = <MAX77620_FPS_INACTIVE_STATE_SLEEP>;
150					};
151
152					fps2 {
153						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
154						maxim,shutdown-fps-time-period-us = <640>;
155					};
156				};
157
158				regulators {
159					in-sd0-supply = <&vdd_5v0_sys>;
160					in-sd1-supply = <&vdd_5v0_sys>;
161					in-sd2-supply = <&vdd_5v0_sys>;
162					in-sd3-supply = <&vdd_5v0_sys>;
163					in-sd4-supply = <&vdd_5v0_sys>;
164
165					in-ldo0-1-supply = <&vdd_5v0_sys>;
166					in-ldo2-supply = <&vdd_5v0_sys>;
167					in-ldo3-5-supply = <&vdd_5v0_sys>;
168					in-ldo4-6-supply = <&vdd_5v0_sys>;
169					in-ldo7-8-supply = <&vdd_1v8ls>;
170
171					vdd_1v0: sd0 {
172						regulator-name = "VDDIO_SYS_1V0";
173						regulator-min-microvolt = <1000000>;
174						regulator-max-microvolt = <1000000>;
175						regulator-always-on;
176						regulator-boot-on;
177					};
178
179					vdd_1v8hs: sd1 {
180						regulator-name = "VDDIO_SYS_1V8HS";
181						regulator-min-microvolt = <1800000>;
182						regulator-max-microvolt = <1800000>;
183						regulator-always-on;
184						regulator-boot-on;
185					};
186
187					vdd_1v8ls: sd2 {
188						regulator-name = "VDDIO_SYS_1V8LS";
189						regulator-min-microvolt = <1800000>;
190						regulator-max-microvolt = <1800000>;
191						regulator-always-on;
192						regulator-boot-on;
193					};
194
195					vdd_1v8ao: sd3 {
196						regulator-name = "VDDIO_AO_1V8";
197						regulator-min-microvolt = <1800000>;
198						regulator-max-microvolt = <1800000>;
199						regulator-always-on;
200						regulator-boot-on;
201					};
202
203					sd4 {
204						regulator-name = "VDD_DDR_1V1";
205						regulator-min-microvolt = <1100000>;
206						regulator-max-microvolt = <1100000>;
207						regulator-always-on;
208						regulator-boot-on;
209					};
210
211					ldo0 {
212						regulator-name = "VDD_RTC";
213						regulator-min-microvolt = <800000>;
214						regulator-max-microvolt = <800000>;
215						regulator-always-on;
216						regulator-boot-on;
217					};
218
219					ldo2 {
220						regulator-name = "VDDIO_AO_3V3";
221						regulator-min-microvolt = <3300000>;
222						regulator-max-microvolt = <3300000>;
223						regulator-always-on;
224						regulator-boot-on;
225					};
226
227					vdd_emmc_3v3: ldo3 {
228						regulator-name = "VDD_EMMC_3V3";
229						regulator-min-microvolt = <3300000>;
230						regulator-max-microvolt = <3300000>;
231					};
232
233					ldo5 {
234						regulator-name = "VDD_USB_3V3";
235						regulator-min-microvolt = <3300000>;
236						regulator-max-microvolt = <3300000>;
237					};
238
239					ldo6 {
240						regulator-name = "VDD_SDIO_3V3";
241						regulator-min-microvolt = <3300000>;
242						regulator-max-microvolt = <3300000>;
243					};
244
245					ldo7 {
246						regulator-name = "AVDD_CSI_1V2";
247						regulator-min-microvolt = <1200000>;
248						regulator-max-microvolt = <1200000>;
249					};
250				};
251			};
252
253			temperature-sensor@4c {
254				compatible = "ti,tmp451";
255				reg = <0x4c>;
256
257				interrupt-parent = <&gpio>;
258				interrupts = <TEGRA194_MAIN_GPIO(H, 2)
259					      IRQ_TYPE_LEVEL_LOW>;
260				vcc-supply = <&vdd_1v8ls>;
261
262				#thermal-sensor-cells = <1>;
263			};
264		};
265	};
266
267	regulators {
268		compatible = "simple-bus";
269		#address-cells = <1>;
270		#size-cells = <0>;
271
272		vdd_5v0_sys: regulator@0 {
273			compatible = "regulator-fixed";
274			reg = <0>;
275
276			regulator-name = "VIN_SYS_5V0";
277			regulator-min-microvolt = <5000000>;
278			regulator-max-microvolt = <5000000>;
279			regulator-always-on;
280			regulator-boot-on;
281		};
282
283		vdd_hdmi: regulator@1 {
284			compatible = "regulator-fixed";
285			reg = <1>;
286
287			regulator-name = "VDD_5V0_HDMI_CON";
288			regulator-min-microvolt = <5000000>;
289			regulator-max-microvolt = <5000000>;
290			gpio = <&gpio TEGRA194_MAIN_GPIO(A, 3) GPIO_ACTIVE_HIGH>;
291			enable-active-high;
292		};
293
294		vdd_3v3_pcie: regulator@2 {
295			compatible = "regulator-fixed";
296			reg = <2>;
297
298			regulator-name = "PEX_3V3";
299			regulator-min-microvolt = <3300000>;
300			regulator-max-microvolt = <3300000>;
301			gpio = <&gpio TEGRA194_MAIN_GPIO(Z, 2) GPIO_ACTIVE_HIGH>;
302			regulator-boot-on;
303			enable-active-high;
304		};
305
306		vdd_12v_pcie: regulator@3 {
307			compatible = "regulator-fixed";
308			reg = <3>;
309
310			regulator-name = "VDD_12V";
311			regulator-min-microvolt = <1200000>;
312			regulator-max-microvolt = <1200000>;
313			gpio = <&gpio TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_HIGH>;
314			regulator-boot-on;
315		};
316	};
317};
318