xref: /linux/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts (revision 89aa02edaa30e4327ebc8fca9b80795bbfd4ce9b)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH
4 */
5
6/dts-v1/;
7#include <dt-bindings/input/input.h>
8#include "rk3588-tiger.dtsi"
9
10/ {
11	model = "Theobroma Systems RK3588-Q7 SoM on Haikou devkit";
12	compatible = "tsd,rk3588-tiger-haikou", "tsd,rk3588-tiger", "rockchip,rk3588";
13
14	aliases {
15		ethernet0 = &gmac0;
16		mmc1 = &sdmmc;
17	};
18
19	chosen {
20		stdout-path = "serial2:115200n8";
21	};
22
23	dc_12v: dc-12v-regulator {
24		compatible = "regulator-fixed";
25		regulator-name = "dc_12v";
26		regulator-always-on;
27		regulator-boot-on;
28		regulator-min-microvolt = <12000000>;
29		regulator-max-microvolt = <12000000>;
30	};
31
32	gpio-keys {
33		compatible = "gpio-keys";
34		pinctrl-names = "default";
35		pinctrl-0 = <&haikou_keys_pin>;
36
37		button-batlow-n {
38			label = "BATLOW#";
39			linux,code = <KEY_BATTERY>;
40			gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_LOW>;
41		};
42
43		button-slp-btn-n {
44			label = "SLP_BTN#";
45			linux,code = <KEY_SLEEP>;
46			gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
47		};
48
49		button-wake-n {
50			label = "WAKE#";
51			linux,code = <KEY_WAKEUP>;
52			gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_LOW>;
53			wakeup-source;
54		};
55
56		switch-lid-btn-n {
57			label = "LID_BTN#";
58			linux,code = <SW_LID>;
59			linux,input-type = <EV_SW>;
60			gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>;
61		};
62	};
63
64	i2s3-sound {
65		compatible = "simple-audio-card";
66		simple-audio-card,format = "i2s";
67		simple-audio-card,name = "Haikou,I2S-codec";
68		simple-audio-card,mclk-fs = <512>;
69		simple-audio-card,frame-master = <&sgtl5000_codec>;
70		simple-audio-card,bitclock-master = <&sgtl5000_codec>;
71
72		sgtl5000_codec: simple-audio-card,codec {
73			sound-dai = <&sgtl5000>;
74		};
75
76		simple-audio-card,cpu {
77			sound-dai = <&i2s3_2ch>;
78		};
79	};
80
81	sgtl5000_clk: sgtl5000-oscillator  {
82		compatible = "fixed-clock";
83		#clock-cells = <0>;
84		clock-frequency = <24576000>;
85	};
86
87	vcc3v3_baseboard: vcc3v3-baseboard-regulator {
88		compatible = "regulator-fixed";
89		regulator-name = "vcc3v3_baseboard";
90		regulator-always-on;
91		regulator-boot-on;
92		regulator-min-microvolt = <3300000>;
93		regulator-max-microvolt = <3300000>;
94		vin-supply = <&dc_12v>;
95	};
96
97	vcc3v3_low_noise: vcc3v3-low-noise-regulator {
98		compatible = "regulator-fixed";
99		regulator-name = "vcc3v3_low_noise";
100		regulator-boot-on;
101		regulator-min-microvolt = <3300000>;
102		regulator-max-microvolt = <3300000>;
103		vin-supply = <&vcc5v0_usb>;
104	};
105
106	vcc5v0_baseboard: vcc5v0-baseboard-regulator {
107		compatible = "regulator-fixed";
108		regulator-name = "vcc5v0_baseboard";
109		regulator-always-on;
110		regulator-boot-on;
111		regulator-min-microvolt = <5000000>;
112		regulator-max-microvolt = <5000000>;
113		vin-supply = <&dc_12v>;
114	};
115
116	vcc5v0_otg: vcc5v0-otg-regulator {
117		compatible = "regulator-fixed";
118		enable-active-high;
119		gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
120		pinctrl-names = "default";
121		pinctrl-0 = <&otg_vbus_drv>;
122		regulator-name = "vcc5v0_otg";
123		regulator-always-on;
124	};
125
126	vcc5v0_usb: vcc5v0-usb-regulator {
127		compatible = "regulator-fixed";
128		regulator-name = "vcc5v0_usb";
129		regulator-always-on;
130		regulator-boot-on;
131		regulator-min-microvolt = <5000000>;
132		regulator-max-microvolt = <5000000>;
133		vin-supply = <&dc_12v>;
134	};
135
136	vddd_audio_1v6: vddd-audio-1v6-regulator {
137		compatible = "regulator-fixed";
138		regulator-name = "vddd_audio_1v6";
139		regulator-boot-on;
140		regulator-min-microvolt = <1600000>;
141		regulator-max-microvolt = <1600000>;
142		vin-supply = <&vcc5v0_usb>;
143	};
144};
145
146&combphy2_psu {
147	status = "okay";
148};
149
150&extcon_usb3 {
151	status = "okay";
152};
153
154&gmac0 {
155	status = "okay";
156};
157
158&i2c1 {
159	status = "okay";
160
161	eeprom@50 {
162		reg = <0x50>;
163		compatible = "atmel,24c01";
164		pagesize = <8>;
165		size = <128>;
166		vcc-supply = <&vcc3v3_baseboard>;
167	};
168};
169
170&i2c5 {
171	clock-frequency = <400000>;
172	status = "okay";
173
174	sgtl5000: codec@a {
175		compatible = "fsl,sgtl5000";
176		reg = <0x0a>;
177		clocks = <&sgtl5000_clk>;
178		#sound-dai-cells = <0>;
179		VDDA-supply = <&vcc3v3_low_noise>;
180		VDDIO-supply = <&vcc3v3_baseboard>;
181		VDDD-supply = <&vddd_audio_1v6>;
182	};
183};
184
185&i2c8 {
186	status = "okay";
187};
188
189&i2s3_2ch {
190	status = "okay";
191};
192
193&pcie30phy {
194	status = "okay";
195};
196
197&pcie3x4 {
198	vpcie3v3-supply = <&vcc3v3_baseboard>;
199	status = "okay";
200};
201
202&pinctrl {
203	haikou {
204		haikou_keys_pin: haikou-keys-pin {
205			rockchip,pins =
206				/* BATLOW# */
207				<3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
208				/* SLP_BTN# */
209				<4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
210				/* WAKE# */
211				<3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
212				/* LID_BTN */
213				<3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
214		};
215	};
216
217	usb2 {
218		otg_vbus_drv: otg-vbus-drv {
219			rockchip,pins =
220			  <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
221		};
222	};
223};
224
225&sdmmc {
226	/* while the same pin, sdmmc_det does not detect card changes */
227	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
228	disable-wp;
229	pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>;
230	sd-uhs-sdr12;
231	sd-uhs-sdr25;
232	sd-uhs-sdr50;
233	sd-uhs-sdr104;
234	vmmc-supply = <&vcc3v3_baseboard>;
235	status = "okay";
236};
237
238&u2phy0 {
239	status = "okay";
240};
241
242&u2phy0_otg {
243	phy-supply = <&vcc5v0_otg>;
244	status = "okay";
245};
246
247&u2phy1 {
248	status = "okay";
249};
250
251&u2phy1_otg {
252	status = "okay";
253};
254
255&u2phy2 {
256	status = "okay";
257};
258
259&u2phy2_host {
260	status = "okay";
261};
262
263&u2phy3 {
264	status = "okay";
265};
266
267&u2phy3_host {
268	status = "okay";
269};
270
271&uart2 {
272	status = "okay";
273};
274
275&uart5 {
276	rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
277};
278
279&usbdp_phy0 {
280	status = "okay";
281};
282
283&usbdp_phy1 {
284	status = "okay";
285};
286
287/* host0 on Q7_USB_P2, upper usb3 port */
288&usb_host0_ehci {
289	status = "okay";
290};
291
292/* host0 on Q7_USB_P2, upper usb3 port */
293&usb_host0_ohci {
294	status = "okay";
295};
296
297/* host0_xhci on Q7_USB_P1, usb3-otg port */
298&usb_host0_xhci {
299	dr_mode = "otg";
300	extcon = <&extcon_usb3>;
301	status = "okay";
302};
303
304/* host1 on Q7_USB_P3, usb2 port */
305&usb_host1_ehci {
306	status = "okay";
307};
308
309/* host1 on Q7_USB_P3, usb2 port */
310&usb_host1_ohci {
311	status = "okay";
312};
313
314/* host1_xhci on Q7_USB_P0, lower usb3 port */
315&usb_host1_xhci {
316	dr_mode = "host";
317	status = "okay";
318};
319
320/* host2 on Q7_USB_P2, upper usb3 port */
321&usb_host2_xhci {
322	status = "okay";
323};
324