blob: c553abd711eeb3813f786ad7a95bafc76502ee1c [file] [log] [blame]
Kyle Swenson8d8f6542021-03-15 11:02:55 -06001/*
2 * Device Tree Source for the Lager board
3 *
4 * Copyright (C) 2013-2014 Renesas Solutions Corp.
5 * Copyright (C) 2014 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/*
13 * SSI-AK4643
14 *
15 * SW1: 1: AK4643
16 * 2: CN22
17 * 3: ADV7511
18 *
19 * This command is required when Playback/Capture
20 *
21 * amixer set "LINEOUT Mixer DACL" on
22 * amixer set "DVC Out" 100%
23 * amixer set "DVC In" 100%
24 *
25 * You can use Mute
26 *
27 * amixer set "DVC Out Mute" on
28 * amixer set "DVC In Mute" on
29 *
30 * You can use Volume Ramp
31 *
32 * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps"
33 * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
34 * amixer set "DVC Out Ramp" on
35 * aplay xxx.wav &
36 * amixer set "DVC Out" 80% // Volume Down
37 * amixer set "DVC Out" 100% // Volume Up
38 */
39
40/dts-v1/;
41#include "r8a7790.dtsi"
42#include <dt-bindings/gpio/gpio.h>
43#include <dt-bindings/input/input.h>
44
45/ {
46 model = "Lager";
47 compatible = "renesas,lager", "renesas,r8a7790";
48
49 aliases {
50 serial0 = &scifa0;
51 serial1 = &scifa1;
52 };
53
54 chosen {
55 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
56 stdout-path = &scifa0;
57 };
58
59 memory@40000000 {
60 device_type = "memory";
61 reg = <0 0x40000000 0 0x40000000>;
62 };
63
64 memory@140000000 {
65 device_type = "memory";
66 reg = <1 0x40000000 0 0xc0000000>;
67 };
68
69 lbsc {
70 #address-cells = <1>;
71 #size-cells = <1>;
72 };
73
74 keyboard {
75 compatible = "gpio-keys";
76
77 button@1 {
78 linux,code = <KEY_1>;
79 label = "SW2-1";
80 gpio-key,wakeup;
81 debounce-interval = <20>;
82 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
83 };
84 button@2 {
85 linux,code = <KEY_2>;
86 label = "SW2-2";
87 gpio-key,wakeup;
88 debounce-interval = <20>;
89 gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
90 };
91 button@3 {
92 linux,code = <KEY_3>;
93 label = "SW2-3";
94 gpio-key,wakeup;
95 debounce-interval = <20>;
96 gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
97 };
98 button@4 {
99 linux,code = <KEY_4>;
100 label = "SW2-4";
101 gpio-key,wakeup;
102 debounce-interval = <20>;
103 gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
104 };
105 };
106
107 leds {
108 compatible = "gpio-leds";
109 led6 {
110 gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
111 };
112 led7 {
113 gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
114 };
115 led8 {
116 gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
117 };
118 };
119
120 fixedregulator3v3: fixedregulator@0 {
121 compatible = "regulator-fixed";
122 regulator-name = "fixed-3.3V";
123 regulator-min-microvolt = <3300000>;
124 regulator-max-microvolt = <3300000>;
125 regulator-boot-on;
126 regulator-always-on;
127 };
128
129 vcc_sdhi0: regulator@1 {
130 compatible = "regulator-fixed";
131
132 regulator-name = "SDHI0 Vcc";
133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135
136 gpio = <&gpio5 24 GPIO_ACTIVE_HIGH>;
137 enable-active-high;
138 };
139
140 vccq_sdhi0: regulator@2 {
141 compatible = "regulator-gpio";
142
143 regulator-name = "SDHI0 VccQ";
144 regulator-min-microvolt = <1800000>;
145 regulator-max-microvolt = <3300000>;
146
147 gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
148 gpios-states = <1>;
149 states = <3300000 1
150 1800000 0>;
151 };
152
153 vcc_sdhi2: regulator@3 {
154 compatible = "regulator-fixed";
155
156 regulator-name = "SDHI2 Vcc";
157 regulator-min-microvolt = <3300000>;
158 regulator-max-microvolt = <3300000>;
159
160 gpio = <&gpio5 25 GPIO_ACTIVE_HIGH>;
161 enable-active-high;
162 };
163
164 vccq_sdhi2: regulator@4 {
165 compatible = "regulator-gpio";
166
167 regulator-name = "SDHI2 VccQ";
168 regulator-min-microvolt = <1800000>;
169 regulator-max-microvolt = <3300000>;
170
171 gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;
172 gpios-states = <1>;
173 states = <3300000 1
174 1800000 0>;
175 };
176
177 audio_clock: clock {
178 compatible = "fixed-clock";
179 #clock-cells = <0>;
180 clock-frequency = <11289600>;
181 clock-output-names = "audio_clock";
182 };
183
184 rsnd_ak4643: sound {
185 compatible = "simple-audio-card";
186
187 simple-audio-card,format = "left_j";
188 simple-audio-card,bitclock-master = <&sndcodec>;
189 simple-audio-card,frame-master = <&sndcodec>;
190
191 sndcpu: simple-audio-card,cpu {
192 sound-dai = <&rcar_sound>;
193 };
194
195 sndcodec: simple-audio-card,codec {
196 sound-dai = <&ak4643>;
197 clocks = <&audio_clock>;
198 };
199 };
200
201 vga-encoder {
202 compatible = "adi,adv7123";
203
204 ports {
205 #address-cells = <1>;
206 #size-cells = <0>;
207
208 port@0 {
209 reg = <0>;
210 adv7123_in: endpoint {
211 remote-endpoint = <&du_out_rgb>;
212 };
213 };
214 port@1 {
215 reg = <1>;
216 adv7123_out: endpoint {
217 remote-endpoint = <&vga_in>;
218 };
219 };
220 };
221 };
222
223 vga {
224 compatible = "vga-connector";
225
226 port {
227 vga_in: endpoint {
228 remote-endpoint = <&adv7123_out>;
229 };
230 };
231 };
232
233 hdmi-out {
234 compatible = "hdmi-connector";
235 type = "a";
236
237 port {
238 hdmi_con: endpoint {
239 remote-endpoint = <&adv7511_out>;
240 };
241 };
242 };
243
244 x2_clk: x2-clock {
245 compatible = "fixed-clock";
246 #clock-cells = <0>;
247 clock-frequency = <148500000>;
248 };
249
250 x13_clk: x13-clock {
251 compatible = "fixed-clock";
252 #clock-cells = <0>;
253 clock-frequency = <148500000>;
254 };
255};
256
257&du {
258 pinctrl-0 = <&du_pins>;
259 pinctrl-names = "default";
260 status = "okay";
261
262 clocks = <&mstp7_clks R8A7790_CLK_DU0>,
263 <&mstp7_clks R8A7790_CLK_DU1>,
264 <&mstp7_clks R8A7790_CLK_DU2>,
265 <&mstp7_clks R8A7790_CLK_LVDS0>,
266 <&mstp7_clks R8A7790_CLK_LVDS1>,
267 <&x13_clk>, <&x2_clk>;
268 clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1",
269 "dclkin.0", "dclkin.1";
270
271 ports {
272 port@0 {
273 endpoint {
274 remote-endpoint = <&adv7123_in>;
275 };
276 };
277 port@1 {
278 endpoint {
279 remote-endpoint = <&adv7511_in>;
280 };
281 };
282 port@2 {
283 lvds_connector: endpoint {
284 };
285 };
286 };
287};
288
289&extal_clk {
290 clock-frequency = <20000000>;
291};
292
293&pfc {
294 du_pins: du {
295 renesas,groups = "du_rgb666", "du_sync_1", "du_clk_out_0";
296 renesas,function = "du";
297 };
298
299 scifa0_pins: serial0 {
300 renesas,groups = "scifa0_data";
301 renesas,function = "scifa0";
302 };
303
304 ether_pins: ether {
305 renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
306 renesas,function = "eth";
307 };
308
309 phy1_pins: phy1 {
310 renesas,groups = "intc_irq0";
311 renesas,function = "intc";
312 };
313
314 scifa1_pins: serial1 {
315 renesas,groups = "scifa1_data";
316 renesas,function = "scifa1";
317 };
318
319 sdhi0_pins: sd0 {
320 renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
321 renesas,function = "sdhi0";
322 };
323
324 sdhi2_pins: sd2 {
325 renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
326 renesas,function = "sdhi2";
327 };
328
329 mmc1_pins: mmc1 {
330 renesas,groups = "mmc1_data8", "mmc1_ctrl";
331 renesas,function = "mmc1";
332 };
333
334 qspi_pins: spi0 {
335 renesas,groups = "qspi_ctrl", "qspi_data4";
336 renesas,function = "qspi";
337 };
338
339 msiof1_pins: spi2 {
340 renesas,groups = "msiof1_clk", "msiof1_sync", "msiof1_rx",
341 "msiof1_tx";
342 renesas,function = "msiof1";
343 };
344
345 iic0_pins: iic0 {
346 renesas,groups = "iic0";
347 renesas,function = "iic0";
348 };
349
350 iic1_pins: iic1 {
351 renesas,groups = "iic1";
352 renesas,function = "iic1";
353 };
354
355 iic2_pins: iic2 {
356 renesas,groups = "iic2";
357 renesas,function = "iic2";
358 };
359
360 iic3_pins: iic3 {
361 renesas,groups = "iic3";
362 renesas,function = "iic3";
363 };
364
365 hsusb_pins: hsusb {
366 renesas,groups = "usb0_ovc_vbus";
367 renesas,function = "usb0";
368 };
369
370 usb0_pins: usb0 {
371 renesas,groups = "usb0";
372 renesas,function = "usb0";
373 };
374
375 usb1_pins: usb1 {
376 renesas,groups = "usb1";
377 renesas,function = "usb1";
378 };
379
380 usb2_pins: usb2 {
381 renesas,groups = "usb2";
382 renesas,function = "usb2";
383 };
384
385 vin1_pins: vin {
386 renesas,groups = "vin1_data8", "vin1_clk";
387 renesas,function = "vin1";
388 };
389
390 sound_pins: sound {
391 renesas,groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
392 renesas,function = "ssi";
393 };
394
395 sound_clk_pins: sound_clk {
396 renesas,groups = "audio_clk_a";
397 renesas,function = "audio_clk";
398 };
399};
400
401&ether {
402 pinctrl-0 = <&ether_pins &phy1_pins>;
403 pinctrl-names = "default";
404
405 phy-handle = <&phy1>;
406 renesas,ether-link-active-low;
407 status = "okay";
408
409 phy1: ethernet-phy@1 {
410 reg = <1>;
411 interrupt-parent = <&irqc0>;
412 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
413 micrel,led-mode = <1>;
414 };
415};
416
417&cmt0 {
418 status = "okay";
419};
420
421&mmcif1 {
422 pinctrl-0 = <&mmc1_pins>;
423 pinctrl-names = "default";
424
425 vmmc-supply = <&fixedregulator3v3>;
426 bus-width = <8>;
427 non-removable;
428 status = "okay";
429};
430
431&sata1 {
432 status = "okay";
433};
434
435&qspi {
436 pinctrl-0 = <&qspi_pins>;
437 pinctrl-names = "default";
438
439 status = "okay";
440
441 flash: flash@0 {
442 #address-cells = <1>;
443 #size-cells = <1>;
444 compatible = "spansion,s25fl512s", "jedec,spi-nor";
445 reg = <0>;
446 spi-max-frequency = <30000000>;
447 spi-tx-bus-width = <4>;
448 spi-rx-bus-width = <4>;
449 spi-cpha;
450 spi-cpol;
451 m25p,fast-read;
452
453 partition@0 {
454 label = "loader";
455 reg = <0x00000000 0x00040000>;
456 read-only;
457 };
458 partition@40000 {
459 label = "user";
460 reg = <0x00040000 0x00400000>;
461 read-only;
462 };
463 partition@440000 {
464 label = "flash";
465 reg = <0x00440000 0x03bc0000>;
466 };
467 };
468};
469
470&scifa0 {
471 pinctrl-0 = <&scifa0_pins>;
472 pinctrl-names = "default";
473
474 status = "okay";
475};
476
477&scifa1 {
478 pinctrl-0 = <&scifa1_pins>;
479 pinctrl-names = "default";
480
481 status = "okay";
482};
483
484&msiof1 {
485 pinctrl-0 = <&msiof1_pins>;
486 pinctrl-names = "default";
487
488 status = "okay";
489
490 pmic: pmic@0 {
491 compatible = "renesas,r2a11302ft";
492 reg = <0>;
493 spi-max-frequency = <6000000>;
494 spi-cpol;
495 spi-cpha;
496 };
497};
498
499&sdhi0 {
500 pinctrl-0 = <&sdhi0_pins>;
501 pinctrl-names = "default";
502
503 vmmc-supply = <&vcc_sdhi0>;
504 vqmmc-supply = <&vccq_sdhi0>;
505 cd-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
506 status = "okay";
507};
508
509&sdhi2 {
510 pinctrl-0 = <&sdhi2_pins>;
511 pinctrl-names = "default";
512
513 vmmc-supply = <&vcc_sdhi2>;
514 vqmmc-supply = <&vccq_sdhi2>;
515 cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
516 status = "okay";
517};
518
519&cpu0 {
520 cpu0-supply = <&vdd_dvfs>;
521};
522
523&iic0 {
524 status = "okay";
525 pinctrl-0 = <&iic0_pins>;
526 pinctrl-names = "default";
527};
528
529&iic1 {
530 status = "okay";
531 pinctrl-0 = <&iic1_pins>;
532 pinctrl-names = "default";
533};
534
535&iic2 {
536 status = "okay";
537 pinctrl-0 = <&iic2_pins>;
538 pinctrl-names = "default";
539
540 clock-frequency = <100000>;
541
542 ak4643: codec@12 {
543 compatible = "asahi-kasei,ak4643";
544 #sound-dai-cells = <0>;
545 reg = <0x12>;
546 };
547
548 composite-in@20 {
549 compatible = "adi,adv7180";
550 reg = <0x20>;
551 remote = <&vin1>;
552
553 port {
554 adv7180: endpoint {
555 bus-width = <8>;
556 remote-endpoint = <&vin1ep0>;
557 };
558 };
559 };
560
561 hdmi@39 {
562 compatible = "adi,adv7511w";
563 reg = <0x39>;
564 interrupt-parent = <&gpio1>;
565 interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
566
567 adi,input-depth = <8>;
568 adi,input-colorspace = "rgb";
569 adi,input-clock = "1x";
570 adi,input-style = <1>;
571 adi,input-justification = "evenly";
572
573 ports {
574 #address-cells = <1>;
575 #size-cells = <0>;
576
577 port@0 {
578 reg = <0>;
579 adv7511_in: endpoint {
580 remote-endpoint = <&du_out_lvds0>;
581 };
582 };
583
584 port@1 {
585 reg = <1>;
586 adv7511_out: endpoint {
587 remote-endpoint = <&hdmi_con>;
588 };
589 };
590 };
591 };
592};
593
594&iic3 {
595 pinctrl-names = "default";
596 pinctrl-0 = <&iic3_pins>;
597 status = "okay";
598
599 pmic@58 {
600 compatible = "dlg,da9063";
601 reg = <0x58>;
602 interrupt-parent = <&irqc0>;
603 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
604 interrupt-controller;
605
606 rtc {
607 compatible = "dlg,da9063-rtc";
608 };
609
610 wdt {
611 compatible = "dlg,da9063-watchdog";
612 };
613 };
614
615 vdd_dvfs: regulator@68 {
616 compatible = "dlg,da9210";
617 reg = <0x68>;
618 interrupt-parent = <&irqc0>;
619 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
620
621 regulator-min-microvolt = <1000000>;
622 regulator-max-microvolt = <1000000>;
623 regulator-boot-on;
624 regulator-always-on;
625 };
626};
627
628&pci0 {
629 status = "okay";
630 pinctrl-0 = <&usb0_pins>;
631 pinctrl-names = "default";
632};
633
634&pci1 {
635 status = "okay";
636 pinctrl-0 = <&usb1_pins>;
637 pinctrl-names = "default";
638};
639
640&xhci {
641 status = "okay";
642 pinctrl-0 = <&usb2_pins>;
643 pinctrl-names = "default";
644};
645
646&pci2 {
647 status = "okay";
648 pinctrl-0 = <&usb2_pins>;
649 pinctrl-names = "default";
650};
651
652&hsusb {
653 status = "okay";
654 pinctrl-0 = <&hsusb_pins>;
655 pinctrl-names = "default";
656 renesas,enable-gpio = <&gpio5 18 GPIO_ACTIVE_HIGH>;
657};
658
659&usbphy {
660 status = "okay";
661};
662
663/* composite video input */
664&vin1 {
665 pinctrl-0 = <&vin1_pins>;
666 pinctrl-names = "default";
667
668 status = "okay";
669
670 port {
671 #address-cells = <1>;
672 #size-cells = <0>;
673
674 vin1ep0: endpoint {
675 remote-endpoint = <&adv7180>;
676 bus-width = <8>;
677 };
678 };
679};
680
681&rcar_sound {
682 pinctrl-0 = <&sound_pins &sound_clk_pins>;
683 pinctrl-names = "default";
684
685 /* Single DAI */
686 #sound-dai-cells = <0>;
687
688 status = "okay";
689
690 rcar_sound,dai {
691 dai0 {
692 playback = <&ssi0 &src2 &dvc0>;
693 capture = <&ssi1 &src3 &dvc1>;
694 };
695 };
696};
697
698&ssi1 {
699 shared-pin;
700};