blob: e4b7a0a4444bf9362b2a0c557641753b2b604379 [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001// 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
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200116 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
Tom Rini6bb92fc2024-05-20 09:54:58 -0600126 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
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200150&extcon_usb3 {
151 status = "okay";
152};
153
Tom Rini6bb92fc2024-05-20 09:54:58 -0600154&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 };
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200216
217 usb2 {
218 otg_vbus_drv: otg-vbus-drv {
219 rockchip,pins =
220 <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
221 };
222 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600223};
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
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200238&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
Tom Rini6bb92fc2024-05-20 09:54:58 -0600255&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 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600272 status = "okay";
273};
274
275&uart5 {
276 rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200277};
278
279&usbdp_phy0 {
Tom Rini6bb92fc2024-05-20 09:54:58 -0600280 status = "okay";
281};
282
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200283&usbdp_phy1 {
284 status = "okay";
285};
286
Heiko Stuebner94ae5b92024-06-10 15:13:35 +0200287/* host0 on Q7_USB_P2, upper usb3 port */
Tom Rini6bb92fc2024-05-20 09:54:58 -0600288&usb_host0_ehci {
289 status = "okay";
290};
291
Heiko Stuebner94ae5b92024-06-10 15:13:35 +0200292/* host0 on Q7_USB_P2, upper usb3 port */
Tom Rini6bb92fc2024-05-20 09:54:58 -0600293&usb_host0_ohci {
294 status = "okay";
295};
296
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200297/* 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
Tom Rini6bb92fc2024-05-20 09:54:58 -0600304/* 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
Heiko Stuebner219d90f2024-06-10 15:13:37 +0200314/* host1_xhci on Q7_USB_P0, lower usb3 port */
315&usb_host1_xhci {
316 dr_mode = "host";
317 status = "okay";
318};
319
Heiko Stuebner94ae5b92024-06-10 15:13:35 +0200320/* host2 on Q7_USB_P2, upper usb3 port */
Tom Rini6bb92fc2024-05-20 09:54:58 -0600321&usb_host2_xhci {
322 status = "okay";
323};