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