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