1// SPDX-License-Identifier: GPL-2.0+ OR X11
2/*
3 * (C) Copyright 2016 Rockchip Electronics Co., Ltd
4 */
5
6#include "rk3288.dtsi"
7
8/ {
9	memory {
10		reg = <0 0x80000000>;
11	};
12
13	ext_gmac: external-gmac-clock {
14		compatible = "fixed-clock";
15		#clock-cells = <0>;
16		clock-frequency = <125000000>;
17		clock-output-names = "ext_gmac";
18	};
19
20	keys: gpio-keys {
21		compatible = "gpio-keys";
22
23		button@0 {
24			gpio-key,wakeup = <1>;
25			gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
26			label = "GPIO Power";
27			linux,code = <116>;
28			pinctrl-names = "default";
29			pinctrl-0 = <&pwr_key>;
30		};
31	};
32
33	vcc_sys: vsys-regulator {
34		compatible = "regulator-fixed";
35		regulator-name = "vcc_sys";
36		regulator-min-microvolt = <5000000>;
37		regulator-max-microvolt = <5000000>;
38		regulator-always-on;
39		regulator-boot-on;
40	};
41
42	vcc_flash: flash-regulator {
43		compatible = "regulator-fixed";
44		regulator-name = "vcc_flash";
45		regulator-min-microvolt = <1800000>;
46		regulator-max-microvolt = <1800000>;
47		vin-supply = <&vcc_io>;
48	};
49
50	vcc_5v: usb-regulator {
51		compatible = "regulator-fixed";
52		regulator-name = "vcc_5v";
53		regulator-min-microvolt = <5000000>;
54		regulator-max-microvolt = <5000000>;
55		regulator-always-on;
56		regulator-boot-on;
57		vin-supply = <&vcc_sys>;
58	};
59
60	vcc_host_5v: usb-host-regulator {
61		compatible = "regulator-fixed";
62		enable-active-high;
63		gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
64		pinctrl-names = "default";
65		pinctrl-0 = <&host_vbus_drv>;
66		regulator-name = "vcc_host_5v";
67		regulator-min-microvolt = <5000000>;
68		regulator-max-microvolt = <5000000>;
69		regulator-always-on;
70		vin-supply = <&vcc_5v>;
71	};
72
73	vcc_otg_5v: usb-otg-regulator {
74		compatible = "regulator-fixed";
75		enable-active-high;
76		gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
77		pinctrl-names = "default";
78		pinctrl-0 = <&otg_vbus_drv>;
79		regulator-name = "vcc_otg_5v";
80		regulator-min-microvolt = <5000000>;
81		regulator-max-microvolt = <5000000>;
82		regulator-always-on;
83		vin-supply = <&vcc_5v>;
84	};
85
86	backlight: backlight {
87		compatible = "pwm-backlight";
88		power-supply = <&vcc_sys>;
89		enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
90		brightness-levels = <
91			  0   1   2   3   4   5   6   7
92			  8   9  10  11  12  13  14  15
93			 16  17  18  19  20  21  22  23
94			 24  25  26  27  28  29  30  31
95			 32  33  34  35  36  37  38  39
96			 40  41  42  43  44  45  46  47
97			 48  49  50  51  52  53  54  55
98			 56  57  58  59  60  61  62  63
99			 64  65  66  67  68  69  70  71
100			 72  73  74  75  76  77  78  79
101			 80  81  82  83  84  85  86  87
102			 88  89  90  91  92  93  94  95
103			 96  97  98  99 100 101 102 103
104			104 105 106 107 108 109 110 111
105			112 113 114 115 116 117 118 119
106			120 121 122 123 124 125 126 127
107			128 129 130 131 132 133 134 135
108			136 137 138 139 140 141 142 143
109			144 145 146 147 148 149 150 151
110			152 153 154 155 156 157 158 159
111			160 161 162 163 164 165 166 167
112			168 169 170 171 172 173 174 175
113			176 177 178 179 180 181 182 183
114			184 185 186 187 188 189 190 191
115			192 193 194 195 196 197 198 199
116			200 201 202 203 204 205 206 207
117			208 209 210 211 212 213 214 215
118			216 217 218 219 220 221 222 223
119			224 225 226 227 228 229 230 231
120			232 233 234 235 236 237 238 239
121			240 241 242 243 244 245 246 247
122			248 249 250 251 252 253 254 255>;
123		default-brightness-level = <50>;
124		pwms = <&pwm0 0 25000 0>;
125		pinctrl-names = "default";
126		pinctrl-0 = <&pwm0_pin>;
127		pwm-delay-us = <10000>;
128		status = "disabled";
129	};
130
131	panel: panel {
132		compatible = "simple-panel";
133		power-supply = <&vcc_io>;
134		backlight = <&backlight>;
135		enable-gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
136		status = "disabled";
137	};
138};
139
140&cpu0 {
141	cpu0-supply = <&vdd_cpu>;
142};
143
144&emmc {
145	broken-cd;
146	bus-width = <8>;
147	cap-mmc-highspeed;
148	disable-wp;
149	non-removable;
150	num-slots = <1>;
151	pinctrl-names = "default";
152	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
153	status = "okay";
154};
155
156&gmac {
157	phy-mode = "rgmii";
158	clock_in_out = "input";
159	snps,reset-gpio = <&gpio4 7 0>;
160	snps,reset-active-low;
161	snps,reset-delays-us = <0 10000 1000000>;
162	assigned-clocks = <&cru SCLK_MAC>;
163	assigned-clock-parents = <&ext_gmac>;
164	pinctrl-names = "default";
165	pinctrl-0 = <&rgmii_pins>;
166	tx_delay = <0x30>;
167	rx_delay = <0x10>;
168	status = "okay";
169};
170
171&hdmi {
172	ddc-i2c-bus = <&i2c5>;
173	status = "okay";
174};
175
176&i2c0 {
177	clock-frequency = <400000>;
178	status = "okay";
179
180	vdd_cpu: syr827@40 {
181		compatible = "silergy,syr827";
182		fcs,suspend-voltage-selector = <1>;
183		reg = <0x40>;
184		regulator-name = "vdd_cpu";
185		regulator-min-microvolt = <850000>;
186		regulator-max-microvolt = <1350000>;
187		regulator-always-on;
188		regulator-boot-on;
189		vin-supply = <&vcc_sys>;
190	};
191
192	vdd_gpu: syr828@41 {
193		compatible = "silergy,syr828";
194		fcs,suspend-voltage-selector = <1>;
195		reg = <0x41>;
196		regulator-name = "vdd_gpu";
197		regulator-min-microvolt = <850000>;
198		regulator-max-microvolt = <1350000>;
199		regulator-always-on;
200		vin-supply = <&vcc_sys>;
201	};
202
203	hym8563: hym8563@51 {
204		compatible = "haoyu,hym8563";
205		reg = <0x51>;
206		#clock-cells = <0>;
207		clock-frequency = <32768>;
208		clock-output-names = "xin32k";
209		interrupt-parent = <&gpio7>;
210		interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
211		pinctrl-names = "default";
212		pinctrl-0 = <&rtc_int>;
213	};
214
215	act8846: act8846@5a {
216		compatible = "active-semi,act8846";
217		reg = <0x5a>;
218		pinctrl-names = "default";
219		pinctrl-0 = <&pwr_hold>;
220		system-power-controller;
221
222		regulators {
223			vcc_ddr: REG1 {
224				regulator-name = "vcc_ddr";
225				regulator-min-microvolt = <1200000>;
226				regulator-max-microvolt = <1200000>;
227				regulator-always-on;
228			};
229
230			vcc_io: REG2 {
231				regulator-name = "vcc_io";
232				regulator-min-microvolt = <3300000>;
233				regulator-max-microvolt = <3300000>;
234				regulator-always-on;
235			};
236
237			vdd_log: REG3 {
238				regulator-name = "vdd_log";
239				regulator-min-microvolt = <1100000>;
240				regulator-max-microvolt = <1100000>;
241				regulator-always-on;
242			};
243
244			vcc_20: REG4 {
245				regulator-name = "vcc_20";
246				regulator-min-microvolt = <2000000>;
247				regulator-max-microvolt = <2000000>;
248				regulator-always-on;
249			};
250
251			vccio_sd: REG5 {
252				regulator-name = "vccio_sd";
253				regulator-min-microvolt = <3300000>;
254				regulator-max-microvolt = <3300000>;
255				regulator-always-on;
256			};
257
258			vdd10_lcd: REG6 {
259				regulator-name = "vdd10_lcd";
260				regulator-min-microvolt = <1000000>;
261				regulator-max-microvolt = <1000000>;
262				regulator-always-on;
263			};
264
265			vcca_codec: REG7 {
266				regulator-name = "vcca_codec";
267				regulator-min-microvolt = <3300000>;
268				regulator-max-microvolt = <3300000>;
269			};
270
271			vcc_tp: REG8 {
272				regulator-name = "vcca_33";
273				regulator-min-microvolt = <3300000>;
274				regulator-max-microvolt = <3300000>;
275			};
276
277			vccio_pmu: REG9 {
278				regulator-name = "vccio_pmu";
279				regulator-min-microvolt = <3300000>;
280				regulator-max-microvolt = <3300000>;
281			};
282
283			vdd_10: REG10 {
284				regulator-name = "vdd_10";
285				regulator-min-microvolt = <1000000>;
286				regulator-max-microvolt = <1000000>;
287				regulator-always-on;
288			};
289
290			vcc_18: REG11 {
291				regulator-name = "vcc_18";
292				regulator-min-microvolt = <1800000>;
293				regulator-max-microvolt = <1800000>;
294				regulator-always-on;
295			};
296
297			vcc18_lcd: REG12 {
298				regulator-name = "vcc18_lcd";
299				regulator-min-microvolt = <1800000>;
300				regulator-max-microvolt = <1800000>;
301				regulator-always-on;
302			};
303		};
304	};
305};
306
307&i2c1 {
308	status = "okay";
309};
310
311&i2c2 {
312	status = "okay";
313};
314
315&i2c4 {
316	status = "okay";
317};
318
319&i2c5 {
320	status = "okay";
321};
322
323&pinctrl {
324	pcfg_output_high: pcfg-output-high {
325		output-high;
326	};
327
328	pcfg_output_low: pcfg-output-low {
329		output-low;
330	};
331
332	act8846 {
333		pwr_hold: pwr-hold {
334			rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_output_high>;
335		};
336	};
337
338	hym8563 {
339		rtc_int: rtc-int {
340			rockchip,pins = <0 4 RK_FUNC_GPIO &pcfg_pull_up>;
341		};
342	};
343
344	keys {
345		pwr_key: pwr-key {
346			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
347		};
348	};
349
350	sdmmc {
351		sdmmc_pwr: sdmmc-pwr {
352			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
353		};
354	};
355
356	usb_host {
357		host_vbus_drv: host-vbus-drv {
358			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
359		};
360	};
361
362	usb_otg {
363		otg_vbus_drv: otg-vbus-drv {
364			rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
365		};
366	};
367};
368
369&pwm0 {
370	status = "okay";
371};
372
373&saradc {
374	vref-supply = <&vcc_18>;
375	status = "okay";
376};
377
378&sdio0 {
379	broken-cd;
380	bus-width = <4>;
381	disable-wp;
382	non-removable;
383	num-slots = <1>;
384	pinctrl-names = "default";
385	pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
386	vmmc-supply = <&vcc_18>;
387	status = "disabled";
388};
389
390&sdmmc {
391	bus-width = <4>;
392	cap-mmc-highspeed;
393	cap-sd-highspeed;
394	card-detect-delay = <200>;
395	disable-wp;
396	num-slots = <1>;
397	pinctrl-names = "default";
398	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
399	vmmc-supply = <&vccio_sd>;
400	status = "okay";
401};
402
403&spi0 {
404	pinctrl-names = "default";
405	pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>;
406	status = "okay";
407};
408
409&uart0 {
410	pinctrl-names = "default";
411	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
412	status = "okay";
413};
414
415&uart1 {
416	status = "okay";
417};
418
419&uart2 {
420	status = "okay";
421};
422
423&uart3 {
424	status = "okay";
425};
426
427&usb_host1 {
428	status = "okay";
429};
430
431&usb_otg {
432	status = "okay";
433};
434
435&vopb {
436	status = "okay";
437};
438
439&vopb_mmu {
440	status = "okay";
441};
442
443&vopl {
444	status = "okay";
445};
446
447&vopl_mmu {
448	status = "okay";
449};
450
451&mipi_dsi0 {
452	status = "disabled";
453	rockchip,panel = <&panel>;
454	display-timings {
455		timing0 {
456		bits-per-pixel = <24>;
457		clock-frequency = <160000000>;
458		hfront-porch = <120>;
459		hsync-len = <20>;
460		hback-porch = <21>;
461		hactive = <1200>;
462		vfront-porch = <21>;
463		vsync-len = <3>;
464		vback-porch = <18>;
465		vactive = <1920>;
466		hsync-active = <0>;
467		vsync-active = <0>;
468		de-active = <1>;
469		pixelclk-active = <0>;
470		};
471	};
472};
473
474&wdt {
475	status = "okay";
476};
477