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