1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3
4#include <dt-bindings/input/linux-event-codes.h>
5#include <dt-bindings/input/gpio-keys.h>
6
7#include "tegra234-p3701-0000.dtsi"
8#include "tegra234-p3737-0000.dtsi"
9
10/ {
11	model = "NVIDIA Jetson AGX Orin Developer Kit";
12	compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3701-0000", "nvidia,tegra234";
13
14	aliases {
15		mmc3 = "/bus@0/mmc@3460000";
16		serial0 = &tcu;
17		serial1 = &uarta;
18	};
19
20	chosen {
21		bootargs = "console=ttyTCU0,115200n8";
22		stdout-path = "serial0:115200n8";
23	};
24
25	bus@0 {
26		serial@3100000 {
27			compatible = "nvidia,tegra194-hsuart";
28			reset-names = "serial";
29			status = "okay";
30		};
31
32		serial@31d0000 {
33			status = "okay";
34		};
35
36		pwm@32a0000 {
37			assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>;
38			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
39			status = "okay";
40		};
41
42		hda@3510000 {
43			nvidia,model = "NVIDIA Jetson AGX Orin HDA";
44			status = "okay";
45		};
46
47		padctl@3520000 {
48			status = "okay";
49
50			pads {
51				usb2 {
52					lanes {
53						usb2-0 {
54							status = "okay";
55						};
56
57						usb2-1 {
58							status = "okay";
59						};
60
61						usb2-2 {
62							status = "okay";
63						};
64
65						usb2-3 {
66							status = "okay";
67						};
68					};
69				};
70
71				usb3 {
72					lanes {
73						usb3-0 {
74							status = "okay";
75						};
76
77						usb3-1 {
78							status = "okay";
79						};
80
81						usb3-2 {
82							status = "okay";
83						};
84					};
85				};
86			};
87
88			ports {
89				usb2-0 {
90					mode = "otg";
91					usb-role-switch;
92					status = "okay";
93
94					port {
95						hs_typec_p1: endpoint {
96							remote-endpoint = <&hs_ucsi_ccg_p1>;
97						};
98					};
99				};
100
101				usb2-1 {
102					mode = "host";
103					status = "okay";
104
105					port {
106						hs_typec_p0: endpoint {
107							remote-endpoint = <&hs_ucsi_ccg_p0>;
108						};
109					};
110				};
111
112				usb2-2 {
113					mode = "host";
114					status = "okay";
115				};
116
117				usb2-3 {
118					mode = "host";
119					status = "okay";
120				};
121
122				usb3-0 {
123					nvidia,usb2-companion = <1>;
124					status = "okay";
125
126					port {
127						ss_typec_p0: endpoint {
128							remote-endpoint = <&ss_ucsi_ccg_p0>;
129						};
130					};
131				};
132
133				usb3-1 {
134					nvidia,usb2-companion = <0>;
135					status = "okay";
136
137					port {
138						ss_typec_p1: endpoint {
139							remote-endpoint = <&ss_ucsi_ccg_p1>;
140						};
141					};
142				};
143
144				usb3-2 {
145					nvidia,usb2-companion = <3>;
146					status = "okay";
147				};
148			};
149		};
150
151		usb@3550000 {
152			status = "okay";
153
154			phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
155			       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
156			phy-names = "usb2-0", "usb3-0";
157		};
158
159		usb@3610000 {
160			status = "okay";
161
162			phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
163			       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
164			       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
165			       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
166			       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
167			       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
168			       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
169			phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
170				    "usb3-0", "usb3-1", "usb3-2";
171		};
172
173		ethernet@6800000 {
174			status = "okay";
175
176			phy-handle = <&mgbe0_phy>;
177			phy-mode = "10gbase-r";
178
179			mdio {
180				#address-cells = <1>;
181				#size-cells = <0>;
182
183				mgbe0_phy: phy@0 {
184					compatible = "ethernet-phy-ieee802.3-c45";
185					reg = <0x0>;
186
187					#phy-cells = <0>;
188				};
189			};
190		};
191
192		i2c@c240000 {
193			status = "okay";
194
195			typec@8 {
196				compatible = "cypress,cypd4226";
197				reg = <0x08>;
198				interrupt-parent = <&gpio>;
199				interrupts = <TEGRA234_MAIN_GPIO(Y, 4) IRQ_TYPE_LEVEL_LOW>;
200				firmware-name = "nvidia,jetson-agx-xavier";
201				status = "okay";
202
203				#address-cells = <1>;
204				#size-cells = <0>;
205
206				ccg_typec_con0: connector@0 {
207					compatible = "usb-c-connector";
208					reg = <0>;
209					label = "USB-C";
210					data-role = "host";
211
212					ports {
213						#address-cells = <1>;
214						#size-cells = <0>;
215
216						port@0 {
217							reg = <0>;
218
219							hs_ucsi_ccg_p0: endpoint {
220								remote-endpoint = <&hs_typec_p0>;
221							};
222						};
223
224						port@1 {
225							reg = <1>;
226
227							ss_ucsi_ccg_p0: endpoint {
228								remote-endpoint = <&ss_typec_p0>;
229							};
230						};
231					};
232				};
233
234				ccg_typec_con1: connector@1 {
235					compatible = "usb-c-connector";
236					reg = <1>;
237					label = "USB-C";
238					data-role = "dual";
239
240					ports {
241						#address-cells = <1>;
242						#size-cells = <0>;
243
244						port@0 {
245							reg = <0>;
246
247							hs_ucsi_ccg_p1: endpoint {
248								remote-endpoint = <&hs_typec_p1>;
249							};
250						};
251
252						port@1 {
253							reg = <1>;
254
255							ss_ucsi_ccg_p1: endpoint {
256								remote-endpoint = <&ss_typec_p1>;
257							};
258						};
259					};
260				};
261			};
262		};
263
264		pcie@14100000 {
265			status = "okay";
266
267			vddio-pex-ctl-supply = <&vdd_1v8_ao>;
268
269			phys = <&p2u_hsio_3>;
270			phy-names = "p2u-0";
271		};
272
273		pcie@14160000 {
274			status = "okay";
275
276			vddio-pex-ctl-supply = <&vdd_1v8_ao>;
277
278			phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>,
279			       <&p2u_hsio_7>;
280			phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
281		};
282
283		pcie@141a0000 {
284			status = "okay";
285
286			vddio-pex-ctl-supply = <&vdd_1v8_ls>;
287			vpcie3v3-supply = <&vdd_3v3_pcie>;
288			vpcie12v-supply = <&vdd_12v_pcie>;
289
290			phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
291			       <&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
292			       <&p2u_nvhs_6>, <&p2u_nvhs_7>;
293			phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
294				    "p2u-5", "p2u-6", "p2u-7";
295		};
296
297		pcie-ep@141a0000 {
298			status = "disabled";
299
300			vddio-pex-ctl-supply = <&vdd_1v8_ls>;
301
302			reset-gpios = <&gpio TEGRA234_MAIN_GPIO(AF, 1) GPIO_ACTIVE_LOW>;
303
304			nvidia,refclk-select-gpios = <&gpio_aon
305						      TEGRA234_AON_GPIO(AA, 4)
306						      GPIO_ACTIVE_HIGH>;
307
308			phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
309			       <&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
310			       <&p2u_nvhs_6>, <&p2u_nvhs_7>;
311			phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
312				    "p2u-5", "p2u-6", "p2u-7";
313		};
314	};
315
316	gpio-keys {
317		compatible = "gpio-keys";
318		status = "okay";
319
320		key-force-recovery {
321			label = "Force Recovery";
322			gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
323			linux,input-type = <EV_KEY>;
324			linux,code = <BTN_1>;
325		};
326
327		key-power {
328			label = "Power";
329			gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
330			linux,input-type = <EV_KEY>;
331			linux,code = <KEY_POWER>;
332			wakeup-event-action = <EV_ACT_ASSERTED>;
333			wakeup-source;
334		};
335
336		key-suspend {
337			label = "Suspend";
338			gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
339			linux,input-type = <EV_KEY>;
340			linux,code = <KEY_SLEEP>;
341		};
342	};
343
344	pwm-fan {
345		cooling-levels = <66 215 255>;
346	};
347
348	serial {
349		status = "okay";
350	};
351
352	sound {
353		compatible = "nvidia,tegra186-audio-graph-card";
354		status = "okay";
355
356		dais = /* ADMAIF (FE) Ports */
357		       <&admaif0_port>, <&admaif1_port>, <&admaif2_port>, <&admaif3_port>,
358		       <&admaif4_port>, <&admaif5_port>, <&admaif6_port>, <&admaif7_port>,
359		       <&admaif8_port>, <&admaif9_port>, <&admaif10_port>, <&admaif11_port>,
360		       <&admaif12_port>, <&admaif13_port>, <&admaif14_port>, <&admaif15_port>,
361		       <&admaif16_port>, <&admaif17_port>, <&admaif18_port>, <&admaif19_port>,
362		       /* XBAR Ports */
363		       <&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_i2s4_port>,
364		       <&xbar_i2s6_port>, <&xbar_dmic3_port>,
365		       <&xbar_sfc1_in_port>, <&xbar_sfc2_in_port>,
366		       <&xbar_sfc3_in_port>, <&xbar_sfc4_in_port>,
367		       <&xbar_mvc1_in_port>, <&xbar_mvc2_in_port>,
368		       <&xbar_amx1_in1_port>, <&xbar_amx1_in2_port>,
369		       <&xbar_amx1_in3_port>, <&xbar_amx1_in4_port>,
370		       <&xbar_amx2_in1_port>, <&xbar_amx2_in2_port>,
371		       <&xbar_amx2_in3_port>, <&xbar_amx2_in4_port>,
372		       <&xbar_amx3_in1_port>, <&xbar_amx3_in2_port>,
373		       <&xbar_amx3_in3_port>, <&xbar_amx3_in4_port>,
374		       <&xbar_amx4_in1_port>, <&xbar_amx4_in2_port>,
375		       <&xbar_amx4_in3_port>, <&xbar_amx4_in4_port>,
376		       <&xbar_adx1_in_port>, <&xbar_adx2_in_port>,
377		       <&xbar_adx3_in_port>, <&xbar_adx4_in_port>,
378		       <&xbar_mix_in1_port>, <&xbar_mix_in2_port>,
379		       <&xbar_mix_in3_port>, <&xbar_mix_in4_port>,
380		       <&xbar_mix_in5_port>, <&xbar_mix_in6_port>,
381		       <&xbar_mix_in7_port>, <&xbar_mix_in8_port>,
382		       <&xbar_mix_in9_port>, <&xbar_mix_in10_port>,
383		       <&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>,
384		       <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
385		       <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
386		       <&xbar_asrc_in7_port>,
387		       <&xbar_ope1_in_port>,
388		       /* HW accelerators */
389		       <&sfc1_out_port>, <&sfc2_out_port>,
390		       <&sfc3_out_port>, <&sfc4_out_port>,
391		       <&mvc1_out_port>, <&mvc2_out_port>,
392		       <&amx1_out_port>, <&amx2_out_port>,
393		       <&amx3_out_port>, <&amx4_out_port>,
394		       <&adx1_out1_port>, <&adx1_out2_port>,
395		       <&adx1_out3_port>, <&adx1_out4_port>,
396		       <&adx2_out1_port>, <&adx2_out2_port>,
397		       <&adx2_out3_port>, <&adx2_out4_port>,
398		       <&adx3_out1_port>, <&adx3_out2_port>,
399		       <&adx3_out3_port>, <&adx3_out4_port>,
400		       <&adx4_out1_port>, <&adx4_out2_port>,
401		       <&adx4_out3_port>, <&adx4_out4_port>,
402		       <&mix_out1_port>, <&mix_out2_port>, <&mix_out3_port>,
403		       <&mix_out4_port>, <&mix_out5_port>,
404		       <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
405		       <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
406		       <&ope1_out_port>,
407		       /* BE I/O Ports */
408		       <&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
409		       <&dmic3_port>;
410
411		label = "NVIDIA Jetson AGX Orin APE";
412
413		widgets = "Microphone",	"CVB-RT MIC Jack",
414			  "Microphone",	"CVB-RT MIC",
415			  "Headphone",	"CVB-RT HP Jack",
416			  "Speaker",	"CVB-RT SPK";
417
418		routing = /* I2S1 <-> RT5640 */
419			  "CVB-RT AIF1 Playback",	"I2S1 DAP-Playback",
420			  "I2S1 DAP-Capture",		"CVB-RT AIF1 Capture",
421			  /* RT5640 codec controls */
422			  "CVB-RT HP Jack",		"CVB-RT HPOL",
423			  "CVB-RT HP Jack",		"CVB-RT HPOR",
424			  "CVB-RT IN1P",		"CVB-RT MIC Jack",
425			  "CVB-RT IN2P",		"CVB-RT MIC Jack",
426			  "CVB-RT SPK",			"CVB-RT SPOLP",
427			  "CVB-RT SPK",			"CVB-RT SPORP",
428			  "CVB-RT DMIC1",		"CVB-RT MIC",
429			  "CVB-RT DMIC2",		"CVB-RT MIC";
430	};
431
432	thermal-zones {
433		tj-thermal {
434			cooling-maps {
435				map-active-0 {
436					cooling-device = <&fan 0 1>;
437					trip = <&tj_trip_active0>;
438				};
439
440				map-active-1 {
441					cooling-device = <&fan 1 2>;
442					trip = <&tj_trip_active1>;
443				};
444			};
445		};
446	};
447};
448