1*e63472edSThierry Reding// SPDX-License-Identifier: GPL-2.0
2*e63472edSThierry Reding
3*e63472edSThierry Reding/ {
4*e63472edSThierry Reding	compatible = "nvidia,p3768-0000";
5*e63472edSThierry Reding
6*e63472edSThierry Reding	aliases {
7*e63472edSThierry Reding		serial0 = &tcu;
8*e63472edSThierry Reding	};
9*e63472edSThierry Reding
10*e63472edSThierry Reding	chosen {
11*e63472edSThierry Reding		stdout-path = "serial0:115200n8";
12*e63472edSThierry Reding	};
13*e63472edSThierry Reding
14*e63472edSThierry Reding	bus@0 {
15*e63472edSThierry Reding		i2c@3160000 {
16*e63472edSThierry Reding			status = "okay";
17*e63472edSThierry Reding
18*e63472edSThierry Reding			eeprom@57 {
19*e63472edSThierry Reding				compatible = "atmel,24c02";
20*e63472edSThierry Reding				reg = <0x57>;
21*e63472edSThierry Reding
22*e63472edSThierry Reding				label = "system";
23*e63472edSThierry Reding				vcc-supply = <&vdd_1v8_sys>;
24*e63472edSThierry Reding				address-width = <8>;
25*e63472edSThierry Reding				pagesize = <8>;
26*e63472edSThierry Reding				size = <256>;
27*e63472edSThierry Reding				read-only;
28*e63472edSThierry Reding			};
29*e63472edSThierry Reding		};
30*e63472edSThierry Reding
31*e63472edSThierry Reding		serial@31d0000 {
32*e63472edSThierry Reding			current-speed = <115200>;
33*e63472edSThierry Reding			status = "okay";
34*e63472edSThierry Reding		};
35*e63472edSThierry Reding
36*e63472edSThierry Reding		pwm@32a0000 {
37*e63472edSThierry Reding			assigned-clocks = <&bpmp TEGRA234_CLK_PWM3>;
38*e63472edSThierry Reding			assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLP_OUT0>;
39*e63472edSThierry Reding			status = "okay";
40*e63472edSThierry Reding		};
41*e63472edSThierry Reding
42*e63472edSThierry Reding		padctl@3520000 {
43*e63472edSThierry Reding			status = "okay";
44*e63472edSThierry Reding
45*e63472edSThierry Reding			pads {
46*e63472edSThierry Reding				usb2 {
47*e63472edSThierry Reding					lanes {
48*e63472edSThierry Reding						usb2-0 {
49*e63472edSThierry Reding							nvidia,function = "xusb";
50*e63472edSThierry Reding							status = "okay";
51*e63472edSThierry Reding						};
52*e63472edSThierry Reding
53*e63472edSThierry Reding						usb2-1 {
54*e63472edSThierry Reding							nvidia,function = "xusb";
55*e63472edSThierry Reding							status = "okay";
56*e63472edSThierry Reding						};
57*e63472edSThierry Reding
58*e63472edSThierry Reding						usb2-2 {
59*e63472edSThierry Reding							nvidia,function = "xusb";
60*e63472edSThierry Reding							status = "okay";
61*e63472edSThierry Reding						};
62*e63472edSThierry Reding					};
63*e63472edSThierry Reding				};
64*e63472edSThierry Reding
65*e63472edSThierry Reding				usb3 {
66*e63472edSThierry Reding					lanes {
67*e63472edSThierry Reding						usb3-0 {
68*e63472edSThierry Reding							nvidia,function = "xusb";
69*e63472edSThierry Reding							status = "okay";
70*e63472edSThierry Reding						};
71*e63472edSThierry Reding
72*e63472edSThierry Reding						usb3-1 {
73*e63472edSThierry Reding							nvidia,function = "xusb";
74*e63472edSThierry Reding							status = "okay";
75*e63472edSThierry Reding						};
76*e63472edSThierry Reding					};
77*e63472edSThierry Reding				};
78*e63472edSThierry Reding			};
79*e63472edSThierry Reding
80*e63472edSThierry Reding			ports {
81*e63472edSThierry Reding				/* recovery port */
82*e63472edSThierry Reding				usb2-0 {
83*e63472edSThierry Reding					mode = "otg";
84*e63472edSThierry Reding					vbus-supply = <&vdd_5v0_sys>;
85*e63472edSThierry Reding					status = "okay";
86*e63472edSThierry Reding					usb-role-switch;
87*e63472edSThierry Reding				};
88*e63472edSThierry Reding
89*e63472edSThierry Reding				/* hub */
90*e63472edSThierry Reding				usb2-1 {
91*e63472edSThierry Reding					mode = "host";
92*e63472edSThierry Reding					vbus-supply = <&vdd_1v1_hub>;
93*e63472edSThierry Reding					status = "okay";
94*e63472edSThierry Reding				};
95*e63472edSThierry Reding
96*e63472edSThierry Reding				/* M.2 Key-E */
97*e63472edSThierry Reding				usb2-2 {
98*e63472edSThierry Reding					mode = "host";
99*e63472edSThierry Reding					vbus-supply = <&vdd_5v0_sys>;
100*e63472edSThierry Reding					status = "okay";
101*e63472edSThierry Reding				};
102*e63472edSThierry Reding
103*e63472edSThierry Reding				/* hub */
104*e63472edSThierry Reding				usb3-0 {
105*e63472edSThierry Reding					nvidia,usb2-companion = <1>;
106*e63472edSThierry Reding					status = "okay";
107*e63472edSThierry Reding				};
108*e63472edSThierry Reding
109*e63472edSThierry Reding				/* J5 */
110*e63472edSThierry Reding				usb3-1 {
111*e63472edSThierry Reding					nvidia,usb2-companion = <0>;
112*e63472edSThierry Reding					status = "okay";
113*e63472edSThierry Reding				};
114*e63472edSThierry Reding			};
115*e63472edSThierry Reding		};
116*e63472edSThierry Reding
117*e63472edSThierry Reding		usb@3550000 {
118*e63472edSThierry Reding			status = "okay";
119*e63472edSThierry Reding
120*e63472edSThierry Reding			phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
121*e63472edSThierry Reding			       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
122*e63472edSThierry Reding			phy-names = "usb2-0", "usb3-1";
123*e63472edSThierry Reding		};
124*e63472edSThierry Reding
125*e63472edSThierry Reding		usb@3610000 {
126*e63472edSThierry Reding			status = "okay";
127*e63472edSThierry Reding
128*e63472edSThierry Reding			phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
129*e63472edSThierry Reding			       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
130*e63472edSThierry Reding			       <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
131*e63472edSThierry Reding			       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
132*e63472edSThierry Reding			       <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
133*e63472edSThierry Reding			phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0",
134*e63472edSThierry Reding				    "usb3-1";
135*e63472edSThierry Reding		};
136*e63472edSThierry Reding
137*e63472edSThierry Reding		/* C1 - M.2 Key-E */
138*e63472edSThierry Reding		pcie@14100000 {
139*e63472edSThierry Reding			status = "okay";
140*e63472edSThierry Reding
141*e63472edSThierry Reding			vddio-pex-ctl-supply = <&vdd_1v8_ao>;
142*e63472edSThierry Reding
143*e63472edSThierry Reding			phys = <&p2u_hsio_3>;
144*e63472edSThierry Reding			phy-names = "p2u-0";
145*e63472edSThierry Reding		};
146*e63472edSThierry Reding
147*e63472edSThierry Reding		/* C4 - M.2 Key-M */
148*e63472edSThierry Reding		pcie@14160000 {
149*e63472edSThierry Reding			status = "okay";
150*e63472edSThierry Reding
151*e63472edSThierry Reding			vddio-pex-ctl-supply = <&vdd_1v8_ao>;
152*e63472edSThierry Reding
153*e63472edSThierry Reding			phys = <&p2u_hsio_4>, <&p2u_hsio_5>, <&p2u_hsio_6>,
154*e63472edSThierry Reding			       <&p2u_hsio_7>;
155*e63472edSThierry Reding			phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3";
156*e63472edSThierry Reding		};
157*e63472edSThierry Reding
158*e63472edSThierry Reding		/* C8 - Ethernet */
159*e63472edSThierry Reding		pcie@140a0000 {
160*e63472edSThierry Reding			status = "okay";
161*e63472edSThierry Reding
162*e63472edSThierry Reding			num-lanes = <2>;
163*e63472edSThierry Reding
164*e63472edSThierry Reding			phys = <&p2u_gbe_2>, <&p2u_gbe_3>;
165*e63472edSThierry Reding			phy-names = "p2u-0", "p2u-1";
166*e63472edSThierry Reding
167*e63472edSThierry Reding			vddio-pex-ctl-supply = <&vdd_1v8_ao>;
168*e63472edSThierry Reding			vpcie3v3-supply = <&vdd_3v3_pcie>;
169*e63472edSThierry Reding		};
170*e63472edSThierry Reding
171*e63472edSThierry Reding		/* C7 - M.2 Key-M */
172*e63472edSThierry Reding		pcie@141e0000 {
173*e63472edSThierry Reding			status = "okay";
174*e63472edSThierry Reding
175*e63472edSThierry Reding			vddio-pex-ctl-supply = <&vdd_1v8_ao>;
176*e63472edSThierry Reding
177*e63472edSThierry Reding			phys = <&p2u_gbe_0>, <&p2u_gbe_1>;
178*e63472edSThierry Reding			phy-names = "p2u-0", "p2u-1";
179*e63472edSThierry Reding		};
180*e63472edSThierry Reding	};
181*e63472edSThierry Reding
182*e63472edSThierry Reding	gpio-keys {
183*e63472edSThierry Reding		compatible = "gpio-keys";
184*e63472edSThierry Reding
185*e63472edSThierry Reding		key-force-recovery {
186*e63472edSThierry Reding			label = "Force Recovery";
187*e63472edSThierry Reding			gpios = <&gpio TEGRA234_MAIN_GPIO(G, 0) GPIO_ACTIVE_LOW>;
188*e63472edSThierry Reding			linux,input-type = <EV_KEY>;
189*e63472edSThierry Reding			linux,code = <BTN_1>;
190*e63472edSThierry Reding		};
191*e63472edSThierry Reding
192*e63472edSThierry Reding		key-power {
193*e63472edSThierry Reding			label = "Power";
194*e63472edSThierry Reding			gpios = <&gpio_aon TEGRA234_AON_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
195*e63472edSThierry Reding			linux,input-type = <EV_KEY>;
196*e63472edSThierry Reding			linux,code = <KEY_POWER>;
197*e63472edSThierry Reding			wakeup-event-action = <EV_ACT_ASSERTED>;
198*e63472edSThierry Reding			wakeup-source;
199*e63472edSThierry Reding		};
200*e63472edSThierry Reding
201*e63472edSThierry Reding		key-suspend {
202*e63472edSThierry Reding			label = "Suspend";
203*e63472edSThierry Reding			gpios = <&gpio TEGRA234_MAIN_GPIO(G, 2) GPIO_ACTIVE_LOW>;
204*e63472edSThierry Reding			linux,input-type = <EV_KEY>;
205*e63472edSThierry Reding			linux,code = <KEY_SLEEP>;
206*e63472edSThierry Reding		};
207*e63472edSThierry Reding	};
208*e63472edSThierry Reding
209*e63472edSThierry Reding	fan: pwm-fan {
210*e63472edSThierry Reding		compatible = "pwm-fan";
211*e63472edSThierry Reding		pwms = <&pwm3 0 45334>;
212*e63472edSThierry Reding		cooling-levels = <0 95 178 255>;
213*e63472edSThierry Reding		#cooling-cells = <2>;
214*e63472edSThierry Reding	};
215*e63472edSThierry Reding
216*e63472edSThierry Reding	vdd_1v8_sys: regulator-vdd-1v8-sys {
217*e63472edSThierry Reding		compatible = "regulator-fixed";
218*e63472edSThierry Reding		regulator-name = "VDD_1V8_SYS";
219*e63472edSThierry Reding		regulator-min-microvolt = <1800000>;
220*e63472edSThierry Reding		regulator-max-microvolt = <1800000>;
221*e63472edSThierry Reding		regulator-always-on;
222*e63472edSThierry Reding	};
223*e63472edSThierry Reding
224*e63472edSThierry Reding	vdd_1v1_hub: regulator-vdd-1v1-hub {
225*e63472edSThierry Reding		compatible = "regulator-fixed";
226*e63472edSThierry Reding		regulator-name = "VDD_AV10_HUB";
227*e63472edSThierry Reding		regulator-min-microvolt = <1100000>;
228*e63472edSThierry Reding		regulator-max-microvolt = <1100000>;
229*e63472edSThierry Reding		vin-supply = <&vdd_5v0_sys>;
230*e63472edSThierry Reding		regulator-always-on;
231*e63472edSThierry Reding	};
232*e63472edSThierry Reding
233*e63472edSThierry Reding	vdd_3v3_pcie: regulator-vdd-3v3-pcie {
234*e63472edSThierry Reding		compatible = "regulator-fixed";
235*e63472edSThierry Reding		regulator-name = "VDD_3V3_PCIE";
236*e63472edSThierry Reding		regulator-min-microvolt = <3300000>;
237*e63472edSThierry Reding		regulator-max-microvolt = <3300000>;
238*e63472edSThierry Reding		gpio = <&gpio_aon TEGRA234_AON_GPIO(AA, 5) GPIO_ACTIVE_HIGH>;
239*e63472edSThierry Reding		enable-active-high;
240*e63472edSThierry Reding	};
241*e63472edSThierry Reding
242*e63472edSThierry Reding	serial {
243*e63472edSThierry Reding		status = "okay";
244*e63472edSThierry Reding	};
245*e63472edSThierry Reding};
246