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