Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
[deliverable/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 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 };
This page took 0.046279 seconds and 5 git commands to generate.