]>
Commit | Line | Data |
---|---|---|
53633a89 TR |
1 | // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
2 | ||
3 | /* | |
4 | * Author: Piotr Oniszczuk [email protected] | |
5 | * Based on Quartz64 DT by: Peter Geis [email protected] | |
6 | */ | |
7 | ||
8 | /dts-v1/; | |
9 | ||
10 | #include <dt-bindings/gpio/gpio.h> | |
11 | #include <dt-bindings/leds/common.h> | |
12 | #include <dt-bindings/pinctrl/rockchip.h> | |
13 | #include <dt-bindings/soc/rockchip,vop2.h> | |
14 | #include "rk3566.dtsi" | |
15 | ||
16 | / { | |
17 | model = "Rockchip RK3566 BOX DEMO Board"; | |
18 | compatible = "rockchip,rk3566-box-demo", "rockchip,rk3566"; | |
19 | ||
20 | aliases { | |
21 | ethernet0 = &gmac1; | |
22 | mmc0 = &sdmmc0; | |
23 | mmc1 = &sdmmc1; | |
24 | mmc2 = &sdhci; | |
25 | }; | |
26 | ||
27 | chosen: chosen { | |
28 | stdout-path = "serial2:1500000n8"; | |
29 | }; | |
30 | ||
31 | gmac1_clkin: external-gmac1-clock { | |
32 | compatible = "fixed-clock"; | |
33 | clock-frequency = <125000000>; | |
34 | clock-output-names = "gmac1_clkin"; | |
35 | #clock-cells = <0>; | |
36 | }; | |
37 | ||
38 | hdmi-con { | |
39 | compatible = "hdmi-connector"; | |
40 | type = "a"; | |
41 | ||
42 | port { | |
43 | hdmi_con_in: endpoint { | |
44 | remote-endpoint = <&hdmi_out_con>; | |
45 | }; | |
46 | }; | |
47 | }; | |
48 | ||
49 | ir-receiver { | |
50 | compatible = "gpio-ir-receiver"; | |
51 | gpios = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>; | |
52 | pinctrl-0 = <&ir_int>; | |
53 | linux,rc-map-name = "rc-beelink-gs1"; | |
54 | status = "okay"; | |
55 | }; | |
56 | ||
57 | leds { | |
58 | compatible = "gpio-leds"; | |
59 | ||
60 | led_work: led-0 { | |
61 | gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; | |
62 | function = LED_FUNCTION_HEARTBEAT; | |
63 | color = <LED_COLOR_ID_BLUE>; | |
64 | linux,default-trigger = "heartbeat"; | |
65 | pinctrl-names = "default"; | |
66 | pinctrl-0 = <&led_work_en>; | |
67 | }; | |
68 | }; | |
69 | ||
70 | sdio_pwrseq: sdio-pwrseq { | |
71 | status = "okay"; | |
72 | compatible = "mmc-pwrseq-simple"; | |
73 | clocks = <&pmucru CLK_RTC_32K>; | |
74 | clock-names = "ext_clock"; | |
75 | pinctrl-names = "default"; | |
76 | pinctrl-0 = <&wifi_enable_h &wifi_32k>; | |
77 | reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; | |
78 | }; | |
79 | ||
80 | spdif_dit: spdif-dit { | |
81 | compatible = "linux,spdif-dit"; | |
82 | #sound-dai-cells = <0>; | |
83 | }; | |
84 | ||
85 | spdif_sound: spdif-sound { | |
86 | compatible = "simple-audio-card"; | |
87 | simple-audio-card,name = "SPDIF"; | |
88 | ||
89 | simple-audio-card,cpu { | |
90 | sound-dai = <&spdif>; | |
91 | }; | |
92 | ||
93 | simple-audio-card,codec { | |
94 | sound-dai = <&spdif_dit>; | |
95 | }; | |
96 | }; | |
97 | ||
98 | vcc12v0_dcin: regulator-vcc12v0-dcin { | |
99 | compatible = "regulator-fixed"; | |
100 | regulator-name = "vcc12v0_dcin"; | |
101 | regulator-always-on; | |
102 | regulator-boot-on; | |
103 | regulator-min-microvolt = <12000000>; | |
104 | regulator-max-microvolt = <12000000>; | |
105 | }; | |
106 | ||
107 | vcc5v0_sys: regulator-vcc5v0-sys { | |
108 | compatible = "regulator-fixed"; | |
109 | regulator-name = "vcc5v0_sys"; | |
110 | regulator-always-on; | |
111 | regulator-boot-on; | |
112 | regulator-min-microvolt = <5000000>; | |
113 | regulator-max-microvolt = <5000000>; | |
114 | vin-supply = <&vcc12v0_dcin>; | |
115 | }; | |
116 | ||
117 | vcc3v3_sys: regulator-vcc3v3-sys { | |
118 | compatible = "regulator-fixed"; | |
119 | regulator-name = "vcc3v3_sys"; | |
120 | regulator-always-on; | |
121 | regulator-boot-on; | |
122 | regulator-min-microvolt = <3300000>; | |
123 | regulator-max-microvolt = <3300000>; | |
124 | vin-supply = <&vcc12v0_dcin>; | |
125 | }; | |
126 | ||
127 | vcc_3v3: regulator-vcc-3v3 { | |
128 | compatible = "regulator-fixed"; | |
129 | regulator-name = "vcc_3v3"; | |
130 | regulator-always-on; | |
131 | regulator-boot-on; | |
132 | regulator-min-microvolt = <3300000>; | |
133 | regulator-max-microvolt = <3300000>; | |
134 | vin-supply = <&vcc3v3_sys>; | |
135 | }; | |
136 | ||
137 | vcc5v0_usb_host: regulator-vcc5v0-usb-host { | |
138 | compatible = "regulator-fixed"; | |
139 | enable-active-high; | |
140 | gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; | |
141 | pinctrl-names = "default"; | |
142 | pinctrl-0 = <&vcc5v0_usb_host_en>; | |
143 | regulator-name = "vcc5v0_usb_host"; | |
144 | regulator-min-microvolt = <5000000>; | |
145 | regulator-max-microvolt = <5000000>; | |
146 | vin-supply = <&vcc5v0_sys>; | |
147 | }; | |
148 | ||
149 | vcc5v0_usb2_otg: regulator-vcc5v0-usb2-otg { | |
150 | compatible = "regulator-fixed"; | |
151 | enable-active-high; | |
152 | gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; | |
153 | pinctrl-names = "default"; | |
154 | pinctrl-0 = <&vcc5v0_usb2_otg_en>; | |
155 | regulator-name = "vcc5v0_usb_otg"; | |
156 | regulator-min-microvolt = <5000000>; | |
157 | regulator-max-microvolt = <5000000>; | |
158 | vin-supply = <&vcc5v0_sys>; | |
159 | }; | |
160 | ||
161 | vcca_1v8: regulator-vcca-1v8 { | |
162 | compatible = "regulator-fixed"; | |
163 | regulator-name = "vcca_1v8"; | |
164 | regulator-always-on; | |
165 | regulator-boot-on; | |
166 | regulator-min-microvolt = <1800000>; | |
167 | regulator-max-microvolt = <1800000>; | |
168 | vin-supply = <&vcc3v3_sys>; | |
169 | }; | |
170 | ||
171 | vdda_0v9: regulator-vdda-0v9 { | |
172 | compatible = "regulator-fixed"; | |
173 | regulator-name = "vdda_0v9"; | |
174 | regulator-always-on; | |
175 | regulator-boot-on; | |
176 | regulator-min-microvolt = <900000>; | |
177 | regulator-max-microvolt = <900000>; | |
178 | vin-supply = <&vcc3v3_sys>; | |
179 | }; | |
180 | ||
181 | vdd_fixed: regulator-vdd-fixed { | |
182 | compatible = "regulator-fixed"; | |
183 | regulator-name = "vdd_fixed"; | |
184 | regulator-min-microvolt = <950000>; | |
185 | regulator-max-microvolt = <950000>; | |
186 | regulator-always-on; | |
187 | regulator-boot-on; | |
188 | vin-supply = <&vcc5v0_sys>; | |
189 | }; | |
190 | ||
191 | vdd_cpu: regulator-vdd-cpu { | |
192 | compatible = "pwm-regulator"; | |
193 | pwms = <&pwm0 0 5000 1>; | |
194 | regulator-name = "vdd_cpu"; | |
195 | regulator-min-microvolt = <800000>; | |
196 | regulator-max-microvolt = <1200000>; | |
197 | regulator-always-on; | |
198 | regulator-boot-on; | |
199 | regulator-settling-time-up-us = <250>; | |
200 | pwm-supply = <&vcc5v0_sys>; | |
201 | }; | |
202 | ||
203 | vdd_logic: regulator-vdd-logic { | |
204 | compatible = "pwm-regulator"; | |
205 | pwms = <&pwm1 0 5000 1>; | |
206 | regulator-name = "vdd_logic"; | |
207 | regulator-min-microvolt = <800000>; | |
208 | regulator-max-microvolt = <1100000>; | |
209 | regulator-always-on; | |
210 | regulator-boot-on; | |
211 | regulator-settling-time-up-us = <250>; | |
212 | pwm-supply = <&vcc5v0_sys>; | |
213 | }; | |
214 | }; | |
215 | ||
216 | &combphy1 { | |
217 | status = "okay"; | |
218 | }; | |
219 | ||
220 | &combphy2 { | |
221 | status = "okay"; | |
222 | }; | |
223 | ||
224 | &cpu0 { | |
225 | cpu-supply = <&vdd_cpu>; | |
226 | }; | |
227 | ||
228 | &cpu1 { | |
229 | cpu-supply = <&vdd_cpu>; | |
230 | }; | |
231 | ||
232 | &cpu2 { | |
233 | cpu-supply = <&vdd_cpu>; | |
234 | }; | |
235 | ||
236 | &cpu3 { | |
237 | cpu-supply = <&vdd_cpu>; | |
238 | }; | |
239 | ||
240 | &gmac1 { | |
241 | assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; | |
242 | assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>; | |
243 | phy-mode = "rgmii"; | |
244 | clock_in_out = "input"; | |
245 | pinctrl-names = "default"; | |
246 | pinctrl-0 = <&gmac1m1_miim | |
247 | &gmac1m1_tx_bus2 | |
248 | &gmac1m1_rx_bus2 | |
249 | &gmac1m1_rgmii_clk | |
250 | &gmac1m1_rgmii_bus | |
251 | &gmac1m1_clkinout>; | |
252 | snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; | |
253 | snps,reset-active-low; | |
254 | /* Reset time is 20ms, 100ms for rtl8211f */ | |
255 | snps,reset-delays-us = <0 20000 100000>; | |
256 | ||
257 | tx_delay = <0x4f>; | |
258 | rx_delay = <0x2d>; | |
259 | phy-handle = <&rgmii_phy1>; | |
260 | status = "okay"; | |
261 | }; | |
262 | ||
263 | &mdio1 { | |
264 | rgmii_phy1: ethernet-phy@1 { | |
265 | compatible = "ethernet-phy-ieee802.3-c22"; | |
266 | reg = <0x1>; | |
267 | }; | |
268 | }; | |
269 | ||
270 | &hdmi { | |
271 | assigned-clocks = <&cru CLK_HDMI_CEC>; | |
272 | assigned-clock-rates = <32768>; | |
273 | avdd-0v9-supply = <&vdda_0v9>; | |
274 | avdd-1v8-supply = <&vcca_1v8>; | |
275 | status = "okay"; | |
276 | }; | |
277 | ||
278 | &hdmi_in { | |
279 | hdmi_in_vp0: endpoint { | |
280 | remote-endpoint = <&vp0_out_hdmi>; | |
281 | }; | |
282 | }; | |
283 | ||
284 | &hdmi_out { | |
285 | hdmi_out_con: endpoint { | |
286 | remote-endpoint = <&hdmi_con_in>; | |
287 | }; | |
288 | }; | |
289 | ||
290 | &hdmi_sound { | |
291 | status = "okay"; | |
292 | }; | |
293 | ||
294 | &gpu { | |
295 | status = "okay"; | |
296 | }; | |
297 | ||
298 | &i2s0_8ch { | |
299 | status = "okay"; | |
300 | }; | |
301 | ||
302 | &i2s1_8ch { | |
303 | rockchip,trcm-sync-tx-only; | |
304 | status = "okay"; | |
305 | }; | |
306 | ||
307 | &pinctrl { | |
308 | bt { | |
309 | bt_enable_h: bt-enable-h { | |
310 | rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; | |
311 | }; | |
312 | ||
313 | bt_host_wake_l: bt-host-wake-l { | |
314 | rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; | |
315 | }; | |
316 | ||
317 | bt_wake_l: bt-wake-l { | |
318 | rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; | |
319 | }; | |
320 | }; | |
321 | ||
322 | sdio-pwrseq { | |
323 | wifi_enable_h: wifi-enable-h { | |
324 | rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; | |
325 | }; | |
326 | ||
327 | wifi_host_wake_h: wifi-host-wake-l { | |
328 | rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; | |
329 | }; | |
330 | ||
331 | wifi_32k: wifi-32k { | |
332 | rockchip,pins = <2 RK_PC6 1 &pcfg_pull_none>; | |
333 | }; | |
334 | }; | |
335 | ||
336 | usb { | |
337 | vcc5v0_usb_host_en: vcc5v0_usb_host_en { | |
338 | rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; | |
339 | }; | |
340 | ||
341 | vcc5v0_usb2_otg_en: vcc5v0_usb2_otg_en { | |
342 | rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; | |
343 | }; | |
344 | ||
345 | }; | |
346 | ||
347 | ir { | |
348 | ir_int: ir-int { | |
349 | rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; | |
350 | }; | |
351 | }; | |
352 | ||
353 | led { | |
354 | led_work_en: led_work_en { | |
355 | rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; | |
356 | }; | |
357 | }; | |
358 | }; | |
359 | ||
360 | &pmu_io_domains { | |
361 | pmuio2-supply = <&vcc_3v3>; | |
362 | vccio1-supply = <&vcc_3v3>; | |
363 | vccio3-supply = <&vcc_3v3>; | |
364 | vccio4-supply = <&vcca_1v8>; | |
365 | vccio5-supply = <&vcc_3v3>; | |
366 | vccio6-supply = <&vcca_1v8>; | |
367 | vccio7-supply = <&vcc_3v3>; | |
368 | status = "okay"; | |
369 | }; | |
370 | ||
371 | &pwm0 { | |
372 | status = "okay"; | |
373 | }; | |
374 | ||
375 | &pwm1 { | |
376 | status = "okay"; | |
377 | }; | |
378 | ||
379 | &sdhci { | |
380 | bus-width = <8>; | |
381 | mmc-hs200-1_8v; | |
382 | non-removable; | |
383 | status = "okay"; | |
384 | }; | |
385 | ||
386 | &sdmmc0 { | |
387 | bus-width = <4>; | |
388 | cap-sd-highspeed; | |
389 | cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; | |
390 | disable-wp; | |
391 | pinctrl-names = "default"; | |
392 | pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; | |
393 | vmmc-supply = <&vcc_3v3>; | |
394 | status = "okay"; | |
395 | }; | |
396 | ||
397 | &sdmmc1 { | |
398 | /* WiFi & BT combo module AMPAK AP6398S */ | |
399 | #address-cells = <1>; | |
400 | #size-cells = <0>; | |
401 | bus-width = <4>; | |
402 | clock-frequency = <150000000>; | |
403 | cap-sdio-irq; | |
404 | cap-sd-highspeed; | |
405 | sd-uhs-sdr104; | |
406 | keep-power-in-suspend; | |
407 | mmc-pwrseq = <&sdio_pwrseq>; | |
408 | non-removable; | |
409 | pinctrl-names = "default"; | |
410 | pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; | |
411 | vmmc-supply = <&vcc_3v3>; | |
412 | vqmmc-supply = <&vcca_1v8>; | |
413 | status = "okay"; | |
414 | ||
415 | brcmf: wifi@1 { | |
416 | compatible = "brcm,bcm4329-fmac"; | |
417 | reg = <1>; | |
418 | interrupt-parent = <&gpio2>; | |
419 | interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>; | |
420 | interrupt-names = "host-wake"; | |
421 | pinctrl-names = "default"; | |
422 | pinctrl-0 = <&wifi_host_wake_h>; | |
423 | }; | |
424 | }; | |
425 | ||
426 | &spdif { | |
427 | status = "okay"; | |
428 | }; | |
429 | ||
430 | &spi1 { | |
431 | pinctrl-names = "default"; | |
432 | pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>; | |
433 | }; | |
434 | ||
435 | &tsadc { | |
436 | /* tshut mode 0:CRU 1:GPIO */ | |
437 | rockchip,hw-tshut-mode = <1>; | |
438 | /* tshut polarity 0:LOW 1:HIGH */ | |
439 | rockchip,hw-tshut-polarity = <0>; | |
440 | status = "okay"; | |
441 | }; | |
442 | ||
443 | &uart1 { | |
444 | pinctrl-names = "default"; | |
445 | pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>; | |
446 | status = "okay"; | |
447 | uart-has-rtscts; | |
448 | ||
449 | bluetooth { | |
450 | compatible = "brcm,bcm43438-bt"; | |
451 | clocks = <&pmucru CLK_RTC_32K>; | |
9c8af15f TR |
452 | clock-names = "txco"; |
453 | device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; | |
454 | host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; | |
53633a89 TR |
455 | shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; |
456 | pinctrl-names = "default"; | |
457 | pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; | |
458 | vbat-supply = <&vcc3v3_sys>; | |
459 | vddio-supply = <&vcca_1v8>; | |
460 | }; | |
461 | }; | |
462 | ||
463 | &uart2 { | |
464 | status = "okay"; | |
465 | }; | |
466 | ||
467 | &vop { | |
468 | assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; | |
469 | assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; | |
470 | status = "okay"; | |
471 | }; | |
472 | ||
473 | &vop_mmu { | |
474 | status = "okay"; | |
475 | }; | |
476 | ||
477 | &vp0 { | |
478 | vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { | |
479 | reg = <ROCKCHIP_VOP2_EP_HDMI0>; | |
480 | remote-endpoint = <&hdmi_in_vp0>; | |
481 | }; | |
482 | }; | |
483 | ||
484 | &vpu { | |
485 | status = "okay"; | |
486 | }; | |
487 | ||
488 | &vdpu_mmu { | |
489 | status = "okay"; | |
490 | }; | |
491 | ||
492 | &usb2phy0_host { | |
493 | phy-supply = <&vcc5v0_usb_host>; | |
494 | status = "okay"; | |
495 | }; | |
496 | ||
497 | &usb2phy0_otg { | |
498 | phy-supply = <&vcc5v0_usb2_otg>; | |
499 | status = "okay"; | |
500 | }; | |
501 | ||
502 | &usb2phy1_host { | |
503 | phy-supply = <&vcc5v0_usb_host>; | |
504 | status = "okay"; | |
505 | }; | |
506 | ||
507 | &usb2phy1_otg { | |
508 | phy-supply = <&vcc5v0_usb_host>; | |
509 | status = "okay"; | |
510 | }; | |
511 | ||
512 | &usb2phy1 { | |
513 | status = "okay"; | |
514 | }; | |
515 | ||
516 | &usb_host0_ehci { | |
517 | status = "okay"; | |
518 | }; | |
519 | ||
520 | &usb_host0_ohci { | |
521 | status = "okay"; | |
522 | }; | |
523 | ||
524 | &usb_host1_ehci { | |
525 | status = "okay"; | |
526 | }; | |
527 | ||
528 | &usb_host1_ohci { | |
529 | status = "okay"; | |
530 | }; | |
531 | ||
532 | &usb_host1_xhci { | |
533 | status = "okay"; | |
534 | }; |