Merge tag 'for-linus-4.4-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git...
[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  *
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 };