xref: /linux/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts (revision 60a2f25de7b8b785baee2932db932ae9a5b8c86d)
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_usb: vcc5v0-usb-regulator {
117		compatible = "regulator-fixed";
118		regulator-name = "vcc5v0_usb";
119		regulator-always-on;
120		regulator-boot-on;
121		regulator-min-microvolt = <5000000>;
122		regulator-max-microvolt = <5000000>;
123		vin-supply = <&dc_12v>;
124	};
125
126	vddd_audio_1v6: vddd-audio-1v6-regulator {
127		compatible = "regulator-fixed";
128		regulator-name = "vddd_audio_1v6";
129		regulator-boot-on;
130		regulator-min-microvolt = <1600000>;
131		regulator-max-microvolt = <1600000>;
132		vin-supply = <&vcc5v0_usb>;
133	};
134};
135
136&combphy2_psu {
137	status = "okay";
138};
139
140&gmac0 {
141	status = "okay";
142};
143
144&i2c1 {
145	status = "okay";
146
147	eeprom@50 {
148		reg = <0x50>;
149		compatible = "atmel,24c01";
150		pagesize = <8>;
151		size = <128>;
152		vcc-supply = <&vcc3v3_baseboard>;
153	};
154};
155
156&i2c5 {
157	clock-frequency = <400000>;
158	status = "okay";
159
160	sgtl5000: codec@a {
161		compatible = "fsl,sgtl5000";
162		reg = <0x0a>;
163		clocks = <&sgtl5000_clk>;
164		#sound-dai-cells = <0>;
165		VDDA-supply = <&vcc3v3_low_noise>;
166		VDDIO-supply = <&vcc3v3_baseboard>;
167		VDDD-supply = <&vddd_audio_1v6>;
168	};
169};
170
171&i2c8 {
172	status = "okay";
173};
174
175&i2s3_2ch {
176	status = "okay";
177};
178
179&pcie30phy {
180	status = "okay";
181};
182
183&pcie3x4 {
184	vpcie3v3-supply = <&vcc3v3_baseboard>;
185	status = "okay";
186};
187
188&pinctrl {
189	haikou {
190		haikou_keys_pin: haikou-keys-pin {
191			rockchip,pins =
192				/* BATLOW# */
193				<3 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
194				/* SLP_BTN# */
195				<4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
196				/* WAKE# */
197				<3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
198				/* LID_BTN */
199				<3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
200		};
201	};
202};
203
204&sdmmc {
205	/* while the same pin, sdmmc_det does not detect card changes */
206	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
207	disable-wp;
208	pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>;
209	sd-uhs-sdr12;
210	sd-uhs-sdr25;
211	sd-uhs-sdr50;
212	sd-uhs-sdr104;
213	vmmc-supply = <&vcc3v3_baseboard>;
214	status = "okay";
215};
216
217&u2phy2 {
218	status = "okay";
219};
220
221&u2phy2_host {
222	status = "okay";
223};
224
225&u2phy3 {
226	status = "okay";
227};
228
229&u2phy3_host {
230	status = "okay";
231};
232
233&uart2 {
234	pinctrl-0 = <&uart2m2_xfer>;
235	status = "okay";
236};
237
238&uart5 {
239	rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
240	status = "okay";
241};
242
243/* host0 on Q7_USB_P2, lower usb3 port */
244&usb_host0_ehci {
245	status = "okay";
246};
247
248/* host0 on Q7_USB_P2, lower usb3 port */
249&usb_host0_ohci {
250	status = "okay";
251};
252
253/* host1 on Q7_USB_P3, usb2 port */
254&usb_host1_ehci {
255	status = "okay";
256};
257
258/* host1 on Q7_USB_P3, usb2 port */
259&usb_host1_ohci {
260	status = "okay";
261};
262
263/* host2 on Q7_USB_P2, lower usb3 port */
264&usb_host2_xhci {
265	status = "okay";
266};
267