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