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#include <dt-bindings/mfd/max77620.h>
7
8#include "tegra186.dtsi"
9
10/ {
11	model = "NVIDIA Jetson TX2 NX Developer Kit";
12	compatible = "nvidia,p3509-0000+p3636-0001", "nvidia,tegra186";
13
14	aliases {
15		ethernet0 = "/ethernet@2490000";
16		i2c0 = "/bpmp/i2c";
17		i2c1 = "/i2c@3160000";
18		i2c2 = "/i2c@c240000";
19		i2c3 = "/i2c@3180000";
20		i2c4 = "/i2c@3190000";
21		i2c5 = "/i2c@31c0000";
22		i2c6 = "/i2c@c250000";
23		i2c7 = "/i2c@31e0000";
24		mmc0 = "/mmc@3460000";
25		serial0 = &uarta;
26	};
27
28	chosen {
29		bootargs = "earlycon console=ttyS0,115200n8";
30		stdout-path = "serial0:115200n8";
31	};
32
33	memory@80000000 {
34		device_type = "memory";
35		reg = <0x0 0x80000000 0x0 0x70000000>;
36	};
37
38	ethernet@2490000 {
39		status = "okay";
40
41		phy-reset-gpios = <&gpio_aon TEGRA186_AON_GPIO(AA, 6) GPIO_ACTIVE_LOW>;
42		phy-handle = <&phy>;
43		phy-mode = "rgmii-id";
44
45		mdio {
46			#address-cells = <1>;
47			#size-cells = <0>;
48
49			phy: phy@0 {
50				compatible = "ethernet-phy-ieee802.3-c22";
51				reg = <0x0>;
52				interrupt-parent = <&gpio_aon>;
53				interrupts = <TEGRA186_AON_GPIO(AA, 7) IRQ_TYPE_LEVEL_LOW>;
54				#phy-cells = <0>;
55			};
56		};
57	};
58
59	memory-controller@2c00000 {
60		status = "okay";
61	};
62
63	timer@3010000 {
64		status = "okay";
65	};
66
67	serial@3100000 {
68		status = "okay";
69	};
70
71	i2c@3160000 {
72		status = "okay";
73	};
74
75	i2c@3180000 {
76		status = "okay";
77
78		power-monitor@40 {
79			compatible = "ti,ina3221";
80			reg = <0x40>;
81			#address-cells = <1>;
82			#size-cells = <0>;
83
84			channel@0 {
85				reg = <0>;
86				label = "VDD_IN";
87				shunt-resistor-micro-ohms = <5>;
88			};
89
90			channel@1 {
91				reg = <1>;
92				label = "VDD_CPU_GPU";
93				shunt-resistor-micro-ohms = <5>;
94			};
95
96			channel@2 {
97				reg = <2>;
98				label = "VDD_SOC";
99				shunt-resistor-micro-ohms = <>;
100			};
101		};
102	};
103
104	ddc: i2c@3190000 {
105		status = "okay";
106	};
107
108	i2c@31c0000 {
109		status = "okay";
110	};
111
112	i2c@31e0000 {
113		status = "okay";
114	};
115
116	/* SDMMC4 (eMMC) */
117	mmc@3460000 {
118		status = "okay";
119		bus-width = <8>;
120		non-removable;
121
122		vqmmc-supply = <&vdd_1v8_ap>;
123		vmmc-supply = <&vdd_3v3_sys>;
124	};
125
126	hda@3510000 {
127		nvidia,model = "jetson-tx2-hda";
128		status = "okay";
129	};
130
131	padctl@3520000 {
132		status = "okay";
133
134		avdd-pll-erefeut-supply = <&vdd_1v8_pll>;
135		avdd-usb-supply = <&vdd_3v3_sys>;
136		vclamp-usb-supply = <&vdd_1v8>;
137		vddio-hsic-supply = <&gnd>;
138
139		pads {
140			usb2 {
141				status = "okay";
142
143				lanes {
144					micro_b: usb2-0 {
145						nvidia,function = "xusb";
146						status = "okay";
147					};
148
149					usb2-1 {
150						nvidia,function = "xusb";
151						status = "okay";
152					};
153
154					usb2-2 {
155						nvidia,function = "xusb";
156						status = "okay";
157					};
158				};
159			};
160
161			usb3 {
162				status = "okay";
163
164				lanes {
165					usb3-1 {
166						nvidia,function = "xusb";
167						status = "okay";
168					};
169				};
170			};
171		};
172
173		ports {
174			usb2-0 {
175				status = "okay";
176				mode = "otg";
177				vbus-supply = <&vdd_5v0_sys>;
178				usb-role-switch;
179
180				connector {
181					compatible = "gpio-usb-b-connector",
182						     "usb-b-connector";
183					label = "micro-USB";
184					type = "micro";
185					vbus-gpios = <&gpio
186						      TEGRA186_MAIN_GPIO(L, 4)
187						      GPIO_ACTIVE_LOW>;
188					id-gpios = <&pmic 0 GPIO_ACTIVE_HIGH>;
189				};
190			};
191
192			usb2-1 {
193				status = "okay";
194				mode = "host";
195
196				vbus-supply = <&vdd_5v0_sys>;
197			};
198
199			usb2-2 {
200				status = "okay";
201				mode = "host";
202
203				vbus-supply = <&vdd_5v0_sys>;
204			};
205
206			usb3-1 {
207				nvidia,usb2-companion = <1>;
208				vbus-supply = <&vdd_5v0_sys>;
209				status = "okay";
210			};
211		};
212	};
213
214	usb@3530000 {
215		status = "okay";
216
217		phys = <&{/padctl@3520000/pads/usb2/lanes/usb2-0}>,
218		       <&{/padctl@3520000/pads/usb2/lanes/usb2-1}>,
219		       <&{/padctl@3520000/pads/usb2/lanes/usb2-2}>,
220		       <&{/padctl@3520000/pads/usb3/lanes/usb3-1}>;
221		phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-1";
222	};
223
224	usb@3550000 {
225		status = "okay";
226
227		phys = <&micro_b>;
228		phy-names = "usb2-0";
229	};
230
231	hsp@3c00000 {
232		status = "okay";
233	};
234
235	i2c@c240000 {
236		status = "okay";
237	};
238
239	i2c@c250000 {
240		status = "okay";
241
242		/* module ID EEPROM */
243		eeprom@50 {
244			compatible = "atmel,24c02";
245			reg = <0x50>;
246
247			label = "module";
248			vcc-supply = <&vdd_1v8>;
249			address-width = <8>;
250			pagesize = <8>;
251			size = <256>;
252			read-only;
253		};
254
255		/* carrier board ID EEPROM */
256		eeprom@57 {
257			compatible = "atmel,24c02";
258			reg = <0x57>;
259
260			label = "system";
261			vcc-supply = <&vdd_1v8>;
262			address-width = <8>;
263			pagesize = <8>;
264			size = <256>;
265			read-only;
266		};
267	};
268
269	rtc@c2a0000 {
270		status = "okay";
271	};
272
273	pwm@c340000 {
274		status = "okay";
275	};
276
277	pmc@c360000 {
278		nvidia,invert-interrupt;
279	};
280
281	pcie@10003000 {
282		status = "okay";
283
284		dvdd-pex-supply = <&vdd_pex>;
285		hvdd-pex-pll-supply = <&vdd_1v8>;
286		hvdd-pex-supply = <&vdd_1v8>;
287		vddio-pexctl-aud-supply = <&vdd_1v8>;
288
289		pci@1,0 {
290			nvidia,num-lanes = <2>;
291			status = "okay";
292		};
293
294		pci@2,0 {
295			nvidia,num-lanes = <1>;
296			status = "disabled";
297		};
298
299		pci@3,0 {
300			nvidia,num-lanes = <1>;
301			status = "okay";
302		};
303	};
304
305	host1x@13e00000 {
306		status = "okay";
307
308		dpaux@15040000 {
309			status = "okay";
310		};
311
312		display-hub@15200000 {
313			status = "okay";
314		};
315
316		dsi@15300000 {
317			status = "disabled";
318		};
319
320		/* DP */
321		sor@15540000 {
322			status = "okay";
323
324			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
325			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
326
327			nvidia,dpaux = <&dpaux>;
328		};
329
330		/* HDMI */
331		sor@15580000 {
332			status = "okay";
333
334			avdd-io-hdmi-dp-supply = <&vdd_hdmi_1v05>;
335			vdd-hdmi-dp-pll-supply = <&vdd_1v8_ap>;
336			hdmi-supply = <&vdd_hdmi>;
337
338			nvidia,ddc-i2c-bus = <&ddc>;
339			nvidia,hpd-gpio = <&gpio TEGRA186_MAIN_GPIO(P, 1)
340						 GPIO_ACTIVE_LOW>;
341		};
342
343		dpaux@155c0000 {
344			status = "okay";
345		};
346	};
347
348	gpu@17000000 {
349		status = "okay";
350	};
351
352	fan: fan {
353		compatible = "pwm-fan";
354		pwms = <&pwm4 0 45334>;
355
356		cooling-levels = <0 64 128 255>;
357		#cooling-cells = <2>;
358	};
359
360	gpio-keys {
361		compatible = "gpio-keys";
362
363		power {
364			label = "Power";
365			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 0)
366					   GPIO_ACTIVE_LOW>;
367			linux,input-type = <EV_KEY>;
368			linux,code = <KEY_POWER>;
369			debounce-interval = <10>;
370			wakeup-event-action = <EV_ACT_ASSERTED>;
371			wakeup-source;
372		};
373
374		volume-up {
375			label = "Volume Up";
376			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 1)
377					   GPIO_ACTIVE_LOW>;
378			linux,input-type = <EV_KEY>;
379			linux,code = <KEY_VOLUMEUP>;
380			debounce-interval = <10>;
381		};
382
383		volume-down {
384			label = "Volume Down";
385			gpios = <&gpio_aon TEGRA186_AON_GPIO(FF, 2)
386					   GPIO_ACTIVE_LOW>;
387			linux,input-type = <EV_KEY>;
388			linux,code = <KEY_VOLUMEDOWN>;
389			debounce-interval = <10>;
390		};
391	};
392
393	cpus {
394		cpu@0 {
395			enable-method = "psci";
396		};
397
398		cpu@1 {
399			enable-method = "psci";
400		};
401
402		cpu@2 {
403			enable-method = "psci";
404		};
405
406		cpu@3 {
407			enable-method = "psci";
408		};
409
410		cpu@4 {
411			enable-method = "psci";
412		};
413
414		cpu@5 {
415			enable-method = "psci";
416		};
417	};
418
419	bpmp {
420		i2c {
421			status = "okay";
422
423			pmic: pmic@3c {
424				compatible = "maxim,max77620";
425				reg = <0x3c>;
426
427				interrupt-parent = <&pmc>;
428				interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
429				#interrupt-cells = <2>;
430				interrupt-controller;
431
432				#gpio-cells = <2>;
433				gpio-controller;
434
435				pinctrl-names = "default";
436				pinctrl-0 = <&max77620_default>;
437
438				max77620_default: pinmux {
439					gpio0 {
440						pins = "gpio0";
441						function = "gpio";
442					};
443
444					gpio1 {
445						pins = "gpio1";
446						function = "fps-out";
447						maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
448					};
449
450					gpio2 {
451						pins = "gpio2";
452						function = "fps-out";
453						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
454					};
455
456					gpio3 {
457						pins = "gpio3";
458						function = "fps-out";
459						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
460					};
461
462					gpio4 {
463						pins = "gpio4";
464						function = "32k-out1";
465						drive-push-pull = <1>;
466					};
467
468					gpio5 {
469						pins = "gpio5";
470						function = "gpio";
471						drive-push-pull = <0>;
472					};
473
474					gpio6 {
475						pins = "gpio6";
476						function = "gpio";
477						drive-push-pull = <1>;
478					};
479
480					gpio7 {
481						pins = "gpio7";
482						function = "gpio";
483						drive-push-pull = <1>;
484					};
485				};
486
487				fps {
488					fps0 {
489						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
490						maxim,shutdown-fps-time-period-us = <640>;
491					};
492
493					fps1 {
494						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
495						maxim,shutdown-fps-time-period-us = <640>;
496					};
497
498					fps2 {
499						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
500						maxim,shutdown-fps-time-period-us = <640>;
501					};
502				};
503
504				regulators {
505					in-sd0-supply = <&vdd_5v0_sys>;
506					in-sd1-supply = <&vdd_5v0_sys>;
507					in-sd2-supply = <&vdd_5v0_sys>;
508					in-sd3-supply = <&vdd_5v0_sys>;
509
510					in-ldo0-1-supply = <&vdd_5v0_sys>;
511					in-ldo2-supply = <&vdd_5v0_sys>;
512					in-ldo3-5-supply = <&vdd_5v0_sys>;
513					in-ldo4-6-supply = <&vdd_1v8>;
514					in-ldo7-8-supply = <&avdd_dsi_csi>;
515
516					sd0 {
517						regulator-name = "VDD_DDR_1V1_PMIC";
518						regulator-min-microvolt = <1100000>;
519						regulator-max-microvolt = <1100000>;
520						regulator-always-on;
521						regulator-boot-on;
522					};
523
524					avdd_dsi_csi: sd1 {
525						regulator-name = "AVDD_DSI_CSI_1V2";
526						regulator-min-microvolt = <1200000>;
527						regulator-max-microvolt = <1200000>;
528					};
529
530					vdd_1v8: sd2 {
531						regulator-name = "VDD_1V8";
532						regulator-min-microvolt = <1800000>;
533						regulator-max-microvolt = <1800000>;
534					};
535
536					vdd_3v3_sys: sd3 {
537						regulator-name = "VDD_3V3_SYS";
538						regulator-min-microvolt = <3300000>;
539						regulator-max-microvolt = <3300000>;
540					};
541
542					vdd_1v8_pll: ldo0 {
543						regulator-name = "VDD_1V8_AP_PLL";
544						regulator-min-microvolt = <1800000>;
545						regulator-max-microvolt = <1800000>;
546					};
547
548					ldo2 {
549						regulator-name = "VDDIO_3V3_AOHV";
550						regulator-min-microvolt = <3300000>;
551						regulator-max-microvolt = <3300000>;
552						regulator-always-on;
553						regulator-boot-on;
554					};
555
556					vddio_sdmmc1: ldo3 {
557						regulator-name = "VDDIO_SDMMC1_AP";
558						regulator-min-microvolt = <1800000>;
559						regulator-max-microvolt = <3300000>;
560					};
561
562					ldo4 {
563						regulator-name = "VDD_RTC";
564						regulator-min-microvolt = <1000000>;
565						regulator-max-microvolt = <1000000>;
566					};
567
568					vddio_sdmmc3: ldo5 {
569						regulator-name = "VDDIO_SDMMC3_AP";
570						regulator-min-microvolt = <2800000>;
571						regulator-max-microvolt = <2800000>;
572					};
573
574					vdd_hdmi_1v05: ldo7 {
575						regulator-name = "VDD_HDMI_1V05";
576						regulator-min-microvolt = <1050000>;
577						regulator-max-microvolt = <1050000>;
578					};
579
580					vdd_pex: ldo8 {
581						regulator-name = "VDD_PEX_1V05";
582						regulator-min-microvolt = <1050000>;
583						regulator-max-microvolt = <1050000>;
584					};
585				};
586			};
587		};
588	};
589
590	psci {
591		compatible = "arm,psci-1.0";
592		status = "okay";
593		method = "smc";
594	};
595
596	gnd: regulator@0 {
597		compatible = "regulator-fixed";
598		regulator-name = "GND";
599		regulator-min-microvolt = <0>;
600		regulator-max-microvolt = <0>;
601		regulator-always-on;
602		regulator-boot-on;
603	};
604
605	vdd_5v0_sys: regulator@1 {
606		compatible = "regulator-fixed";
607		regulator-name = "VDD_5V0_SYS";
608		regulator-min-microvolt = <5000000>;
609		regulator-max-microvolt = <5000000>;
610		regulator-always-on;
611		regulator-boot-on;
612	};
613
614	vdd_1v8_ap: regulator@2 {
615		compatible = "regulator-fixed";
616		regulator-name = "VDD_1V8_AP";
617		regulator-min-microvolt = <1800000>;
618		regulator-max-microvolt = <1800000>;
619
620		gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
621		enable-active-high;
622
623		vin-supply = <&vdd_1v8>;
624	};
625
626	vdd_hdmi: regulator@3 {
627		compatible = "regulator-fixed";
628		regulator-name = "VDD_5V0_HDMI_CON";
629		regulator-min-microvolt = <5000000>;
630		regulator-max-microvolt = <5000000>;
631
632		vin-supply = <&vdd_5v0_sys>;
633	};
634
635	thermal-zones {
636		cpu {
637			polling-delay = <0>;
638			polling-delay-passive = <500>;
639			status = "okay";
640
641			trips {
642				cpu_trip_critical: critical {
643					temperature = <96500>;
644					hysteresis = <0>;
645					type = "critical";
646				};
647
648				cpu_trip_hot: hot {
649					temperature = <79000>;
650					hysteresis = <2000>;
651					type = "hot";
652				};
653
654				cpu_trip_active: active {
655					temperature = <62000>;
656					hysteresis = <2000>;
657					type = "active";
658				};
659
660				cpu_trip_passive: passive {
661					temperature = <45000>;
662					hysteresis = <2000>;
663					type = "passive";
664				};
665			};
666
667			cooling-maps {
668				cpu-critical {
669					cooling-device = <&fan 3 3>;
670					trip = <&cpu_trip_critical>;
671				};
672
673				cpu-hot {
674					cooling-device = <&fan 2 2>;
675					trip = <&cpu_trip_hot>;
676				};
677
678				cpu-active {
679					cooling-device = <&fan 1 1>;
680					trip = <&cpu_trip_active>;
681				};
682
683				cpu-passive {
684					cooling-device = <&fan 0 0>;
685					trip = <&cpu_trip_passive>;
686				};
687			};
688		};
689
690		gpu {
691			polling-delay = <0>;
692			polling-delay-passive = <500>;
693			status = "okay";
694
695			trips {
696				gpu_alert0: critical {
697					temperature = <99000>;
698					hysteresis = <0>;
699					type = "critical";
700				};
701			};
702		};
703
704		aux {
705			polling-delay = <0>;
706			polling-delay-passive = <500>;
707			status = "okay";
708
709			trips {
710				aux_alert0: critical {
711					temperature = <90000>;
712					hysteresis = <0>;
713					type = "critical";
714				};
715			};
716		};
717	};
718};
719