[btrfs] fix check_direct_IO() for non-iovec iterators
[cascardo/linux.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                 one {
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                 two {
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                 three {
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                 four {
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: regulator-3v3 {
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-vcc-sdhi0 {
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-vccq-sdhi0 {
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-vcc-sdhi2 {
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-vccq-sdhi2 {
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: audio_clock {
180                 compatible = "fixed-clock";
181                 #clock-cells = <0>;
182                 clock-frequency = <11289600>;
183         };
184
185         rsnd_ak4643: sound {
186                 compatible = "simple-audio-card";
187
188                 simple-audio-card,format = "left_j";
189                 simple-audio-card,bitclock-master = <&sndcodec>;
190                 simple-audio-card,frame-master = <&sndcodec>;
191
192                 sndcpu: simple-audio-card,cpu {
193                         sound-dai = <&rcar_sound>;
194                 };
195
196                 sndcodec: simple-audio-card,codec {
197                         sound-dai = <&ak4643>;
198                         clocks = <&audio_clock>;
199                 };
200         };
201
202         vga-encoder {
203                 compatible = "adi,adv7123";
204
205                 ports {
206                         #address-cells = <1>;
207                         #size-cells = <0>;
208
209                         port@0 {
210                                 reg = <0>;
211                                 adv7123_in: endpoint {
212                                         remote-endpoint = <&du_out_rgb>;
213                                 };
214                         };
215                         port@1 {
216                                 reg = <1>;
217                                 adv7123_out: endpoint {
218                                         remote-endpoint = <&vga_in>;
219                                 };
220                         };
221                 };
222         };
223
224         vga {
225                 compatible = "vga-connector";
226
227                 port {
228                         vga_in: endpoint {
229                                 remote-endpoint = <&adv7123_out>;
230                         };
231                 };
232         };
233
234         hdmi-out {
235                 compatible = "hdmi-connector";
236                 type = "a";
237
238                 port {
239                         hdmi_con: endpoint {
240                                 remote-endpoint = <&adv7511_out>;
241                         };
242                 };
243         };
244
245         x2_clk: x2-clock {
246                 compatible = "fixed-clock";
247                 #clock-cells = <0>;
248                 clock-frequency = <148500000>;
249         };
250
251         x13_clk: x13-clock {
252                 compatible = "fixed-clock";
253                 #clock-cells = <0>;
254                 clock-frequency = <148500000>;
255         };
256
257         /*
258          * IIC0/I2C0 is routed to EXIO connector A, pins 114 (SCL) + 116 (SDA) only.
259          * We use the I2C demuxer, so the desired IP core can be selected at runtime
260          * depending on the use case (e.g. DMA with IIC0 or slave support with I2C0).
261          * Note: For testing the I2C slave feature, it is convenient to connect this
262          * bus with IIC3 on pins 110 (SCL) + 112 (SDA), select I2C0 at runtime, and
263          * instantiate the slave device at runtime according to the documentation.
264          * You can then communicate with the slave via IIC3.
265          */
266         i2cexio: i2c-8 {
267                 compatible = "i2c-demux-pinctrl";
268                 i2c-parent = <&iic0>, <&i2c0>;
269                 i2c-bus-name = "i2c-exio";
270                 #address-cells = <1>;
271                 #size-cells = <0>;
272         };
273 };
274
275 &du {
276         pinctrl-0 = <&du_pins>;
277         pinctrl-names = "default";
278         status = "okay";
279
280         clocks = <&mstp7_clks R8A7790_CLK_DU0>,
281                  <&mstp7_clks R8A7790_CLK_DU1>,
282                  <&mstp7_clks R8A7790_CLK_DU2>,
283                  <&mstp7_clks R8A7790_CLK_LVDS0>,
284                  <&mstp7_clks R8A7790_CLK_LVDS1>,
285                  <&x13_clk>, <&x2_clk>;
286         clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1",
287                       "dclkin.0", "dclkin.1";
288
289         ports {
290                 port@0 {
291                         endpoint {
292                                 remote-endpoint = <&adv7123_in>;
293                         };
294                 };
295                 port@1 {
296                         endpoint {
297                                 remote-endpoint = <&adv7511_in>;
298                         };
299                 };
300                 port@2 {
301                         lvds_connector: endpoint {
302                         };
303                 };
304         };
305 };
306
307 &extal_clk {
308         clock-frequency = <20000000>;
309 };
310
311 &pfc {
312         pinctrl-0 = <&scif_clk_pins>;
313         pinctrl-names = "default";
314
315         du_pins: du {
316                 groups = "du_rgb666", "du_sync_1", "du_clk_out_0";
317                 function = "du";
318         };
319
320         scif0_pins: scif0 {
321                 groups = "scif0_data";
322                 function = "scif0";
323         };
324
325         scif_clk_pins: scif_clk {
326                 groups = "scif_clk";
327                 function = "scif_clk";
328         };
329
330         ether_pins: ether {
331                 groups = "eth_link", "eth_mdio", "eth_rmii";
332                 function = "eth";
333         };
334
335         phy1_pins: phy1 {
336                 groups = "intc_irq0";
337                 function = "intc";
338         };
339
340         scifa1_pins: scifa1 {
341                 groups = "scifa1_data";
342                 function = "scifa1";
343         };
344
345         sdhi0_pins: sd0 {
346                 groups = "sdhi0_data4", "sdhi0_ctrl";
347                 function = "sdhi0";
348                 power-source = <3300>;
349         };
350
351         sdhi0_pins_uhs: sd0_uhs {
352                 groups = "sdhi0_data4", "sdhi0_ctrl";
353                 function = "sdhi0";
354                 power-source = <1800>;
355         };
356
357         sdhi2_pins: sd2 {
358                 groups = "sdhi2_data4", "sdhi2_ctrl";
359                 function = "sdhi2";
360                 power-source = <3300>;
361         };
362
363         sdhi2_pins_uhs: sd2_uhs {
364                 groups = "sdhi2_data4", "sdhi2_ctrl";
365                 function = "sdhi2";
366                 power-source = <1800>;
367         };
368
369         mmc1_pins: mmc1 {
370                 groups = "mmc1_data8", "mmc1_ctrl";
371                 function = "mmc1";
372         };
373
374         qspi_pins: qspi {
375                 groups = "qspi_ctrl", "qspi_data4";
376                 function = "qspi";
377         };
378
379         msiof1_pins: msiof1 {
380                 groups = "msiof1_clk", "msiof1_sync", "msiof1_rx",
381                                  "msiof1_tx";
382                 function = "msiof1";
383         };
384
385         i2c0_pins: i2c0 {
386                 groups = "i2c0";
387                 function = "i2c0";
388         };
389
390         iic0_pins: iic0 {
391                 groups = "iic0";
392                 function = "iic0";
393         };
394
395         iic1_pins: iic1 {
396                 groups = "iic1";
397                 function = "iic1";
398         };
399
400         iic2_pins: iic2 {
401                 groups = "iic2";
402                 function = "iic2";
403         };
404
405         iic3_pins: iic3 {
406                 groups = "iic3";
407                 function = "iic3";
408         };
409
410         hsusb_pins: hsusb {
411                 groups = "usb0_ovc_vbus";
412                 function = "usb0";
413         };
414
415         usb0_pins: usb0 {
416                 groups = "usb0";
417                 function = "usb0";
418         };
419
420         usb1_pins: usb1 {
421                 groups = "usb1";
422                 function = "usb1";
423         };
424
425         usb2_pins: usb2 {
426                 groups = "usb2";
427                 function = "usb2";
428         };
429
430         vin1_pins: vin1 {
431                 groups = "vin1_data8", "vin1_clk";
432                 function = "vin1";
433         };
434
435         sound_pins: sound {
436                 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
437                 function = "ssi";
438         };
439
440         sound_clk_pins: sound_clk {
441                 groups = "audio_clk_a";
442                 function = "audio_clk";
443         };
444 };
445
446 &ether {
447         pinctrl-0 = <&ether_pins &phy1_pins>;
448         pinctrl-names = "default";
449
450         phy-handle = <&phy1>;
451         renesas,ether-link-active-low;
452         status = "okay";
453
454         phy1: ethernet-phy@1 {
455                 reg = <1>;
456                 interrupt-parent = <&irqc0>;
457                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
458                 micrel,led-mode = <1>;
459         };
460 };
461
462 &cmt0 {
463         status = "okay";
464 };
465
466 &mmcif1 {
467         pinctrl-0 = <&mmc1_pins>;
468         pinctrl-names = "default";
469
470         vmmc-supply = <&fixedregulator3v3>;
471         bus-width = <8>;
472         non-removable;
473         status = "okay";
474 };
475
476 &sata1 {
477         status = "okay";
478 };
479
480 &qspi {
481         pinctrl-0 = <&qspi_pins>;
482         pinctrl-names = "default";
483
484         status = "okay";
485
486         flash: flash@0 {
487                 compatible = "spansion,s25fl512s", "jedec,spi-nor";
488                 reg = <0>;
489                 spi-max-frequency = <30000000>;
490                 spi-tx-bus-width = <4>;
491                 spi-rx-bus-width = <4>;
492                 spi-cpha;
493                 spi-cpol;
494                 m25p,fast-read;
495
496                 partitions {
497                         compatible = "fixed-partitions";
498                         #address-cells = <1>;
499                         #size-cells = <1>;
500
501                         partition@0 {
502                                 label = "loader";
503                                 reg = <0x00000000 0x00040000>;
504                                 read-only;
505                         };
506                         partition@40000 {
507                                 label = "user";
508                                 reg = <0x00040000 0x00400000>;
509                                 read-only;
510                         };
511                         partition@440000 {
512                                 label = "flash";
513                                 reg = <0x00440000 0x03bc0000>;
514                         };
515                 };
516         };
517 };
518
519 &scif0 {
520         pinctrl-0 = <&scif0_pins>;
521         pinctrl-names = "default";
522
523         status = "okay";
524 };
525
526 &scifa1 {
527         pinctrl-0 = <&scifa1_pins>;
528         pinctrl-names = "default";
529
530         status = "okay";
531 };
532
533 &scif_clk {
534         clock-frequency = <14745600>;
535         status = "okay";
536 };
537
538 &msiof1 {
539         pinctrl-0 = <&msiof1_pins>;
540         pinctrl-names = "default";
541
542         status = "okay";
543
544         pmic: pmic@0 {
545                 compatible = "renesas,r2a11302ft";
546                 reg = <0>;
547                 spi-max-frequency = <6000000>;
548                 spi-cpol;
549                 spi-cpha;
550         };
551 };
552
553 &sdhi0 {
554         pinctrl-0 = <&sdhi0_pins>;
555         pinctrl-1 = <&sdhi0_pins_uhs>;
556         pinctrl-names = "default", "state_uhs";
557
558         vmmc-supply = <&vcc_sdhi0>;
559         vqmmc-supply = <&vccq_sdhi0>;
560         cd-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
561         sd-uhs-sdr50;
562         status = "okay";
563 };
564
565 &sdhi2 {
566         pinctrl-0 = <&sdhi2_pins>;
567         pinctrl-1 = <&sdhi2_pins_uhs>;
568         pinctrl-names = "default", "state_uhs";
569
570         vmmc-supply = <&vcc_sdhi2>;
571         vqmmc-supply = <&vccq_sdhi2>;
572         cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
573         sd-uhs-sdr50;
574         status = "okay";
575 };
576
577 &cpu0 {
578         cpu0-supply = <&vdd_dvfs>;
579 };
580
581 &i2c0   {
582         pinctrl-0 = <&i2c0_pins>;
583         pinctrl-names = "i2c-exio";
584 };
585
586 &iic0   {
587         pinctrl-0 = <&iic0_pins>;
588         pinctrl-names = "i2c-exio";
589 };
590
591 &iic1   {
592         status = "okay";
593         pinctrl-0 = <&iic1_pins>;
594         pinctrl-names = "default";
595 };
596
597 &iic2   {
598         status = "okay";
599         pinctrl-0 = <&iic2_pins>;
600         pinctrl-names = "default";
601
602         clock-frequency = <100000>;
603
604         ak4643: codec@12 {
605                 compatible = "asahi-kasei,ak4643";
606                 #sound-dai-cells = <0>;
607                 reg = <0x12>;
608         };
609
610         composite-in@20 {
611                 compatible = "adi,adv7180";
612                 reg = <0x20>;
613                 remote = <&vin1>;
614
615                 port {
616                         adv7180: endpoint {
617                                 bus-width = <8>;
618                                 remote-endpoint = <&vin1ep0>;
619                         };
620                 };
621         };
622
623         hdmi@39 {
624                 compatible = "adi,adv7511w";
625                 reg = <0x39>;
626                 interrupt-parent = <&gpio1>;
627                 interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
628
629                 adi,input-depth = <8>;
630                 adi,input-colorspace = "rgb";
631                 adi,input-clock = "1x";
632                 adi,input-style = <1>;
633                 adi,input-justification = "evenly";
634
635                 ports {
636                         #address-cells = <1>;
637                         #size-cells = <0>;
638
639                         port@0 {
640                                 reg = <0>;
641                                 adv7511_in: endpoint {
642                                         remote-endpoint = <&du_out_lvds0>;
643                                 };
644                         };
645
646                         port@1 {
647                                 reg = <1>;
648                                 adv7511_out: endpoint {
649                                         remote-endpoint = <&hdmi_con>;
650                                 };
651                         };
652                 };
653         };
654 };
655
656 &iic3 {
657         pinctrl-names = "default";
658         pinctrl-0 = <&iic3_pins>;
659         status = "okay";
660
661         pmic@58 {
662                 compatible = "dlg,da9063";
663                 reg = <0x58>;
664                 interrupt-parent = <&irqc0>;
665                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
666                 interrupt-controller;
667
668                 rtc {
669                         compatible = "dlg,da9063-rtc";
670                 };
671
672                 wdt {
673                         compatible = "dlg,da9063-watchdog";
674                 };
675         };
676
677         vdd_dvfs: regulator@68 {
678                 compatible = "dlg,da9210";
679                 reg = <0x68>;
680                 interrupt-parent = <&irqc0>;
681                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
682
683                 regulator-min-microvolt = <1000000>;
684                 regulator-max-microvolt = <1000000>;
685                 regulator-boot-on;
686                 regulator-always-on;
687         };
688 };
689
690 &pci0 {
691         status = "okay";
692         pinctrl-0 = <&usb0_pins>;
693         pinctrl-names = "default";
694 };
695
696 &pci1 {
697         status = "okay";
698         pinctrl-0 = <&usb1_pins>;
699         pinctrl-names = "default";
700 };
701
702 &xhci {
703         status = "okay";
704         pinctrl-0 = <&usb2_pins>;
705         pinctrl-names = "default";
706 };
707
708 &pci2 {
709         status = "okay";
710         pinctrl-0 = <&usb2_pins>;
711         pinctrl-names = "default";
712 };
713
714 &hsusb {
715         status = "okay";
716         pinctrl-0 = <&hsusb_pins>;
717         pinctrl-names = "default";
718         renesas,enable-gpio = <&gpio5 18 GPIO_ACTIVE_HIGH>;
719 };
720
721 &usbphy {
722         status = "okay";
723 };
724
725 /* composite video input */
726 &vin1 {
727         pinctrl-0 = <&vin1_pins>;
728         pinctrl-names = "default";
729
730         status = "okay";
731
732         port {
733                 #address-cells = <1>;
734                 #size-cells = <0>;
735
736                 vin1ep0: endpoint {
737                         remote-endpoint = <&adv7180>;
738                         bus-width = <8>;
739                 };
740         };
741 };
742
743 &rcar_sound {
744         pinctrl-0 = <&sound_pins &sound_clk_pins>;
745         pinctrl-names = "default";
746
747         /* Single DAI */
748         #sound-dai-cells = <0>;
749
750         status = "okay";
751
752         rcar_sound,dai {
753                 dai0 {
754                         playback = <&ssi0 &src2 &dvc0>;
755                         capture  = <&ssi1 &src3 &dvc1>;
756                 };
757         };
758 };
759
760 &ssi1 {
761         shared-pin;
762 };