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