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