Merge tag 'media/v4.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[sfrench/cifs-2.6.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         };
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@0 {
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@1 {
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@2 {
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@3 {
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@4 {
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@5 {
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-out {
269                 compatible = "hdmi-connector";
270                 type = "a";
271
272                 port {
273                         hdmi_con: endpoint {
274                                 remote-endpoint = <&adv7511_out>;
275                         };
276                 };
277         };
278
279         x2_clk: x2-clock {
280                 compatible = "fixed-clock";
281                 #clock-cells = <0>;
282                 clock-frequency = <148500000>;
283         };
284
285         x13_clk: x13-clock {
286                 compatible = "fixed-clock";
287                 #clock-cells = <0>;
288                 clock-frequency = <148500000>;
289         };
290 };
291
292 &du {
293         pinctrl-0 = <&du_pins>;
294         pinctrl-names = "default";
295         status = "okay";
296
297         clocks = <&mstp7_clks R8A7791_CLK_DU0>,
298                  <&mstp7_clks R8A7791_CLK_DU1>,
299                  <&mstp7_clks R8A7791_CLK_LVDS0>,
300                  <&x13_clk>, <&x2_clk>;
301         clock-names = "du.0", "du.1", "lvds.0",
302                       "dclkin.0", "dclkin.1";
303
304         ports {
305                 port@0 {
306                         endpoint {
307                                 remote-endpoint = <&adv7511_in>;
308                         };
309                 };
310                 port@1 {
311                         lvds_connector: endpoint {
312                         };
313                 };
314         };
315 };
316
317 &extal_clk {
318         clock-frequency = <20000000>;
319 };
320
321 &pfc {
322         pinctrl-0 = <&scif_clk_pins>;
323         pinctrl-names = "default";
324
325         i2c2_pins: i2c2 {
326                 groups = "i2c2";
327                 function = "i2c2";
328         };
329
330         du_pins: du {
331                 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
332                 function = "du";
333         };
334
335         scif0_pins: serial0 {
336                 groups = "scif0_data_d";
337                 function = "scif0";
338         };
339
340         scif1_pins: serial1 {
341                 groups = "scif1_data_d";
342                 function = "scif1";
343         };
344
345         scif_clk_pins: scif_clk {
346                 groups = "scif_clk";
347                 function = "scif_clk";
348         };
349
350         ether_pins: ether {
351                 groups = "eth_link", "eth_mdio", "eth_rmii";
352                 function = "eth";
353         };
354
355         phy1_pins: phy1 {
356                 groups = "intc_irq0";
357                 function = "intc";
358         };
359
360         sdhi0_pins: sd0 {
361                 groups = "sdhi0_data4", "sdhi0_ctrl";
362                 function = "sdhi0";
363         };
364
365         sdhi1_pins: sd1 {
366                 groups = "sdhi1_data4", "sdhi1_ctrl";
367                 function = "sdhi1";
368         };
369
370         sdhi2_pins: sd2 {
371                 groups = "sdhi2_data4", "sdhi2_ctrl";
372                 function = "sdhi2";
373         };
374
375         qspi_pins: spi0 {
376                 groups = "qspi_ctrl", "qspi_data4";
377                 function = "qspi";
378         };
379
380         msiof0_pins: spi1 {
381                 groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
382                                  "msiof0_tx";
383                 function = "msiof0";
384         };
385
386         usb0_pins: usb0 {
387                 groups = "usb0";
388                 function = "usb0";
389         };
390
391         usb1_pins: usb1 {
392                 groups = "usb1";
393                 function = "usb1";
394         };
395
396         vin1_pins: vin1 {
397                 groups = "vin1_data8", "vin1_clk";
398                 function = "vin1";
399         };
400
401         sound_pins: sound {
402                 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
403                 function = "ssi";
404         };
405
406         sound_clk_pins: sound_clk {
407                 groups = "audio_clk_a";
408                 function = "audio_clk";
409         };
410 };
411
412 &ether {
413         pinctrl-0 = <&ether_pins &phy1_pins>;
414         pinctrl-names = "default";
415
416         phy-handle = <&phy1>;
417         renesas,ether-link-active-low;
418         status = "okay";
419
420         phy1: ethernet-phy@1 {
421                 reg = <1>;
422                 interrupt-parent = <&irqc0>;
423                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
424                 micrel,led-mode = <1>;
425         };
426 };
427
428 &cmt0 {
429         status = "okay";
430 };
431
432 &sata0 {
433         status = "okay";
434 };
435
436 &scif0 {
437         pinctrl-0 = <&scif0_pins>;
438         pinctrl-names = "default";
439
440         status = "okay";
441 };
442
443 &scif1 {
444         pinctrl-0 = <&scif1_pins>;
445         pinctrl-names = "default";
446
447         status = "okay";
448 };
449
450 &scif_clk {
451         clock-frequency = <14745600>;
452         status = "okay";
453 };
454
455 &sdhi0 {
456         pinctrl-0 = <&sdhi0_pins>;
457         pinctrl-names = "default";
458
459         vmmc-supply = <&vcc_sdhi0>;
460         vqmmc-supply = <&vccq_sdhi0>;
461         cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
462         wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
463         status = "okay";
464 };
465
466 &sdhi1 {
467         pinctrl-0 = <&sdhi1_pins>;
468         pinctrl-names = "default";
469
470         vmmc-supply = <&vcc_sdhi1>;
471         vqmmc-supply = <&vccq_sdhi1>;
472         cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
473         wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
474         status = "okay";
475 };
476
477 &sdhi2 {
478         pinctrl-0 = <&sdhi2_pins>;
479         pinctrl-names = "default";
480
481         vmmc-supply = <&vcc_sdhi2>;
482         vqmmc-supply = <&vccq_sdhi2>;
483         cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
484         status = "okay";
485 };
486
487 &qspi {
488         pinctrl-0 = <&qspi_pins>;
489         pinctrl-names = "default";
490
491         status = "okay";
492
493         flash: flash@0 {
494                 compatible = "spansion,s25fl512s", "jedec,spi-nor";
495                 reg = <0>;
496                 spi-max-frequency = <30000000>;
497                 spi-tx-bus-width = <4>;
498                 spi-rx-bus-width = <4>;
499                 spi-cpha;
500                 spi-cpol;
501                 m25p,fast-read;
502
503                 partitions {
504                         compatible = "fixed-partitions";
505                         #address-cells = <1>;
506                         #size-cells = <1>;
507
508                         partition@0 {
509                                 label = "loader";
510                                 reg = <0x00000000 0x00080000>;
511                                 read-only;
512                         };
513                         partition@80000 {
514                                 label = "user";
515                                 reg = <0x00080000 0x00580000>;
516                                 read-only;
517                         };
518                         partition@600000 {
519                                 label = "flash";
520                                 reg = <0x00600000 0x03a00000>;
521                         };
522                 };
523         };
524 };
525
526 &msiof0 {
527         pinctrl-0 = <&msiof0_pins>;
528         pinctrl-names = "default";
529
530         status = "okay";
531
532         pmic: pmic@0 {
533                 compatible = "renesas,r2a11302ft";
534                 reg = <0>;
535                 spi-max-frequency = <6000000>;
536                 spi-cpol;
537                 spi-cpha;
538         };
539 };
540
541 &i2c2 {
542         pinctrl-0 = <&i2c2_pins>;
543         pinctrl-names = "default";
544
545         status = "okay";
546         clock-frequency = <100000>;
547
548         ak4643: codec@12 {
549                 compatible = "asahi-kasei,ak4643";
550                 #sound-dai-cells = <0>;
551                 reg = <0x12>;
552         };
553
554         composite-in@20 {
555                 compatible = "adi,adv7180";
556                 reg = <0x20>;
557                 remote = <&vin1>;
558
559                 port {
560                         adv7180: endpoint {
561                                 bus-width = <8>;
562                                 remote-endpoint = <&vin1ep>;
563                         };
564                 };
565         };
566
567         hdmi@39 {
568                 compatible = "adi,adv7511w";
569                 reg = <0x39>;
570                 interrupt-parent = <&gpio3>;
571                 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
572
573                 adi,input-depth = <8>;
574                 adi,input-colorspace = "rgb";
575                 adi,input-clock = "1x";
576                 adi,input-style = <1>;
577                 adi,input-justification = "evenly";
578
579                 ports {
580                         #address-cells = <1>;
581                         #size-cells = <0>;
582
583                         port@0 {
584                                 reg = <0>;
585                                 adv7511_in: endpoint {
586                                         remote-endpoint = <&du_out_rgb>;
587                                 };
588                         };
589
590                         port@1 {
591                                 reg = <1>;
592                                 adv7511_out: endpoint {
593                                         remote-endpoint = <&hdmi_con>;
594                                 };
595                         };
596                 };
597         };
598
599         eeprom@50 {
600                 compatible = "renesas,24c02";
601                 reg = <0x50>;
602                 pagesize = <16>;
603         };
604 };
605
606 &i2c6 {
607         status = "okay";
608         clock-frequency = <100000>;
609
610         pmic@58 {
611                 compatible = "dlg,da9063";
612                 reg = <0x58>;
613                 interrupt-parent = <&irqc0>;
614                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
615                 interrupt-controller;
616
617                 rtc {
618                         compatible = "dlg,da9063-rtc";
619                 };
620
621                 wdt {
622                         compatible = "dlg,da9063-watchdog";
623                 };
624         };
625
626         vdd_dvfs: regulator@68 {
627                 compatible = "dlg,da9210";
628                 reg = <0x68>;
629                 interrupt-parent = <&irqc0>;
630                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
631
632                 regulator-min-microvolt = <1000000>;
633                 regulator-max-microvolt = <1000000>;
634                 regulator-boot-on;
635                 regulator-always-on;
636         };
637 };
638
639 &pci0 {
640         status = "okay";
641         pinctrl-0 = <&usb0_pins>;
642         pinctrl-names = "default";
643 };
644
645 &pci1 {
646         status = "okay";
647         pinctrl-0 = <&usb1_pins>;
648         pinctrl-names = "default";
649 };
650
651 &hsusb {
652         status = "okay";
653         pinctrl-0 = <&usb0_pins>;
654         pinctrl-names = "default";
655         renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
656 };
657
658 &usbphy {
659         status = "okay";
660 };
661
662 &pcie_bus_clk {
663         clock-frequency = <100000000>;
664         status = "okay";
665 };
666
667 &pciec {
668         status = "okay";
669 };
670
671 &cpu0 {
672         cpu0-supply = <&vdd_dvfs>;
673 };
674
675 /* composite video input */
676 &vin1 {
677         status = "okay";
678         pinctrl-0 = <&vin1_pins>;
679         pinctrl-names = "default";
680
681         port {
682                 #address-cells = <1>;
683                 #size-cells = <0>;
684
685                 vin1ep: endpoint {
686                         remote-endpoint = <&adv7180>;
687                         bus-width = <8>;
688                 };
689         };
690 };
691
692 &rcar_sound {
693         pinctrl-0 = <&sound_pins &sound_clk_pins>;
694         pinctrl-names = "default";
695
696         /* Single DAI */
697         #sound-dai-cells = <0>;
698
699         status = "okay";
700
701         rcar_sound,dai {
702                 dai0 {
703                         playback = <&ssi0 &src2 &dvc0>;
704                         capture  = <&ssi1 &src3 &dvc1>;
705                 };
706         };
707 };
708
709 &ssi1 {
710         shared-pin;
711 };