1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
2df205de6SJoseph Lo#include "tegra186.dtsi"
3df205de6SJoseph Lo
402df3f03SThierry Reding#include <dt-bindings/mfd/max77620.h>
502df3f03SThierry Reding
6df205de6SJoseph Lo/ {
771e7ea43SThierry Reding	model = "NVIDIA Jetson TX2";
8df205de6SJoseph Lo	compatible = "nvidia,p3310", "nvidia,tegra186";
9df205de6SJoseph Lo
10df205de6SJoseph Lo	aliases {
1180fdf7b4SThierry Reding		sdhci0 = "/sdhci@3460000";
1280fdf7b4SThierry Reding		sdhci1 = "/sdhci@3400000";
13df205de6SJoseph Lo		serial0 = &uarta;
14a4c7aab2SThierry Reding		i2c0 = "/bpmp/i2c";
15a4c7aab2SThierry Reding		i2c1 = "/i2c@3160000";
16a4c7aab2SThierry Reding		i2c2 = "/i2c@c240000";
17a4c7aab2SThierry Reding		i2c3 = "/i2c@3180000";
18a4c7aab2SThierry Reding		i2c4 = "/i2c@3190000";
19a4c7aab2SThierry Reding		i2c5 = "/i2c@31c0000";
20a4c7aab2SThierry Reding		i2c6 = "/i2c@c250000";
21a4c7aab2SThierry Reding		i2c7 = "/i2c@31e0000";
22df205de6SJoseph Lo	};
23df205de6SJoseph Lo
24df205de6SJoseph Lo	chosen {
25df205de6SJoseph Lo		bootargs = "earlycon console=ttyS0,115200n8";
26df205de6SJoseph Lo		stdout-path = "serial0:115200n8";
27df205de6SJoseph Lo	};
28df205de6SJoseph Lo
29df205de6SJoseph Lo	memory {
30df205de6SJoseph Lo		device_type = "memory";
31df205de6SJoseph Lo		reg = <0x0 0x80000000 0x2 0x00000000>;
32df205de6SJoseph Lo	};
33df205de6SJoseph Lo
3424975b8cSThierry Reding	ethernet@2490000 {
3524975b8cSThierry Reding		status = "okay";
3624975b8cSThierry Reding
37caca0482SThierry Reding		phy-reset-gpios = <&gpio TEGRA186_MAIN_GPIO(M, 4)
38caca0482SThierry Reding					 GPIO_ACTIVE_LOW>;
3924975b8cSThierry Reding		phy-handle = <&phy>;
4024975b8cSThierry Reding		phy-mode = "rgmii";
4124975b8cSThierry Reding
4224975b8cSThierry Reding		mdio {
4324975b8cSThierry Reding			#address-cells = <1>;
4424975b8cSThierry Reding			#size-cells = <0>;
4524975b8cSThierry Reding
4624975b8cSThierry Reding			phy: phy@0 {
4724975b8cSThierry Reding				compatible = "ethernet-phy-ieee802.3-c22";
4824975b8cSThierry Reding				reg = <0x0>;
4924975b8cSThierry Reding				interrupt-parent = <&gpio>;
50caca0482SThierry Reding				interrupts = <TEGRA186_MAIN_GPIO(M, 5)
51caca0482SThierry Reding					      IRQ_TYPE_LEVEL_LOW>;
5224975b8cSThierry Reding			};
5324975b8cSThierry Reding		};
5424975b8cSThierry Reding	};
5524975b8cSThierry Reding
56301f12dcSThierry Reding	memory-controller@2c00000 {
57301f12dcSThierry Reding		status = "okay";
58301f12dcSThierry Reding	};
59301f12dcSThierry Reding
60df205de6SJoseph Lo	serial@3100000 {
61df205de6SJoseph Lo		status = "okay";
62df205de6SJoseph Lo	};
63df205de6SJoseph Lo
64a4c7aab2SThierry Reding	i2c@3160000 {
65a4c7aab2SThierry Reding		status = "okay";
66b64994d1SThierry Reding
67b64994d1SThierry Reding		power-monitor@40 {
68b64994d1SThierry Reding			compatible = "ti,ina3221";
69b64994d1SThierry Reding			reg = <0x40>;
70b64994d1SThierry Reding		};
71b64994d1SThierry Reding
72b64994d1SThierry Reding		power-monitor@41 {
73b64994d1SThierry Reding			compatible = "ti,ina3221";
74b64994d1SThierry Reding			reg = <0x41>;
75b64994d1SThierry Reding		};
76a4c7aab2SThierry Reding	};
77a4c7aab2SThierry Reding
78a4c7aab2SThierry Reding	i2c@3180000 {
79a4c7aab2SThierry Reding		status = "okay";
80a4c7aab2SThierry Reding	};
81a4c7aab2SThierry Reding
825bb88b7aSThierry Reding	ddc: i2c@3190000 {
83a4c7aab2SThierry Reding		status = "okay";
84a4c7aab2SThierry Reding	};
85a4c7aab2SThierry Reding
86a4c7aab2SThierry Reding	i2c@31c0000 {
87a4c7aab2SThierry Reding		status = "okay";
88a4c7aab2SThierry Reding	};
89a4c7aab2SThierry Reding
90a4c7aab2SThierry Reding	i2c@31e0000 {
91a4c7aab2SThierry Reding		status = "okay";
92a4c7aab2SThierry Reding	};
93a4c7aab2SThierry Reding
9480fdf7b4SThierry Reding	/* SDMMC1 (SD/MMC) */
9580fdf7b4SThierry Reding	sdhci@3400000 {
96caca0482SThierry Reding		cd-gpios = <&gpio TEGRA186_MAIN_GPIO(P, 5) GPIO_ACTIVE_LOW>;
97caca0482SThierry Reding		wp-gpios = <&gpio TEGRA186_MAIN_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
9880fdf7b4SThierry Reding
9980fdf7b4SThierry Reding		vqmmc-supply = <&vddio_sdmmc1>;
10080fdf7b4SThierry Reding	};
10180fdf7b4SThierry Reding
10280fdf7b4SThierry Reding	/* SDMMC3 (SDIO) */
10380fdf7b4SThierry Reding	sdhci@3440000 {
10480fdf7b4SThierry Reding		status = "okay";
10580fdf7b4SThierry Reding	};
10680fdf7b4SThierry Reding
10780fdf7b4SThierry Reding	/* SDMMC4 (eMMC) */
10880fdf7b4SThierry Reding	sdhci@3460000 {
10980fdf7b4SThierry Reding		status = "okay";
11080fdf7b4SThierry Reding		bus-width = <8>;
11180fdf7b4SThierry Reding		non-removable;
11280fdf7b4SThierry Reding
11380fdf7b4SThierry Reding		vqmmc-supply = <&vdd_1v8_ap>;
11480fdf7b4SThierry Reding		vmmc-supply = <&vdd_3v3_sys>;
11580fdf7b4SThierry Reding	};
11680fdf7b4SThierry Reding
117df205de6SJoseph Lo	hsp@3c00000 {
118df205de6SJoseph Lo		status = "okay";
119df205de6SJoseph Lo	};
120df205de6SJoseph Lo
121a4c7aab2SThierry Reding	i2c@c240000 {
122a4c7aab2SThierry Reding		status = "okay";
123a4c7aab2SThierry Reding	};
124a4c7aab2SThierry Reding
125a4c7aab2SThierry Reding	i2c@c250000 {
126a4c7aab2SThierry Reding		status = "okay";
127a4ff413bSThierry Reding
128a4ff413bSThierry Reding		/* module ID EEPROM */
129a4ff413bSThierry Reding		eeprom@50 {
130a4ff413bSThierry Reding			compatible = "atmel,24c02";
131a4ff413bSThierry Reding			reg = <0x50>;
132a4ff413bSThierry Reding
133a4ff413bSThierry Reding			address-bits = <8>;
134a4ff413bSThierry Reding			page-size = <8>;
135a4ff413bSThierry Reding			size = <256>;
136a4ff413bSThierry Reding			read-only;
137a4ff413bSThierry Reding		};
138a4c7aab2SThierry Reding	};
139a4c7aab2SThierry Reding
140127d8267SThierry Reding	rtc@c2a0000 {
141127d8267SThierry Reding		status = "okay";
142127d8267SThierry Reding	};
143127d8267SThierry Reding
14493dbb44cSThierry Reding	pmc@c360000 {
14593dbb44cSThierry Reding		nvidia,invert-interrupt;
14693dbb44cSThierry Reding	};
14793dbb44cSThierry Reding
1480dfde133SThierry Reding	cpus {
1490dfde133SThierry Reding		cpu@0 {
1500dfde133SThierry Reding			enable-method = "psci";
1510dfde133SThierry Reding		};
1520dfde133SThierry Reding
1530dfde133SThierry Reding		cpu@1 {
1540dfde133SThierry Reding			enable-method = "psci";
1550dfde133SThierry Reding		};
1560dfde133SThierry Reding
1570dfde133SThierry Reding		cpu@2 {
1580dfde133SThierry Reding			enable-method = "psci";
1590dfde133SThierry Reding		};
1600dfde133SThierry Reding
1610dfde133SThierry Reding		cpu@3 {
1620dfde133SThierry Reding			enable-method = "psci";
1630dfde133SThierry Reding		};
1640dfde133SThierry Reding
1650dfde133SThierry Reding		cpu@4 {
1660dfde133SThierry Reding			enable-method = "psci";
1670dfde133SThierry Reding		};
1680dfde133SThierry Reding
1690dfde133SThierry Reding		cpu@5 {
1700dfde133SThierry Reding			enable-method = "psci";
1710dfde133SThierry Reding		};
1720dfde133SThierry Reding	};
1730dfde133SThierry Reding
174df205de6SJoseph Lo	bpmp {
175a4c7aab2SThierry Reding		i2c {
176df205de6SJoseph Lo			status = "okay";
17702df3f03SThierry Reding
17802df3f03SThierry Reding			pmic: pmic@3c {
17902df3f03SThierry Reding				compatible = "maxim,max77620";
18002df3f03SThierry Reding				reg = <0x3c>;
18102df3f03SThierry Reding
18202df3f03SThierry Reding				interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
18302df3f03SThierry Reding				#interrupt-cells = <2>;
18402df3f03SThierry Reding				interrupt-controller;
18502df3f03SThierry Reding
18602df3f03SThierry Reding				#gpio-cells = <2>;
18702df3f03SThierry Reding				gpio-controller;
18802df3f03SThierry Reding
18902df3f03SThierry Reding				pinctrl-names = "default";
19002df3f03SThierry Reding				pinctrl-0 = <&max77620_default>;
19102df3f03SThierry Reding
19202df3f03SThierry Reding				max77620_default: pinmux {
19302df3f03SThierry Reding					gpio0 {
19402df3f03SThierry Reding						pins = "gpio0";
19502df3f03SThierry Reding						function = "gpio";
19602df3f03SThierry Reding					};
19702df3f03SThierry Reding
19802df3f03SThierry Reding					gpio1 {
19902df3f03SThierry Reding						pins = "gpio1";
20002df3f03SThierry Reding						function = "fps-out";
20102df3f03SThierry Reding						maxim,active-fps-source = <MAX77620_FPS_SRC_0>;
20202df3f03SThierry Reding					};
20302df3f03SThierry Reding
20402df3f03SThierry Reding					gpio2 {
20502df3f03SThierry Reding						pins = "gpio2";
20602df3f03SThierry Reding						function = "fps-out";
20702df3f03SThierry Reding						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
20802df3f03SThierry Reding					};
20902df3f03SThierry Reding
21002df3f03SThierry Reding					gpio3 {
21102df3f03SThierry Reding						pins = "gpio3";
21202df3f03SThierry Reding						function = "fps-out";
21302df3f03SThierry Reding						maxim,active-fps-source = <MAX77620_FPS_SRC_1>;
21402df3f03SThierry Reding					};
21502df3f03SThierry Reding
21602df3f03SThierry Reding					gpio4 {
21702df3f03SThierry Reding						pins = "gpio4";
21802df3f03SThierry Reding						function = "32k-out1";
21902df3f03SThierry Reding						drive-push-pull = <1>;
22002df3f03SThierry Reding					};
22102df3f03SThierry Reding
22202df3f03SThierry Reding					gpio5 {
22302df3f03SThierry Reding						pins = "gpio5";
22402df3f03SThierry Reding						function = "gpio";
22502df3f03SThierry Reding						drive-push-pull = <0>;
22602df3f03SThierry Reding					};
22702df3f03SThierry Reding
22802df3f03SThierry Reding					gpio6 {
22902df3f03SThierry Reding						pins = "gpio6";
23002df3f03SThierry Reding						function = "gpio";
23102df3f03SThierry Reding						drive-push-pull = <1>;
23202df3f03SThierry Reding					};
23302df3f03SThierry Reding
23402df3f03SThierry Reding					gpio7 {
23502df3f03SThierry Reding						pins = "gpio7";
23602df3f03SThierry Reding						function = "gpio";
23702df3f03SThierry Reding						drive-push-pull = <0>;
23802df3f03SThierry Reding					};
23902df3f03SThierry Reding				};
24002df3f03SThierry Reding
24102df3f03SThierry Reding				fps {
24202df3f03SThierry Reding					fps0 {
24302df3f03SThierry Reding						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
24402df3f03SThierry Reding						maxim,shutdown-fps-time-period-us = <640>;
24502df3f03SThierry Reding					};
24602df3f03SThierry Reding
24702df3f03SThierry Reding					fps1 {
24802df3f03SThierry Reding						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN1>;
24902df3f03SThierry Reding						maxim,shutdown-fps-time-period-us = <640>;
25002df3f03SThierry Reding					};
25102df3f03SThierry Reding
25202df3f03SThierry Reding					fps2 {
25302df3f03SThierry Reding						maxim,fps-event-source = <MAX77620_FPS_EVENT_SRC_EN0>;
25402df3f03SThierry Reding						maxim,shutdown-fps-time-period-us = <640>;
25502df3f03SThierry Reding					};
25602df3f03SThierry Reding				};
25702df3f03SThierry Reding
25802df3f03SThierry Reding				regulators {
25902df3f03SThierry Reding					in-sd0-supply = <&vdd_5v0_sys>;
26002df3f03SThierry Reding					in-sd1-supply = <&vdd_5v0_sys>;
26102df3f03SThierry Reding					in-sd2-supply = <&vdd_5v0_sys>;
26202df3f03SThierry Reding					in-sd3-supply = <&vdd_5v0_sys>;
26302df3f03SThierry Reding
26402df3f03SThierry Reding					in-ldo0-1-supply = <&vdd_5v0_sys>;
26502df3f03SThierry Reding					in-ldo2-supply = <&vdd_5v0_sys>;
26602df3f03SThierry Reding					in-ldo3-5-supply = <&vdd_5v0_sys>;
26702df3f03SThierry Reding					in-ldo4-6-supply = <&vdd_1v8>;
26802df3f03SThierry Reding					in-ldo7-8-supply = <&avdd_dsi_csi>;
26902df3f03SThierry Reding
27002df3f03SThierry Reding					sd0 {
27102df3f03SThierry Reding						regulator-name = "VDD_DDR_1V1_PMIC";
27202df3f03SThierry Reding						regulator-min-microvolt = <1100000>;
27302df3f03SThierry Reding						regulator-max-microvolt = <1100000>;
27402df3f03SThierry Reding						regulator-always-on;
27502df3f03SThierry Reding						regulator-boot-on;
27602df3f03SThierry Reding					};
27702df3f03SThierry Reding
27802df3f03SThierry Reding					avdd_dsi_csi: sd1 {
27902df3f03SThierry Reding						regulator-name = "AVDD_DSI_CSI_1V2";
28002df3f03SThierry Reding						regulator-min-microvolt = <1200000>;
28102df3f03SThierry Reding						regulator-max-microvolt = <1200000>;
28202df3f03SThierry Reding					};
28302df3f03SThierry Reding
28402df3f03SThierry Reding					vdd_1v8: sd2 {
28502df3f03SThierry Reding						regulator-name = "VDD_1V8";
28602df3f03SThierry Reding						regulator-min-microvolt = <1800000>;
28702df3f03SThierry Reding						regulator-max-microvolt = <1800000>;
28802df3f03SThierry Reding					};
28902df3f03SThierry Reding
29002df3f03SThierry Reding					vdd_3v3_sys: sd3 {
29102df3f03SThierry Reding						regulator-name = "VDD_3V3_SYS";
29202df3f03SThierry Reding						regulator-min-microvolt = <3300000>;
29302df3f03SThierry Reding						regulator-max-microvolt = <3300000>;
29402df3f03SThierry Reding					};
29502df3f03SThierry Reding
29672f8ae3fSThierry Reding					vdd_1v8_pll: ldo0 {
29702df3f03SThierry Reding						regulator-name = "VDD_1V8_AP_PLL";
29802df3f03SThierry Reding						regulator-min-microvolt = <1800000>;
29902df3f03SThierry Reding						regulator-max-microvolt = <1800000>;
30002df3f03SThierry Reding					};
30102df3f03SThierry Reding
30202df3f03SThierry Reding					ldo2 {
30302df3f03SThierry Reding						regulator-name = "VDDIO_3V3_AOHV";
30402df3f03SThierry Reding						regulator-min-microvolt = <3300000>;
30502df3f03SThierry Reding						regulator-max-microvolt = <3300000>;
30602df3f03SThierry Reding						regulator-always-on;
30702df3f03SThierry Reding						regulator-boot-on;
30802df3f03SThierry Reding					};
30902df3f03SThierry Reding
31002df3f03SThierry Reding					vddio_sdmmc1: ldo3 {
31102df3f03SThierry Reding						regulator-name = "VDDIO_SDMMC1_AP";
31202df3f03SThierry Reding						regulator-min-microvolt = <1800000>;
31302df3f03SThierry Reding						regulator-max-microvolt = <3300000>;
31402df3f03SThierry Reding					};
31502df3f03SThierry Reding
31602df3f03SThierry Reding					ldo4 {
31702df3f03SThierry Reding						regulator-name = "VDD_RTC";
31802df3f03SThierry Reding						regulator-min-microvolt = <1000000>;
31902df3f03SThierry Reding						regulator-max-microvolt = <1000000>;
32002df3f03SThierry Reding					};
32102df3f03SThierry Reding
32202df3f03SThierry Reding					vddio_sdmmc3: ldo5 {
32302df3f03SThierry Reding						regulator-name = "VDDIO_SDMMC3_AP";
32402df3f03SThierry Reding						regulator-min-microvolt = <2800000>;
32502df3f03SThierry Reding						regulator-max-microvolt = <2800000>;
32602df3f03SThierry Reding					};
32702df3f03SThierry Reding
32836328505SThierry Reding					vdd_hdmi_1v05: ldo7 {
32902df3f03SThierry Reding						regulator-name = "VDD_HDMI_1V05";
33002df3f03SThierry Reding						regulator-min-microvolt = <1050000>;
33102df3f03SThierry Reding						regulator-max-microvolt = <1050000>;
33202df3f03SThierry Reding					};
33302df3f03SThierry Reding
33402df3f03SThierry Reding					vdd_pex: ldo8 {
33502df3f03SThierry Reding						regulator-name = "VDD_PEX_1V05";
33602df3f03SThierry Reding						regulator-min-microvolt = <1050000>;
33702df3f03SThierry Reding						regulator-max-microvolt = <1050000>;
33802df3f03SThierry Reding					};
33902df3f03SThierry Reding				};
34002df3f03SThierry Reding			};
341df205de6SJoseph Lo		};
342a4c7aab2SThierry Reding	};
3430dfde133SThierry Reding
3440dfde133SThierry Reding	psci {
3450dfde133SThierry Reding		compatible = "arm,psci-1.0";
3460dfde133SThierry Reding		status = "okay";
3470dfde133SThierry Reding		method = "smc";
3480dfde133SThierry Reding	};
34902df3f03SThierry Reding
35002df3f03SThierry Reding	regulators {
35102df3f03SThierry Reding		compatible = "simple-bus";
35202df3f03SThierry Reding		#address-cells = <1>;
35302df3f03SThierry Reding		#size-cells = <0>;
35402df3f03SThierry Reding
35572f8ae3fSThierry Reding		gnd: regulator@0 {
35602df3f03SThierry Reding			compatible = "regulator-fixed";
35702df3f03SThierry Reding			reg = <0>;
35802df3f03SThierry Reding
35972f8ae3fSThierry Reding			regulator-name = "GND";
36072f8ae3fSThierry Reding			regulator-min-microvolt = <0>;
36172f8ae3fSThierry Reding			regulator-max-microvolt = <0>;
36272f8ae3fSThierry Reding			regulator-always-on;
36372f8ae3fSThierry Reding			regulator-boot-on;
36472f8ae3fSThierry Reding		};
36572f8ae3fSThierry Reding
36672f8ae3fSThierry Reding		vdd_5v0_sys: regulator@1 {
36772f8ae3fSThierry Reding			compatible = "regulator-fixed";
36872f8ae3fSThierry Reding			reg = <1>;
36972f8ae3fSThierry Reding
37002df3f03SThierry Reding			regulator-name = "VDD_5V0_SYS";
37102df3f03SThierry Reding			regulator-min-microvolt = <5000000>;
37202df3f03SThierry Reding			regulator-max-microvolt = <5000000>;
37302df3f03SThierry Reding			regulator-always-on;
37402df3f03SThierry Reding			regulator-boot-on;
37502df3f03SThierry Reding		};
37602df3f03SThierry Reding
37772f8ae3fSThierry Reding		vdd_1v8_ap: regulator@2 {
37802df3f03SThierry Reding			compatible = "regulator-fixed";
37972f8ae3fSThierry Reding			reg = <2>;
38002df3f03SThierry Reding
38102df3f03SThierry Reding			regulator-name = "VDD_1V8_AP";
38202df3f03SThierry Reding			regulator-min-microvolt = <1800000>;
38302df3f03SThierry Reding			regulator-max-microvolt = <1800000>;
38402df3f03SThierry Reding
38502df3f03SThierry Reding			gpio = <&pmic 1 GPIO_ACTIVE_HIGH>;
38602df3f03SThierry Reding			enable-active-high;
38702df3f03SThierry Reding
38802df3f03SThierry Reding			vin-supply = <&vdd_1v8>;
38902df3f03SThierry Reding		};
39002df3f03SThierry Reding	};
391df205de6SJoseph Lo};
392