Loading...
Note: File does not exist in v4.10.11.
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/clock/rockchip,rk808.h>
6#include <dt-bindings/input/input.h>
7#include <dt-bindings/leds/common.h>
8#include <dt-bindings/sound/rt5640.h>
9#include "rk3368.dtsi"
10
11/ {
12 model = "Neardi LBA3368";
13 compatible = "neardi,lba3368", "rockchip,rk3368";
14
15 aliases {
16 ethernet0 = &gmac;
17 mmc0 = &emmc;
18 mmc1 = &sdmmc;
19 mmc2 = &sdio0;
20 rtc0 = &hym8563;
21 rtc1 = &rk808;
22 };
23
24 chosen {
25 stdout-path = "serial1:115200n8";
26 };
27
28 memory@0 {
29 device_type = "memory";
30 reg = <0x0 0x0 0x0 0x40000000>;
31 };
32
33 adc-key {
34 compatible = "adc-keys";
35 io-channels = <&saradc 1>;
36 io-channel-names = "buttons";
37 poll-interval = <100>;
38 keyup-threshold-microvolt = <1800000>;
39
40 button-recovery {
41 label = "Recovery";
42 linux,code = <KEY_VENDOR>;
43 press-threshold-microvolt = <0>;
44 };
45 };
46
47 analog-sound {
48 compatible = "audio-graph-card";
49 dais = <&i2s_8ch_p0>;
50 hp-det-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
51 label = "alc5640";
52 routing = "Mic Jack", "MICBIAS1",
53 "IN1P", "Mic Jack",
54 "Headphone Jack", "HPOL",
55 "Headphone Jack", "HPOR",
56 "Speakers", "SPORP",
57 "Speakers", "SPORN",
58 "Speakers", "SPOLP",
59 "Speakers", "SPOLN";
60 widgets = "Microphone", "Mic Jack",
61 "Headphone", "Headphone Jack",
62 "Speaker", "Speakers";
63 pinctrl-names = "default";
64 pinctrl-0 = <&hp_det>;
65 };
66
67 dc_12v: regulator-dc-12v {
68 compatible = "regulator-fixed";
69 regulator-name = "dc_12v";
70 regulator-min-microvolt = <12000000>;
71 regulator-max-microvolt = <12000000>;
72 regulator-always-on;
73 regulator-boot-on;
74 };
75
76 ext_gmac: gmac-clk {
77 compatible = "fixed-clock";
78 clock-frequency = <50000000>;
79 clock-output-names = "ext_gmac";
80 #clock-cells = <0>;
81 };
82
83 hub_avdd: regulator-hub-avdd {
84 compatible = "regulator-fixed";
85 regulator-name = "hub_avdd";
86 regulator-min-microvolt = <3300000>;
87 regulator-max-microvolt = <3300000>;
88 vin-supply = <&vcc_io>;
89 regulator-always-on;
90 };
91
92 leds {
93 compatible = "gpio-leds";
94
95 power-led {
96 gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
97 function = LED_FUNCTION_POWER;
98 color = <LED_COLOR_ID_GREEN>;
99 default-state = "on";
100 pinctrl-names = "default";
101 pinctrl-0 = <&power_led>;
102 };
103 };
104
105 sdio_pwrseq: sdio-pwrseq {
106 compatible = "mmc-pwrseq-simple";
107 clocks = <&rk808 RK808_CLKOUT1>;
108 clock-names = "ext_clock";
109 reset-gpios = <&gpio3 RK_PA5 GPIO_ACTIVE_LOW>;
110 pinctrl-names = "default";
111 pinctrl-0 = <&wifi_reg_on>;
112 };
113
114 vcc_host: regulator-vcc-host {
115 compatible = "regulator-fixed";
116 gpio = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
117 regulator-name = "vcc_host";
118 regulator-min-microvolt = <5000000>;
119 regulator-max-microvolt = <5000000>;
120 vin-supply = <&vcc_sys>;
121 pinctrl-names = "default";
122 pinctrl-0 = <&host_vbus_drv>;
123 enable-active-high;
124 regulator-always-on;
125 };
126
127 vcc_lan: regulator-vcc-lan {
128 compatible = "regulator-fixed";
129 regulator-name = "vcc_lan";
130 regulator-min-microvolt = <3300000>;
131 regulator-max-microvolt = <3300000>;
132 vin-supply = <&vcc_io>;
133 regulator-always-on;
134 };
135
136 vcc_otg: regulator-vcc-otg {
137 compatible = "regulator-fixed";
138 gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
139 regulator-name = "vcc_otg";
140 regulator-min-microvolt = <5000000>;
141 regulator-max-microvolt = <5000000>;
142 vin-supply = <&vcc_sys>;
143 pinctrl-names = "default";
144 pinctrl-0 = <&otg_vbus_drv>;
145 enable-active-high;
146 regulator-always-on;
147 };
148
149 vcc_sys: regulator-vcc-sys {
150 compatible = "regulator-fixed";
151 regulator-name = "vcc_sys";
152 regulator-min-microvolt = <5000000>;
153 regulator-max-microvolt = <5000000>;
154 vin-supply = <&dc_12v>;
155 regulator-always-on;
156 regulator-boot-on;
157 };
158
159 vdd10_usb: regulator-vdd10-usb {
160 compatible = "regulator-fixed";
161 regulator-name = "vdd10_usb";
162 regulator-min-microvolt = <1000000>;
163 regulator-max-microvolt = <1000000>;
164 vin-supply = <&vdd_10>;
165 regulator-always-on;
166 };
167};
168
169&cpu_l0 {
170 cpu-supply = <&vdd_cpu>;
171};
172
173&cpu_l1 {
174 cpu-supply = <&vdd_cpu>;
175};
176
177&cpu_l2 {
178 cpu-supply = <&vdd_cpu>;
179};
180
181&cpu_l3 {
182 cpu-supply = <&vdd_cpu>;
183};
184
185&cpu_b0 {
186 cpu-supply = <&vdd_cpu>;
187};
188
189&cpu_b1 {
190 cpu-supply = <&vdd_cpu>;
191};
192
193&cpu_b2 {
194 cpu-supply = <&vdd_cpu>;
195};
196
197&cpu_b3 {
198 cpu-supply = <&vdd_cpu>;
199};
200
201&emmc {
202 bus-width = <8>;
203 vmmc-supply = <&vcc_io>;
204 vqmmc-supply = <&vcc_18>;
205 pinctrl-names = "default";
206 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
207 cap-mmc-highspeed;
208 non-removable;
209 no-sd;
210 no-sdio;
211 mmc-hs200-1_8v;
212 status = "okay";
213};
214
215&gmac {
216 clock_in_out = "input";
217 phy-handle = <&phy>;
218 phy-mode = "rmii";
219 phy-supply = <&vcc_lan>;
220 assigned-clocks = <&cru SCLK_MAC>;
221 assigned-clock-parents = <&ext_gmac>;
222 pinctrl-names = "default";
223 pinctrl-0 = <&rmii_pins>;
224 status = "okay";
225
226 mdio {
227 compatible = "snps,dwmac-mdio";
228 #address-cells = <1>;
229 #size-cells = <0>;
230
231 phy: ethernet-phy@1 {
232 compatible = "ethernet-phy-ieee802.3-c22";
233 reg = <1>;
234 max-speed = <100>;
235 reset-assert-us = <10000>;
236 reset-deassert-us = <1000000>;
237 reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>;
238 pinctrl-names = "default";
239 pinctrl-0 = <&phy_rst>;
240 };
241 };
242};
243
244&io_domains {
245 audio-supply = <&vcca1v8_codec>;
246 dvp-supply = <&vcc_18>;
247 flash0-supply = <&vcc_18>;
248 gpio1830-supply = <&vcc_io>;
249 gpio30-supply = <&vcc_io>;
250 sdcard-supply = <&vccio_sd>;
251 wifi-supply = <&vdd1v8_wl>;
252 status = "okay";
253};
254
255&i2c0 {
256 status = "okay";
257
258 rk808: pmic@1b {
259 compatible = "rockchip,rk808";
260 reg = <0x1b>;
261 interrupts-extended = <&gpio0 RK_PA5 IRQ_TYPE_LEVEL_LOW>;
262 clock-output-names = "rk808-clkout1", "xin32k_wifi_bt";
263 vcc1-supply = <&vcc_sys>;
264 vcc2-supply = <&vcc_sys>;
265 vcc3-supply = <&vcc_sys>;
266 vcc4-supply = <&vcc_sys>;
267 vcc6-supply = <&vcc_sys>;
268 vcc7-supply = <&vcc_sys>;
269 vcc8-supply = <&vcc_io>;
270 vcc9-supply = <&vcc_sys>;
271 vcc10-supply = <&vcc_sys>;
272 vcc11-supply = <&vcc_sys>;
273 vcc12-supply = <&vcc_io>;
274 pinctrl-names = "default";
275 pinctrl-0 = <&pmic_int &pmic_sleep>;
276 system-power-controller;
277 wakeup-source;
278 #clock-cells = <1>;
279
280 regulators {
281 vdd_cpu: DCDC_REG1 {
282 regulator-name = "vdd_cpu";
283 regulator-min-microvolt = <700000>;
284 regulator-max-microvolt = <1350000>;
285 regulator-always-on;
286 regulator-boot-on;
287
288 regulator-state-mem {
289 regulator-off-in-suspend;
290 };
291 };
292
293 vdd_log: DCDC_REG2 {
294 regulator-name = "vdd_log";
295 regulator-min-microvolt = <1100000>;
296 regulator-max-microvolt = <1500000>;
297 regulator-ramp-delay = <6001>;
298 regulator-always-on;
299 regulator-boot-on;
300
301 regulator-state-mem {
302 regulator-suspend-microvolt = <1000000>;
303 regulator-on-in-suspend;
304 };
305 };
306
307 vcc_ddr: DCDC_REG3 {
308 regulator-name = "vcc_ddr";
309 regulator-always-on;
310 regulator-boot-on;
311
312 regulator-state-mem {
313 regulator-on-in-suspend;
314 };
315 };
316
317 vcc_io: DCDC_REG4 {
318 regulator-name = "vcc_io";
319 regulator-min-microvolt = <3300000>;
320 regulator-max-microvolt = <3300000>;
321 regulator-always-on;
322 regulator-boot-on;
323
324 regulator-state-mem {
325 regulator-suspend-microvolt = <3300000>;
326 regulator-on-in-suspend;
327 };
328 };
329
330 vcca1v8_codec: LDO_REG1 {
331 regulator-name = "vcca1v8_codec";
332 regulator-min-microvolt = <1800000>;
333 regulator-max-microvolt = <1800000>;
334 regulator-always-on;
335
336 regulator-state-mem {
337 regulator-off-in-suspend;
338 };
339 };
340
341 vcca3v0_codec: LDO_REG2 {
342 regulator-name = "vcca3v0_codec";
343 regulator-min-microvolt = <3000000>;
344 regulator-max-microvolt = <3000000>;
345 regulator-always-on;
346
347 regulator-state-mem {
348 regulator-off-in-suspend;
349 };
350 };
351
352 vdd_10: LDO_REG3 {
353 regulator-name = "vdd_10";
354 regulator-min-microvolt = <1000000>;
355 regulator-max-microvolt = <1000000>;
356 regulator-always-on;
357 regulator-boot-on;
358
359 regulator-state-mem {
360 regulator-suspend-microvolt = <1000000>;
361 regulator-on-in-suspend;
362 };
363 };
364
365 vdd1v8_wl: LDO_REG4 {
366 regulator-name = "vdd1v8_wl";
367 regulator-min-microvolt = <1800000>;
368 regulator-max-microvolt = <1800000>;
369
370 regulator-state-mem {
371 regulator-off-in-suspend;
372 };
373 };
374
375 vccio_sd: LDO_REG5 {
376 regulator-name = "vccio_sd";
377 regulator-min-microvolt = <1800000>;
378 regulator-max-microvolt = <3300000>;
379
380 regulator-state-mem {
381 regulator-off-in-suspend;
382 };
383 };
384
385 vdd10_lcd: LDO_REG6 {
386 regulator-name = "vdd10_lcd";
387 regulator-min-microvolt = <1000000>;
388 regulator-max-microvolt = <1000000>;
389
390 regulator-state-mem {
391 regulator-off-in-suspend;
392 };
393 };
394
395 vcc_18: LDO_REG7 {
396 regulator-name = "vcc_18";
397 regulator-min-microvolt = <1800000>;
398 regulator-max-microvolt = <1800000>;
399
400 regulator-state-mem {
401 regulator-suspend-microvolt = <1800000>;
402 regulator-on-in-suspend;
403 };
404 };
405
406 vcc18_lcd: LDO_REG8 {
407 regulator-name = "vcc18_lcd";
408 regulator-min-microvolt = <1800000>;
409 regulator-max-microvolt = <1800000>;
410
411 regulator-state-mem {
412 regulator-off-in-suspend;
413 };
414 };
415
416 vcc_tp: SWITCH_REG1 {
417 regulator-name = "vcc_tp";
418
419 regulator-state-mem {
420 regulator-on-in-suspend;
421 };
422 };
423
424 vcc_sd: SWITCH_REG2 {
425 regulator-name = "vcc_sd";
426
427 regulator-state-mem {
428 regulator-off-in-suspend;
429 };
430 };
431 };
432 };
433};
434
435&i2c1 {
436 status = "okay";
437
438 codec@1c {
439 compatible = "realtek,rt5640";
440 reg = <0x1c>;
441 clocks = <&cru SCLK_I2S_8CH_OUT>;
442 clock-names = "mclk";
443 realtek,dmic1-data-pin = <RT5640_DMIC1_DATA_PIN_IN1P>;
444 realtek,dmic2-data-pin = <RT5640_DMIC2_DATA_PIN_IN1N>;
445 realtek,in1-differential;
446 #sound-dai-cells = <0>;
447
448 port {
449 rt5640_p0_0: endpoint {
450 remote-endpoint = <&i2s_8ch_p0_0>;
451 };
452 };
453 };
454
455 hym8563: rtc@51 {
456 compatible = "haoyu,hym8563";
457 reg = <0x51>;
458 clock-output-names = "xin32k";
459 #clock-cells = <0>;
460 };
461};
462
463&i2s_8ch {
464 status = "okay";
465
466 i2s_8ch_p0: port {
467 i2s_8ch_p0_0: endpoint {
468 dai-format = "i2s";
469 mclk-fs = <256>;
470 remote-endpoint = <&rt5640_p0_0>;
471 };
472 };
473};
474
475&pinctrl {
476 bluetooth {
477 bt_host_wake: bt-host-wake {
478 rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
479 };
480
481 bt_reg_on: bt-reg-on {
482 rockchip,pins = <3 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
483 };
484
485 bt_wake: bt-wake {
486 rockchip,pins = <3 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
487 };
488 };
489
490 leds {
491 power_led: power-led {
492 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
493 };
494 };
495
496 phy {
497 phy_rst: phy-rst {
498 rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
499 };
500 };
501
502 pmic {
503 pmic_int: pmic-int {
504 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
505 };
506
507 pmic_sleep: pmic-sleep {
508 rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
509 };
510 };
511
512 sdio-pwrseq {
513 wifi_reg_on: wifi-reg-on {
514 rockchip,pins = <3 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
515 };
516 };
517
518 sound {
519 hp_det: hp-det {
520 rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
521 };
522 };
523
524 usb {
525 host_vbus_drv: host-vbus-drv {
526 rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
527 };
528
529 otg_vbus_drv: otg-vbus-drv {
530 rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
531 };
532 };
533
534 wifi {
535 wifi_host_wake: wifi-host-wake {
536 rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
537 };
538 };
539};
540
541&pmu_io_domains {
542 pmu-supply = <&vcc_io>;
543 vop-supply = <&vcc_io>;
544 status = "okay";
545};
546
547&saradc {
548 vref-supply = <&vcc_18>;
549 status = "okay";
550};
551
552&sdio0 {
553 bus-width = <4>;
554 mmc-pwrseq = <&sdio_pwrseq>;
555 vmmc-supply = <&vcc_io>;
556 vqmmc-supply = <&vdd1v8_wl>;
557 assigned-clocks = <&cru SCLK_SDIO0>;
558 assigned-clock-parents = <&cru PLL_CPLL>;
559 pinctrl-names = "default";
560 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
561 cap-sd-highspeed;
562 cap-sdio-irq;
563 no-sd;
564 no-mmc;
565 non-removable;
566 sd-uhs-sdr104;
567 #address-cells = <1>;
568 #size-cells = <0>;
569 status = "okay";
570
571 wifi@1 {
572 compatible = "brcm,bcm43455-fmac", "brcm,bcm4329-fmac";
573 reg = <1>;
574 interrupts-extended = <&gpio3 RK_PA6 IRQ_TYPE_LEVEL_HIGH>;
575 interrupt-names = "host-wake";
576 pinctrl-names = "default";
577 pinctrl-0 = <&wifi_host_wake>;
578 };
579};
580
581&sdmmc {
582 bus-width = <4>;
583 vmmc-supply = <&vcc_sd>;
584 vqmmc-supply = <&vccio_sd>;
585 pinctrl-names = "default";
586 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4 &sdmmc_cd>;
587 cap-sd-highspeed;
588 disable-wp;
589 no-mmc;
590 no-sdio;
591 sd-uhs-sdr12;
592 sd-uhs-sdr25;
593 sd-uhs-sdr50;
594 sd-uhs-sdr104;
595 status = "okay";
596};
597
598&tsadc {
599 rockchip,hw-tshut-mode = <0>;
600 rockchip,hw-tshut-polarity = <1>;
601 status = "okay";
602};
603
604&uart0 {
605 pinctrl-names = "default";
606 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
607 uart-has-rtscts;
608 status = "okay";
609
610 bluetooth {
611 compatible = "brcm,bcm4345c5";
612 interrupts-extended = <&gpio3 RK_PA7 GPIO_ACTIVE_HIGH>;
613 interrupt-names = "host-wakeup";
614 clocks = <&rk808 RK808_CLKOUT1>;
615 clock-names = "lpo";
616 device-wakeup-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
617 shutdown-gpios = <&gpio3 RK_PA2 GPIO_ACTIVE_HIGH>;
618 max-speed = <15000000>;
619 vbat-supply = <&vcc_io>;
620 vddio-supply = <&vdd1v8_wl>;
621 pinctrl-names = "default";
622 pinctrl-0 = <&bt_host_wake &bt_wake &bt_reg_on>;
623 };
624};
625
626&uart1 {
627 pinctrl-names = "default";
628 pinctrl-0 = <&uart1_xfer>;
629 status = "okay";
630};
631
632&uart4 {
633 pinctrl-names = "default";
634 pinctrl-0 = <&uart4_xfer>;
635 status = "okay";
636};
637
638&usb_host0_ehci {
639 #address-cells = <1>;
640 #size-cells = <0>;
641 status = "okay";
642
643 hub@1 {
644 compatible = "usb5e3,610";
645 reg = <1>;
646 vdd-supply = <&hub_avdd>;
647 };
648};
649
650&usb_otg {
651 vbus-supply = <&vcc_otg>;
652 vusb_a-supply = <&vcc_io>;
653 vusb_d-supply = <&vdd10_usb>;
654 status = "okay";
655};
656
657&wdt {
658 status = "okay";
659};