1// SPDX-License-Identifier: GPL-2.0
2
3#include <dt-bindings/sound/rt5640.h>
4
5/ {
6	compatible = "nvidia,p3740-0002";
7
8	bus@0 {
9		aconnect@2900000 {
10			ahub@2900800 {
11				i2s@2901300 {
12					ports {
13						port@1 {
14							endpoint {
15								dai-format = "i2s";
16								remote-endpoint = <&rt5640_ep>;
17							};
18						};
19					};
20				};
21
22				i2s@2901500 {
23					ports {
24						port@1 {
25							endpoint {
26								bitclock-master;
27								frame-master;
28							};
29						};
30					};
31				};
32			};
33		};
34
35		i2c@31c0000 {
36			rt5640: audio-codec@1c {
37				compatible = "realtek,rt5640";
38				reg = <0x1c>;
39				interrupt-parent = <&gpio>;
40				interrupts = <TEGRA234_MAIN_GPIO(F, 3) GPIO_ACTIVE_HIGH>;
41				clocks = <&bpmp TEGRA234_CLK_AUD_MCLK>;
42				clock-names = "mclk";
43
44				realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_NONE>;
45				realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_NONE>;
46				realtek,jack-detect-source = <RT5640_JD_SRC_HDA_HEADER>;
47
48				sound-name-prefix = "CVB-RT";
49
50				port {
51					rt5640_ep: endpoint {
52						remote-endpoint = <&i2s4_dap>;
53						mclk-fs = <256>;
54					};
55				};
56			};
57
58			/* carrier board ID EEPROM */
59			eeprom@55 {
60				compatible = "atmel,24c02";
61				reg = <0x55>;
62
63				label = "system";
64				vcc-supply = <&vdd_1v8_ls>;
65				address-width = <8>;
66				pagesize = <8>;
67				size = <256>;
68				read-only;
69			};
70		};
71
72		padctl@3520000 {
73			vclamp-usb-supply = <&vdd_1v8_ao>;
74			avdd-usb-supply = <&vdd_3v3_ao>;
75			status = "okay";
76
77			pads {
78				usb2 {
79					lanes {
80						usb2-0 {
81							nvidia,function = "xusb";
82							status = "okay";
83						};
84
85						usb2-1 {
86							nvidia,function = "xusb";
87							status = "okay";
88						};
89
90						usb2-2 {
91							nvidia,function = "xusb";
92							status = "okay";
93						};
94
95						usb2-3 {
96							nvidia,function = "xusb";
97							status = "okay";
98						};
99					};
100				};
101
102				usb3 {
103					lanes {
104						usb3-0 {
105							nvidia,function = "xusb";
106							status = "okay";
107						};
108
109						usb3-1 {
110							nvidia,function = "xusb";
111							status = "okay";
112						};
113
114						usb3-2 {
115							nvidia,function = "xusb";
116							status = "okay";
117						};
118					};
119				};
120			};
121
122			ports {
123				usb2-0 {
124					mode = "otg";
125					usb-role-switch;
126					status = "okay";
127					vbus-supply = <&vdd_5v0_sys>;
128				};
129
130				usb2-1 {
131					mode = "host";
132					status = "okay";
133					vbus-supply = <&vdd_5v0_sys>;
134				};
135
136				usb2-2 {
137					mode = "host";
138					status = "okay";
139					vbus-supply = <&vdd_5v0_sys>;
140				};
141
142				usb2-3 {
143					mode = "host";
144					status = "okay";
145					vbus-supply = <&vdd_5v0_sys>;
146				};
147
148				usb3-0 {
149					nvidia,usb2-companion = <2>;
150					status = "okay";
151				};
152
153				usb3-1 {
154					nvidia,usb2-companion = <0>;
155					status = "okay";
156				};
157
158				usb3-2 {
159					nvidia,usb2-companion = <1>;
160					status = "okay";
161				};
162			};
163		};
164
165		usb@3550000 {
166			status = "okay";
167
168			phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
169				<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>;
170			phy-names = "usb2-0", "usb3-0";
171		};
172
173		usb@3610000 {
174			status = "okay";
175
176			phys =	<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>,
177				<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>,
178				<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>,
179				<&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-3}>,
180				<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>,
181				<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>,
182				<&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>;
183			phy-names = "usb2-0", "usb2-1", "usb2-2", "usb2-3",
184				"usb3-0", "usb3-1", "usb3-2";
185		};
186	};
187
188	vdd_3v3_dp: regulator-vdd-3v3-dp {
189				compatible = "regulator-fixed";
190				regulator-name = "VDD_3V3_DP";
191				regulator-min-microvolt = <3300000>;
192				regulator-max-microvolt = <3300000>;
193				vin-supply = <&vdd_3v3_sys>;
194				gpio = <&gpio TEGRA234_MAIN_GPIO(H, 6) 0>;
195				enable-active-high;
196				regulator-always-on;
197	};
198
199	vdd_3v3_sys: regulator-vdd-3v3-sys {
200				compatible = "regulator-fixed";
201				regulator-name = "VDD_3V3_SYS";
202				regulator-min-microvolt = <3300000>;
203				regulator-max-microvolt = <3300000>;
204	};
205
206	vdd_3v3_wifi: regulator-vdd-3v3-wifi {
207				compatible = "regulator-fixed";
208				regulator-name = "VDD_3V3_WIFI";
209				regulator-min-microvolt = <3300000>;
210				regulator-max-microvolt = <3300000>;
211				gpio = <&gpio TEGRA234_MAIN_GPIO(G, 3) GPIO_ACTIVE_HIGH>;
212				regulator-boot-on;
213				enable-active-high;
214	};
215};
216