1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
4 */
5
6/dts-v1/;
7#include "rk3399-puma.dtsi"
8
9/ {
10	model = "Theobroma Systems RK3399-Q7 SoM";
11	compatible = "tsd,rk3399-puma-haikou", "rockchip,rk3399";
12
13	chosen {
14		stdout-path = "serial0:115200n8";
15	};
16
17	leds {
18		pinctrl-0 = <&led_pin_module>, <&led_sd_haikou>;
19
20		sd-card-led {
21			label = "sd_card_led";
22			gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
23			linux,default-trigger = "mmc0";
24		};
25	};
26
27	i2s0-sound {
28		compatible = "simple-audio-card";
29		simple-audio-card,format = "i2s";
30		simple-audio-card,name = "Haikou,I2S-codec";
31		simple-audio-card,mclk-fs = <512>;
32
33		simple-audio-card,codec {
34			clocks = <&sgtl5000_clk>;
35			sound-dai = <&sgtl5000>;
36		};
37
38		simple-audio-card,cpu {
39			bitclock-master;
40			frame-master;
41			sound-dai = <&i2s0>;
42		};
43	};
44
45	sgtl5000_clk: sgtl5000-oscillator  {
46			compatible = "fixed-clock";
47			#clock-cells = <0>;
48			clock-frequency  = <24576000>;
49	};
50
51	dc_12v: dc-12v {
52		compatible = "regulator-fixed";
53		regulator-name = "dc_12v";
54		regulator-always-on;
55		regulator-boot-on;
56		regulator-min-microvolt = <12000000>;
57		regulator-max-microvolt = <12000000>;
58	};
59
60	vcc3v3_baseboard: vcc3v3-baseboard {
61		compatible = "regulator-fixed";
62		regulator-name = "vcc3v3_baseboard";
63		regulator-always-on;
64		regulator-boot-on;
65		regulator-min-microvolt = <3300000>;
66		regulator-max-microvolt = <3300000>;
67		vin-supply = <&dc_12v>;
68	};
69
70	vcc5v0_baseboard: vcc5v0-baseboard {
71		compatible = "regulator-fixed";
72		regulator-name = "vcc5v0_baseboard";
73		regulator-always-on;
74		regulator-boot-on;
75		regulator-min-microvolt = <5000000>;
76		regulator-max-microvolt = <5000000>;
77		vin-supply = <&dc_12v>;
78	};
79
80	vcc5v0_otg: vcc5v0-otg-regulator {
81		compatible = "regulator-fixed";
82		enable-active-high;
83		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
84		pinctrl-names = "default";
85		pinctrl-0 = <&otg_vbus_drv>;
86		regulator-name = "vcc5v0_otg";
87		regulator-always-on;
88	};
89
90	vdda_codec: vdda-codec {
91		compatible = "regulator-fixed";
92		regulator-name = "vdda_codec";
93		regulator-boot-on;
94		regulator-min-microvolt = <3300000>;
95		regulator-max-microvolt = <3300000>;
96		vin-supply = <&vcc5v0_baseboard>;
97	};
98
99	vddd_codec: vddd-codec {
100		compatible = "regulator-fixed";
101		regulator-name = "vddd_codec";
102		regulator-boot-on;
103		regulator-min-microvolt = <1600000>;
104		regulator-max-microvolt = <1600000>;
105		vin-supply = <&vcc5v0_baseboard>;
106	};
107};
108
109&hdmi {
110	ddc-i2c-bus = <&i2c3>;
111	status = "okay";
112};
113
114&i2c1 {
115	status = "okay";
116	clock-frequency = <400000>;
117};
118
119&i2c2 {
120	status = "okay";
121	clock-frequency = <400000>;
122};
123
124&i2c3 {
125	i2c-scl-rising-time-ns = <450>;
126	i2c-scl-falling-time-ns = <15>;
127	status = "okay";
128};
129
130&i2c4 {
131	status = "okay";
132	clock-frequency = <400000>;
133
134	sgtl5000: codec@a {
135		compatible = "fsl,sgtl5000";
136		reg = <0x0a>;
137		clocks = <&sgtl5000_clk>;
138		#sound-dai-cells = <0>;
139		VDDA-supply = <&vdda_codec>;
140		VDDIO-supply = <&vdda_codec>;
141		VDDD-supply = <&vddd_codec>;
142		status = "okay";
143	};
144};
145
146&i2c6 {
147	status = "okay";
148	clock-frequency = <400000>;
149};
150
151&pcie_phy {
152	status = "okay";
153};
154
155&pcie0 {
156	ep-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
157	num-lanes = <4>;
158	pinctrl-names = "default";
159	pinctrl-0 = <&pcie_clkreqn_cpm>;
160	status = "okay";
161};
162
163&pinctrl {
164	pinctrl-names = "default";
165	pinctrl-0 = <&haikou_pin_hog>;
166
167	hog {
168		haikou_pin_hog: haikou-pin-hog {
169			rockchip,pins =
170			  /* LID_BTN */
171			  <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
172			  /* BATLOW# */
173			  <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
174			  /* SLP_BTN# */
175			  <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
176			  /* BIOS_DISABLE# */
177			  <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
178		};
179	};
180
181	leds {
182		led_sd_haikou: led-sd-gpio {
183			rockchip,pins =
184			  <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
185		};
186	};
187
188	usb2 {
189		otg_vbus_drv: otg-vbus-drv {
190			rockchip,pins =
191			  <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
192		};
193	};
194};
195
196&pwm0 {
197	status = "okay";
198};
199
200&sdmmc {
201	bus-width = <4>;
202	cap-mmc-highspeed;
203	cap-sd-highspeed;
204	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
205	disable-wp;
206	max-frequency = <150000000>;
207	pinctrl-names = "default";
208	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
209	vmmc-supply = <&vcc3v3_baseboard>;
210	status = "okay";
211};
212
213&spi5 {
214	status = "okay";
215};
216
217&tcphy0 {
218	status = "okay";
219};
220
221&u2phy0 {
222	status = "okay";
223};
224
225&usbdrd3_0 {
226	status = "okay";
227};
228
229&usbdrd_dwc3_0 {
230	dr_mode = "otg";
231	status = "okay";
232};
233
234&u2phy0_host {
235	phy-supply = <&vcc5v0_otg>;
236	status = "okay";
237};
238
239&uart0 {
240	pinctrl-names = "default";
241	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
242	status = "okay";
243};
244
245&uart2 {
246	status = "okay";
247};
248
249&usb_host0_ehci {
250	status = "okay";
251};
252
253&usb_host0_ohci {
254	status = "okay";
255};
256
257&vopb {
258	status = "okay";
259};
260
261&vopb_mmu {
262	status = "okay";
263};
264
265&vopl {
266	status = "okay";
267};
268
269&vopl_mmu {
270	status = "okay";
271};
272