blob: 6b13613d454f3372e3f39669b80349256d913e48 [file] [log] [blame]
Marek Vasutedd15fc2018-01-07 20:17:39 +01001/*
2 * Device Tree Source for the Koelsch board
3 *
4 * Copyright (C) 2013 Renesas Electronics Corporation
5 * Copyright (C) 2013-2014 Renesas Solutions Corp.
6 * Copyright (C) 2014 Cogent Embedded, Inc.
7 *
8 * SPDX-License-Identifier: GPL-2.0
9 */
10
11/*
12 * SSI-AK4643
13 *
14 * SW1: 1: AK4643
15 * 2: CN22
16 * 3: ADV7511
17 *
18 * This command is required when Playback/Capture
19 *
20 * amixer set "LINEOUT Mixer DACL" on
21 * amixer set "DVC Out" 100%
22 * amixer set "DVC In" 100%
23 *
24 * You can use Mute
25 *
26 * amixer set "DVC Out Mute" on
27 * amixer set "DVC In Mute" on
28 *
29 * You can use Volume Ramp
30 *
31 * amixer set "DVC Out Ramp Up Rate" "0.125 dB/64 steps"
32 * amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
33 * amixer set "DVC Out Ramp" on
34 * aplay xxx.wav &
35 * amixer set "DVC Out" 80% // Volume Down
36 * amixer set "DVC Out" 100% // Volume Up
37 */
38
39/dts-v1/;
40#include "r8a7791.dtsi"
41#include <dt-bindings/gpio/gpio.h>
42#include <dt-bindings/input/input.h>
43
44/ {
45 model = "Koelsch";
46 compatible = "renesas,koelsch", "renesas,r8a7791";
47
48 aliases {
49 serial0 = &scif0;
50 serial1 = &scif1;
51 i2c9 = &gpioi2c1;
52 i2c12 = &i2cexio1;
53 };
54
55 chosen {
56 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
57 stdout-path = "serial0:115200n8";
58 };
59
60 memory@40000000 {
61 device_type = "memory";
62 reg = <0 0x40000000 0 0x40000000>;
63 };
64
65 memory@200000000 {
66 device_type = "memory";
67 reg = <2 0x00000000 0 0x40000000>;
68 };
69
70 lbsc {
71 #address-cells = <1>;
72 #size-cells = <1>;
73 };
74
75 keyboard {
76 compatible = "gpio-keys";
77
78 key-1 {
79 gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
80 linux,code = <KEY_1>;
81 label = "SW2-1";
82 wakeup-source;
83 debounce-interval = <20>;
84 };
85 key-2 {
86 gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
87 linux,code = <KEY_2>;
88 label = "SW2-2";
89 wakeup-source;
90 debounce-interval = <20>;
91 };
92 key-3 {
93 gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
94 linux,code = <KEY_3>;
95 label = "SW2-3";
96 wakeup-source;
97 debounce-interval = <20>;
98 };
99 key-4 {
100 gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
101 linux,code = <KEY_4>;
102 label = "SW2-4";
103 wakeup-source;
104 debounce-interval = <20>;
105 };
106 key-a {
107 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
108 linux,code = <KEY_A>;
109 label = "SW30";
110 wakeup-source;
111 debounce-interval = <20>;
112 };
113 key-b {
114 gpios = <&gpio7 1 GPIO_ACTIVE_LOW>;
115 linux,code = <KEY_B>;
116 label = "SW31";
117 wakeup-source;
118 debounce-interval = <20>;
119 };
120 key-c {
121 gpios = <&gpio7 2 GPIO_ACTIVE_LOW>;
122 linux,code = <KEY_C>;
123 label = "SW32";
124 wakeup-source;
125 debounce-interval = <20>;
126 };
127 key-d {
128 gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
129 linux,code = <KEY_D>;
130 label = "SW33";
131 wakeup-source;
132 debounce-interval = <20>;
133 };
134 key-e {
135 gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
136 linux,code = <KEY_E>;
137 label = "SW34";
138 wakeup-source;
139 debounce-interval = <20>;
140 };
141 key-f {
142 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
143 linux,code = <KEY_F>;
144 label = "SW35";
145 wakeup-source;
146 debounce-interval = <20>;
147 };
148 key-g {
149 gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
150 linux,code = <KEY_G>;
151 label = "SW36";
152 wakeup-source;
153 debounce-interval = <20>;
154 };
155 };
156
157 leds {
158 compatible = "gpio-leds";
159 led6 {
160 gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
161 label = "LED6";
162 };
163 led7 {
164 gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
165 label = "LED7";
166 };
167 led8 {
168 gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
169 label = "LED8";
170 };
171 };
172
173 vcc_sdhi0: regulator-vcc-sdhi0 {
174 compatible = "regulator-fixed";
175
176 regulator-name = "SDHI0 Vcc";
177 regulator-min-microvolt = <3300000>;
178 regulator-max-microvolt = <3300000>;
179
180 gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>;
181 enable-active-high;
182 };
183
184 vccq_sdhi0: regulator-vccq-sdhi0 {
185 compatible = "regulator-gpio";
186
187 regulator-name = "SDHI0 VccQ";
188 regulator-min-microvolt = <1800000>;
189 regulator-max-microvolt = <3300000>;
190
191 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
192 gpios-states = <1>;
193 states = <3300000 1
194 1800000 0>;
195 };
196
197 vcc_sdhi1: regulator-vcc-sdhi1 {
198 compatible = "regulator-fixed";
199
200 regulator-name = "SDHI1 Vcc";
201 regulator-min-microvolt = <3300000>;
202 regulator-max-microvolt = <3300000>;
203
204 gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>;
205 enable-active-high;
206 };
207
208 vccq_sdhi1: regulator-vccq-sdhi1 {
209 compatible = "regulator-gpio";
210
211 regulator-name = "SDHI1 VccQ";
212 regulator-min-microvolt = <1800000>;
213 regulator-max-microvolt = <3300000>;
214
215 gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
216 gpios-states = <1>;
217 states = <3300000 1
218 1800000 0>;
219 };
220
221 vcc_sdhi2: regulator-vcc-sdhi2 {
222 compatible = "regulator-fixed";
223
224 regulator-name = "SDHI2 Vcc";
225 regulator-min-microvolt = <3300000>;
226 regulator-max-microvolt = <3300000>;
227
228 gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>;
229 enable-active-high;
230 };
231
232 vccq_sdhi2: regulator-vccq-sdhi2 {
233 compatible = "regulator-gpio";
234
235 regulator-name = "SDHI2 VccQ";
236 regulator-min-microvolt = <1800000>;
237 regulator-max-microvolt = <3300000>;
238
239 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
240 gpios-states = <1>;
241 states = <3300000 1
242 1800000 0>;
243 };
244
245 audio_clock: audio_clock {
246 compatible = "fixed-clock";
247 #clock-cells = <0>;
248 clock-frequency = <11289600>;
249 };
250
251 rsnd_ak4643: sound {
252 compatible = "simple-audio-card";
253
254 simple-audio-card,format = "left_j";
255 simple-audio-card,bitclock-master = <&sndcodec>;
256 simple-audio-card,frame-master = <&sndcodec>;
257
258 sndcpu: simple-audio-card,cpu {
259 sound-dai = <&rcar_sound>;
260 };
261
262 sndcodec: simple-audio-card,codec {
263 sound-dai = <&ak4643>;
264 clocks = <&audio_clock>;
265 };
266 };
267
268 hdmi-in {
269 compatible = "hdmi-connector";
270 type = "a";
271
272 port {
273 hdmi_con_in: endpoint {
274 remote-endpoint = <&adv7612_in>;
275 };
276 };
277 };
278
279 hdmi-out {
280 compatible = "hdmi-connector";
281 type = "a";
282
283 port {
284 hdmi_con_out: endpoint {
285 remote-endpoint = <&adv7511_out>;
286 };
287 };
288 };
289
290 x2_clk: x2-clock {
291 compatible = "fixed-clock";
292 #clock-cells = <0>;
293 clock-frequency = <74250000>;
294 };
295
296 x13_clk: x13-clock {
297 compatible = "fixed-clock";
298 #clock-cells = <0>;
299 clock-frequency = <148500000>;
300 };
301
302 gpioi2c1: i2c-9 {
303 #address-cells = <1>;
304 #size-cells = <0>;
305 compatible = "i2c-gpio";
306 status = "disabled";
307 gpios = <&gpio7 16 GPIO_ACTIVE_HIGH /* sda */
308 &gpio7 15 GPIO_ACTIVE_HIGH /* scl */
309 >;
310 i2c-gpio,delay-us = <5>;
311 };
312
313 /*
314 * I2C1 is routed to EXIO connector B, pins 64 (SCL) + 66 (SDA).
315 * A fallback to GPIO is provided.
316 */
317 i2cexio1: i2c-12 {
318 compatible = "i2c-demux-pinctrl";
319 i2c-parent = <&i2c1>, <&gpioi2c1>;
320 i2c-bus-name = "i2c-exio1";
321 #address-cells = <1>;
322 #size-cells = <0>;
323 };
324};
325
326&du {
327 pinctrl-0 = <&du_pins>;
328 pinctrl-names = "default";
329 status = "okay";
330
331 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>,
332 <&x13_clk>, <&x2_clk>;
333 clock-names = "du.0", "du.1", "lvds.0",
334 "dclkin.0", "dclkin.1";
335
336 ports {
337 port@0 {
338 endpoint {
339 remote-endpoint = <&adv7511_in>;
340 };
341 };
342 port@1 {
343 lvds_connector: endpoint {
344 };
345 };
346 };
347};
348
349&extal_clk {
350 clock-frequency = <20000000>;
351};
352
353&pfc {
354 pinctrl-0 = <&scif_clk_pins>;
355 pinctrl-names = "default";
356
357 i2c1_pins: i2c1 {
358 groups = "i2c1";
359 function = "i2c1";
360 };
361
362 i2c2_pins: i2c2 {
363 groups = "i2c2";
364 function = "i2c2";
365 };
366
367 du_pins: du {
368 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
369 function = "du";
370 };
371
372 scif0_pins: scif0 {
373 groups = "scif0_data_d";
374 function = "scif0";
375 };
376
377 scif1_pins: scif1 {
378 groups = "scif1_data_d";
379 function = "scif1";
380 };
381
382 scif_clk_pins: scif_clk {
383 groups = "scif_clk";
384 function = "scif_clk";
385 };
386
387 ether_pins: ether {
388 groups = "eth_link", "eth_mdio", "eth_rmii";
389 function = "eth";
390 };
391
392 phy1_pins: phy1 {
393 groups = "intc_irq0";
394 function = "intc";
395 };
396
397 sdhi0_pins: sd0 {
398 groups = "sdhi0_data4", "sdhi0_ctrl";
399 function = "sdhi0";
400 power-source = <3300>;
401 };
402
403 sdhi0_pins_uhs: sd0_uhs {
404 groups = "sdhi0_data4", "sdhi0_ctrl";
405 function = "sdhi0";
406 power-source = <1800>;
407 };
408
409 sdhi1_pins: sd1 {
410 groups = "sdhi1_data4", "sdhi1_ctrl";
411 function = "sdhi1";
412 power-source = <3300>;
413 };
414
415 sdhi1_pins_uhs: sd1_uhs {
416 groups = "sdhi1_data4", "sdhi1_ctrl";
417 function = "sdhi1";
418 power-source = <1800>;
419 };
420
421 sdhi2_pins: sd2 {
422 groups = "sdhi2_data4", "sdhi2_ctrl";
423 function = "sdhi2";
424 power-source = <3300>;
425 };
426
427 sdhi2_pins_uhs: sd2_uhs {
428 groups = "sdhi2_data4", "sdhi2_ctrl";
429 function = "sdhi2";
430 power-source = <1800>;
431 };
432
433 qspi_pins: qspi {
434 groups = "qspi_ctrl", "qspi_data4";
435 function = "qspi";
436 };
437
438 msiof0_pins: msiof0 {
439 groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
440 "msiof0_tx";
441 function = "msiof0";
442 };
443
444 usb0_pins: usb0 {
445 groups = "usb0";
446 function = "usb0";
447 };
448
449 usb1_pins: usb1 {
450 groups = "usb1";
451 function = "usb1";
452 };
453
454 vin0_pins: vin0 {
455 groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
456 function = "vin0";
457 };
458
459 vin1_pins: vin1 {
460 groups = "vin1_data8", "vin1_clk";
461 function = "vin1";
462 };
463
464 sound_pins: sound {
465 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
466 function = "ssi";
467 };
468
469 sound_clk_pins: sound_clk {
470 groups = "audio_clk_a";
471 function = "audio_clk";
472 };
473};
474
475&ether {
476 pinctrl-0 = <&ether_pins &phy1_pins>;
477 pinctrl-names = "default";
478
479 phy-handle = <&phy1>;
480 renesas,ether-link-active-low;
481 status = "okay";
482
483 phy1: ethernet-phy@1 {
484 reg = <1>;
485 interrupt-parent = <&irqc0>;
486 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
487 micrel,led-mode = <1>;
488 };
489};
490
491&cmt0 {
492 status = "okay";
493};
494
495&sata0 {
496 status = "okay";
497};
498
499&scif0 {
500 pinctrl-0 = <&scif0_pins>;
501 pinctrl-names = "default";
502
503 status = "okay";
504};
505
506&scif1 {
507 pinctrl-0 = <&scif1_pins>;
508 pinctrl-names = "default";
509
510 status = "okay";
511};
512
513&scif_clk {
514 clock-frequency = <14745600>;
515};
516
517&sdhi0 {
518 pinctrl-0 = <&sdhi0_pins>;
519 pinctrl-1 = <&sdhi0_pins_uhs>;
520 pinctrl-names = "default", "state_uhs";
521
522 vmmc-supply = <&vcc_sdhi0>;
523 vqmmc-supply = <&vccq_sdhi0>;
524 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
525 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
526 sd-uhs-sdr50;
527 sd-uhs-sdr104;
528 status = "okay";
529};
530
531&sdhi1 {
532 pinctrl-0 = <&sdhi1_pins>;
533 pinctrl-1 = <&sdhi1_pins_uhs>;
534 pinctrl-names = "default", "state_uhs";
535
536 vmmc-supply = <&vcc_sdhi1>;
537 vqmmc-supply = <&vccq_sdhi1>;
538 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
539 wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
540 sd-uhs-sdr50;
541 status = "okay";
542};
543
544&sdhi2 {
545 pinctrl-0 = <&sdhi2_pins>;
546 pinctrl-1 = <&sdhi2_pins_uhs>;
547 pinctrl-names = "default", "state_uhs";
548
549 vmmc-supply = <&vcc_sdhi2>;
550 vqmmc-supply = <&vccq_sdhi2>;
551 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
552 sd-uhs-sdr50;
553 status = "okay";
554};
555
556&qspi {
557 pinctrl-0 = <&qspi_pins>;
558 pinctrl-names = "default";
559
560 status = "okay";
561
562 flash: flash@0 {
563 compatible = "spansion,s25fl512s", "jedec,spi-nor";
564 reg = <0>;
565 spi-max-frequency = <30000000>;
566 spi-tx-bus-width = <4>;
567 spi-rx-bus-width = <4>;
568 spi-cpha;
569 spi-cpol;
570 m25p,fast-read;
571
572 partitions {
573 compatible = "fixed-partitions";
574 #address-cells = <1>;
575 #size-cells = <1>;
576
577 partition@0 {
578 label = "loader";
579 reg = <0x00000000 0x00080000>;
580 read-only;
581 };
582 partition@80000 {
583 label = "user";
584 reg = <0x00080000 0x00580000>;
585 read-only;
586 };
587 partition@600000 {
588 label = "flash";
589 reg = <0x00600000 0x03a00000>;
590 };
591 };
592 };
593};
594
595&msiof0 {
596 pinctrl-0 = <&msiof0_pins>;
597 pinctrl-names = "default";
598
599 status = "okay";
600
601 pmic: pmic@0 {
602 compatible = "renesas,r2a11302ft";
603 reg = <0>;
604 spi-max-frequency = <6000000>;
605 spi-cpol;
606 spi-cpha;
607 };
608};
609
610&i2c1 {
611 pinctrl-0 = <&i2c1_pins>;
612 pinctrl-names = "i2c-exio1";
613};
614
615&i2c2 {
616 pinctrl-0 = <&i2c2_pins>;
617 pinctrl-names = "default";
618
619 status = "okay";
620 clock-frequency = <100000>;
621
622 ak4643: codec@12 {
623 compatible = "asahi-kasei,ak4643";
624 #sound-dai-cells = <0>;
625 reg = <0x12>;
626 };
627
628 composite-in@20 {
629 compatible = "adi,adv7180";
630 reg = <0x20>;
631 remote = <&vin1>;
632
633 port {
634 adv7180: endpoint {
635 bus-width = <8>;
636 remote-endpoint = <&vin1ep>;
637 };
638 };
639 };
640
641 cec_clock: cec-clock {
642 compatible = "fixed-clock";
643 #clock-cells = <0>;
644 clock-frequency = <12000000>;
645 };
646
647 hdmi@39 {
648 compatible = "adi,adv7511w";
649 reg = <0x39>;
650 interrupt-parent = <&gpio3>;
651 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
652 clocks = <&cec_clock>;
653 clock-names = "cec";
654
655 adi,input-depth = <8>;
656 adi,input-colorspace = "rgb";
657 adi,input-clock = "1x";
658 adi,input-style = <1>;
659 adi,input-justification = "evenly";
660
661 ports {
662 #address-cells = <1>;
663 #size-cells = <0>;
664
665 port@0 {
666 reg = <0>;
667 adv7511_in: endpoint {
668 remote-endpoint = <&du_out_rgb>;
669 };
670 };
671
672 port@1 {
673 reg = <1>;
674 adv7511_out: endpoint {
675 remote-endpoint = <&hdmi_con_out>;
676 };
677 };
678 };
679 };
680
681 hdmi-in@4c {
682 compatible = "adi,adv7612";
683 reg = <0x4c>;
684 interrupt-parent = <&gpio4>;
685 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
686 default-input = <0>;
687
688 ports {
689 #address-cells = <1>;
690 #size-cells = <0>;
691
692 port@0 {
693 reg = <0>;
694 adv7612_in: endpoint {
695 remote-endpoint = <&hdmi_con_in>;
696 };
697 };
698
699 port@2 {
700 reg = <2>;
701 adv7612_out: endpoint {
702 remote-endpoint = <&vin0ep2>;
703 };
704 };
705 };
706 };
707
708 eeprom@50 {
709 compatible = "renesas,24c02", "atmel,24c02";
710 reg = <0x50>;
711 pagesize = <16>;
712 };
713};
714
715&i2c6 {
716 status = "okay";
717 clock-frequency = <100000>;
718
719 pmic@58 {
720 compatible = "dlg,da9063";
721 reg = <0x58>;
722 interrupt-parent = <&irqc0>;
723 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
724 interrupt-controller;
725
726 rtc {
727 compatible = "dlg,da9063-rtc";
728 };
729
730 wdt {
731 compatible = "dlg,da9063-watchdog";
732 };
733 };
734
735 vdd_dvfs: regulator@68 {
736 compatible = "dlg,da9210";
737 reg = <0x68>;
738 interrupt-parent = <&irqc0>;
739 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
740
741 regulator-min-microvolt = <1000000>;
742 regulator-max-microvolt = <1000000>;
743 regulator-boot-on;
744 regulator-always-on;
745 };
746};
747
748&pci0 {
749 status = "okay";
750 pinctrl-0 = <&usb0_pins>;
751 pinctrl-names = "default";
752};
753
754&pci1 {
755 status = "okay";
756 pinctrl-0 = <&usb1_pins>;
757 pinctrl-names = "default";
758};
759
760&hsusb {
761 status = "okay";
762 pinctrl-0 = <&usb0_pins>;
763 pinctrl-names = "default";
764 renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
765};
766
767&usbphy {
768 status = "okay";
769};
770
771&pcie_bus_clk {
772 clock-frequency = <100000000>;
773};
774
775&pciec {
776 status = "okay";
777};
778
779&cpu0 {
780 cpu0-supply = <&vdd_dvfs>;
781};
782
783/* HDMI video input */
784&vin0 {
785 status = "okay";
786 pinctrl-0 = <&vin0_pins>;
787 pinctrl-names = "default";
788
789 port {
790 #address-cells = <1>;
791 #size-cells = <0>;
792
793 vin0ep2: endpoint {
794 remote-endpoint = <&adv7612_out>;
795 bus-width = <24>;
796 hsync-active = <0>;
797 vsync-active = <0>;
798 pclk-sample = <1>;
799 data-active = <1>;
800 };
801 };
802};
803
804/* composite video input */
805&vin1 {
806 status = "okay";
807 pinctrl-0 = <&vin1_pins>;
808 pinctrl-names = "default";
809
810 port {
811 #address-cells = <1>;
812 #size-cells = <0>;
813
814 vin1ep: endpoint {
815 remote-endpoint = <&adv7180>;
816 bus-width = <8>;
817 };
818 };
819};
820
821&rcar_sound {
822 pinctrl-0 = <&sound_pins &sound_clk_pins>;
823 pinctrl-names = "default";
824
825 /* Single DAI */
826 #sound-dai-cells = <0>;
827
828 status = "okay";
829
830 rcar_sound,dai {
831 dai0 {
832 playback = <&ssi0 &src2 &dvc0>;
833 capture = <&ssi1 &src3 &dvc1>;
834 };
835 };
836};
837
838&ssi1 {
839 shared-pin;
840};