SPDX: Convert all of our single license tags to Linux Kernel style
[oweals/u-boot.git] / arch / arm / dts / r8a7793-gose.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the Gose board
4  *
5  * Copyright (C) 2014-2015 Renesas Electronics Corporation
6  */
7
8 /*
9  * SSI-AK4643
10  *
11  * SW1: 1: AK4643
12  *      2: CN22
13  *      3: ADV7511
14  *
15  * This command is required when Playback/Capture
16  *
17  *      amixer set "LINEOUT Mixer DACL" on
18  *      amixer set "DVC Out" 100%
19  *      amixer set "DVC In" 100%
20  *
21  * You can use Mute
22  *
23  *      amixer set "DVC Out Mute" on
24  *      amixer set "DVC In Mute" on
25  *
26  * You can use Volume Ramp
27  *
28  *      amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
29  *      amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
30  *      amixer set "DVC Out Ramp" on
31  *      aplay xxx.wav &
32  *      amixer set "DVC Out"  80%  // Volume Down
33  *      amixer set "DVC Out" 100%  // Volume Up
34  */
35
36 /dts-v1/;
37 #include "r8a7793.dtsi"
38 #include <dt-bindings/gpio/gpio.h>
39 #include <dt-bindings/input/input.h>
40
41 / {
42         model = "Gose";
43         compatible = "renesas,gose", "renesas,r8a7793";
44
45         aliases {
46                 serial0 = &scif0;
47                 serial1 = &scif1;
48         };
49
50         chosen {
51                 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
52                 stdout-path = "serial0:115200n8";
53         };
54
55         memory@40000000 {
56                 device_type = "memory";
57                 reg = <0 0x40000000 0 0x40000000>;
58         };
59
60         gpio-keys {
61                 compatible = "gpio-keys";
62
63                 key-1 {
64                         gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
65                         linux,code = <KEY_1>;
66                         label = "SW2-1";
67                         wakeup-source;
68                         debounce-interval = <20>;
69                 };
70                 key-2 {
71                         gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
72                         linux,code = <KEY_2>;
73                         label = "SW2-2";
74                         wakeup-source;
75                         debounce-interval = <20>;
76                 };
77                 key-3 {
78                         gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
79                         linux,code = <KEY_3>;
80                         label = "SW2-3";
81                         wakeup-source;
82                         debounce-interval = <20>;
83                 };
84                 key-4 {
85                         gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
86                         linux,code = <KEY_4>;
87                         label = "SW2-4";
88                         wakeup-source;
89                         debounce-interval = <20>;
90                 };
91                 key-a {
92                         gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
93                         linux,code = <KEY_A>;
94                         label = "SW30";
95                         wakeup-source;
96                         debounce-interval = <20>;
97                 };
98                 key-b {
99                         gpios = <&gpio7 1 GPIO_ACTIVE_LOW>;
100                         linux,code = <KEY_B>;
101                         label = "SW31";
102                         wakeup-source;
103                         debounce-interval = <20>;
104                 };
105                 key-c {
106                         gpios = <&gpio7 2 GPIO_ACTIVE_LOW>;
107                         linux,code = <KEY_C>;
108                         label = "SW32";
109                         wakeup-source;
110                         debounce-interval = <20>;
111                 };
112                 key-d {
113                         gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
114                         linux,code = <KEY_D>;
115                         label = "SW33";
116                         wakeup-source;
117                         debounce-interval = <20>;
118                 };
119                 key-e {
120                         gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
121                         linux,code = <KEY_E>;
122                         label = "SW34";
123                         wakeup-source;
124                         debounce-interval = <20>;
125                 };
126                 key-f {
127                         gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
128                         linux,code = <KEY_F>;
129                         label = "SW35";
130                         wakeup-source;
131                         debounce-interval = <20>;
132                 };
133                 key-g {
134                         gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
135                         linux,code = <KEY_G>;
136                         label = "SW36";
137                         wakeup-source;
138                         debounce-interval = <20>;
139                 };
140         };
141
142         leds {
143                 compatible = "gpio-leds";
144                 led6 {
145                         gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
146                         label = "LED6";
147                 };
148                 led7 {
149                         gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
150                         label = "LED7";
151                 };
152                 led8 {
153                         gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
154                         label = "LED8";
155                 };
156         };
157
158         vcc_sdhi0: regulator-vcc-sdhi0 {
159                 compatible = "regulator-fixed";
160
161                 regulator-name = "SDHI0 Vcc";
162                 regulator-min-microvolt = <3300000>;
163                 regulator-max-microvolt = <3300000>;
164
165                 gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>;
166                 enable-active-high;
167         };
168
169         vccq_sdhi0: regulator-vccq-sdhi0 {
170                 compatible = "regulator-gpio";
171
172                 regulator-name = "SDHI0 VccQ";
173                 regulator-min-microvolt = <1800000>;
174                 regulator-max-microvolt = <3300000>;
175
176                 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
177                 gpios-states = <1>;
178                 states = <3300000 1
179                           1800000 0>;
180         };
181
182         vcc_sdhi1: regulator-vcc-sdhi1 {
183                 compatible = "regulator-fixed";
184
185                 regulator-name = "SDHI1 Vcc";
186                 regulator-min-microvolt = <3300000>;
187                 regulator-max-microvolt = <3300000>;
188
189                 gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>;
190                 enable-active-high;
191         };
192
193         vccq_sdhi1: regulator-vccq-sdhi1 {
194                 compatible = "regulator-gpio";
195
196                 regulator-name = "SDHI1 VccQ";
197                 regulator-min-microvolt = <1800000>;
198                 regulator-max-microvolt = <3300000>;
199
200                 gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
201                 gpios-states = <1>;
202                 states = <3300000 1
203                           1800000 0>;
204         };
205
206         vcc_sdhi2: regulator-vcc-sdhi2 {
207                 compatible = "regulator-fixed";
208
209                 regulator-name = "SDHI2 Vcc";
210                 regulator-min-microvolt = <3300000>;
211                 regulator-max-microvolt = <3300000>;
212
213                 gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>;
214                 enable-active-high;
215         };
216
217         vccq_sdhi2: regulator-vccq-sdhi2 {
218                 compatible = "regulator-gpio";
219
220                 regulator-name = "SDHI2 VccQ";
221                 regulator-min-microvolt = <1800000>;
222                 regulator-max-microvolt = <3300000>;
223
224                 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
225                 gpios-states = <1>;
226                 states = <3300000 1
227                           1800000 0>;
228         };
229
230         audio_clock: audio_clock {
231                 compatible = "fixed-clock";
232                 #clock-cells = <0>;
233                 clock-frequency = <11289600>;
234         };
235
236         rsnd_ak4643: sound {
237                 compatible = "simple-audio-card";
238
239                 simple-audio-card,format = "left_j";
240                 simple-audio-card,bitclock-master = <&sndcodec>;
241                 simple-audio-card,frame-master = <&sndcodec>;
242
243                 sndcpu: simple-audio-card,cpu {
244                         sound-dai = <&rcar_sound>;
245                 };
246
247                 sndcodec: simple-audio-card,codec {
248                         sound-dai = <&ak4643>;
249                         clocks = <&audio_clock>;
250                 };
251         };
252
253         hdmi-in {
254                 compatible = "hdmi-connector";
255                 type = "a";
256
257                 port {
258                         hdmi_con_in: endpoint {
259                                 remote-endpoint = <&adv7612_in>;
260                         };
261                 };
262         };
263
264         hdmi-out {
265                 compatible = "hdmi-connector";
266                 type = "a";
267
268                 port {
269                         hdmi_con_out: endpoint {
270                                 remote-endpoint = <&adv7511_out>;
271                         };
272                 };
273         };
274
275         composite-in {
276                 compatible = "composite-video-connector";
277
278                 port {
279                         composite_con_in: endpoint {
280                                 remote-endpoint = <&adv7180_in>;
281                         };
282                 };
283         };
284
285         x2_clk: x2-clock {
286                 compatible = "fixed-clock";
287                 #clock-cells = <0>;
288                 clock-frequency = <74250000>;
289         };
290
291         x13_clk: x13-clock {
292                 compatible = "fixed-clock";
293                 #clock-cells = <0>;
294                 clock-frequency = <148500000>;
295         };
296 };
297
298 &du {
299         pinctrl-0 = <&du_pins>;
300         pinctrl-names = "default";
301         status = "okay";
302
303         clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>,
304                  <&x13_clk>, <&x2_clk>;
305         clock-names = "du.0", "du.1", "lvds.0",
306                       "dclkin.0", "dclkin.1";
307
308         ports {
309                 port@0 {
310                         endpoint {
311                                 remote-endpoint = <&adv7511_in>;
312                         };
313                 };
314                 port@1 {
315                         lvds_connector: endpoint {
316                         };
317                 };
318         };
319 };
320
321 &extal_clk {
322         clock-frequency = <20000000>;
323 };
324
325 &pfc {
326         pinctrl-0 = <&scif_clk_pins>;
327         pinctrl-names = "default";
328
329         i2c2_pins: i2c2 {
330                 groups = "i2c2";
331                 function = "i2c2";
332         };
333
334         du_pins: du {
335                 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
336                 function = "du";
337         };
338
339         scif0_pins: scif0 {
340                 groups = "scif0_data_d";
341                 function = "scif0";
342         };
343
344         scif1_pins: scif1 {
345                 groups = "scif1_data_d";
346                 function = "scif1";
347         };
348
349         scif_clk_pins: scif_clk {
350                 groups = "scif_clk";
351                 function = "scif_clk";
352         };
353
354         ether_pins: ether {
355                 groups = "eth_link", "eth_mdio", "eth_rmii";
356                 function = "eth";
357         };
358
359         phy1_pins: phy1 {
360                 groups = "intc_irq0";
361                 function = "intc";
362         };
363
364         sdhi0_pins: sd0 {
365                 groups = "sdhi0_data4", "sdhi0_ctrl";
366                 function = "sdhi0";
367                 power-source = <3300>;
368         };
369
370         sdhi0_pins_uhs: sd0_uhs {
371                 groups = "sdhi0_data4", "sdhi0_ctrl";
372                 function = "sdhi0";
373                 power-source = <1800>;
374         };
375
376         sdhi1_pins: sd1 {
377                 groups = "sdhi1_data4", "sdhi1_ctrl";
378                 function = "sdhi1";
379                 power-source = <3300>;
380         };
381
382         sdhi1_pins_uhs: sd1_uhs {
383                 groups = "sdhi1_data4", "sdhi1_ctrl";
384                 function = "sdhi1";
385                 power-source = <1800>;
386         };
387
388         sdhi2_pins: sd2 {
389                 groups = "sdhi2_data4", "sdhi2_ctrl";
390                 function = "sdhi2";
391                 power-source = <3300>;
392         };
393
394         sdhi2_pins_uhs: sd2_uhs {
395                 groups = "sdhi2_data4", "sdhi2_ctrl";
396                 function = "sdhi2";
397                 power-source = <1800>;
398         };
399
400         qspi_pins: qspi {
401                 groups = "qspi_ctrl", "qspi_data4";
402                 function = "qspi";
403         };
404
405         sound_pins: sound {
406                 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
407                 function = "ssi";
408         };
409
410         sound_clk_pins: sound_clk {
411                 groups = "audio_clk_a";
412                 function = "audio_clk";
413         };
414
415         vin0_pins: vin0 {
416                 groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
417                 function = "vin0";
418         };
419
420         vin1_pins: vin1 {
421                 groups = "vin1_data8", "vin1_clk";
422                 function = "vin1";
423         };
424 };
425
426 &ether {
427         pinctrl-0 = <&ether_pins &phy1_pins>;
428         pinctrl-names = "default";
429
430         phy-handle = <&phy1>;
431         renesas,ether-link-active-low;
432         status = "okay";
433
434         phy1: ethernet-phy@1 {
435                 reg = <1>;
436                 interrupt-parent = <&irqc0>;
437                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
438                 micrel,led-mode = <1>;
439         };
440 };
441
442 &cmt0 {
443         status = "okay";
444 };
445
446 &scif0 {
447         pinctrl-0 = <&scif0_pins>;
448         pinctrl-names = "default";
449
450         status = "okay";
451 };
452
453 &scif1 {
454         pinctrl-0 = <&scif1_pins>;
455         pinctrl-names = "default";
456
457         status = "okay";
458 };
459
460 &scif_clk {
461         clock-frequency = <14745600>;
462 };
463
464 &sdhi0 {
465         pinctrl-0 = <&sdhi0_pins>;
466         pinctrl-1 = <&sdhi0_pins_uhs>;
467         pinctrl-names = "default", "state_uhs";
468
469         vmmc-supply = <&vcc_sdhi0>;
470         vqmmc-supply = <&vccq_sdhi0>;
471         cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
472         wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
473         sd-uhs-sdr50;
474         sd-uhs-sdr104;
475         status = "okay";
476 };
477
478 &sdhi1 {
479         pinctrl-0 = <&sdhi1_pins>;
480         pinctrl-1 = <&sdhi1_pins_uhs>;
481         pinctrl-names = "default", "state_uhs";
482
483         vmmc-supply = <&vcc_sdhi1>;
484         vqmmc-supply = <&vccq_sdhi1>;
485         cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
486         wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
487         sd-uhs-sdr50;
488         status = "okay";
489 };
490
491 &sdhi2 {
492         pinctrl-0 = <&sdhi2_pins>;
493         pinctrl-1 = <&sdhi2_pins_uhs>;
494         pinctrl-names = "default", "state_uhs";
495
496         vmmc-supply = <&vcc_sdhi2>;
497         vqmmc-supply = <&vccq_sdhi2>;
498         cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
499         sd-uhs-sdr50;
500         status = "okay";
501 };
502
503 &qspi {
504         pinctrl-0 = <&qspi_pins>;
505         pinctrl-names = "default";
506
507         status = "okay";
508
509         flash@0 {
510                 compatible = "spansion,s25fl512s", "jedec,spi-nor";
511                 reg = <0>;
512                 spi-max-frequency = <30000000>;
513                 spi-tx-bus-width = <4>;
514                 spi-rx-bus-width = <4>;
515                 spi-cpol;
516                 spi-cpha;
517                 m25p,fast-read;
518
519                 partitions {
520                         compatible = "fixed-partitions";
521                         #address-cells = <1>;
522                         #size-cells = <1>;
523
524                         partition@0 {
525                                 label = "loader";
526                                 reg = <0x00000000 0x00040000>;
527                                 read-only;
528                         };
529                         partition@40000 {
530                                 label = "user";
531                                 reg = <0x00040000 0x00400000>;
532                                 read-only;
533                         };
534                         partition@440000 {
535                                 label = "flash";
536                                 reg = <0x00440000 0x03bc0000>;
537                         };
538                 };
539         };
540 };
541
542 &i2c2 {
543         pinctrl-0 = <&i2c2_pins>;
544         pinctrl-names = "default";
545
546         status = "okay";
547         clock-frequency = <100000>;
548
549         ak4643: codec@12 {
550                 compatible = "asahi-kasei,ak4643";
551                 #sound-dai-cells = <0>;
552                 reg = <0x12>;
553         };
554
555         composite-in@20 {
556                 compatible = "adi,adv7180cp";
557                 reg = <0x20>;
558                 remote = <&vin1>;
559
560                 port {
561                         #address-cells = <1>;
562                         #size-cells = <0>;
563
564                         port@0 {
565                                 reg = <0>;
566                                 adv7180_in: endpoint {
567                                         remote-endpoint = <&composite_con_in>;
568                                 };
569                         };
570
571                         port@3 {
572                                 reg = <3>;
573                                 adv7180_out: endpoint {
574                                         bus-width = <8>;
575                                         remote-endpoint = <&vin1ep>;
576                                 };
577                         };
578                 };
579         };
580
581         hdmi@39 {
582                 compatible = "adi,adv7511w";
583                 reg = <0x39>;
584                 interrupt-parent = <&gpio3>;
585                 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
586
587                 adi,input-depth = <8>;
588                 adi,input-colorspace = "rgb";
589                 adi,input-clock = "1x";
590                 adi,input-style = <1>;
591                 adi,input-justification = "evenly";
592
593                 ports {
594                         #address-cells = <1>;
595                         #size-cells = <0>;
596
597                         port@0 {
598                                 reg = <0>;
599                                 adv7511_in: endpoint {
600                                         remote-endpoint = <&du_out_rgb>;
601                                 };
602                         };
603
604                         port@1 {
605                                 reg = <1>;
606                                 adv7511_out: endpoint {
607                                         remote-endpoint = <&hdmi_con_out>;
608                                 };
609                         };
610                 };
611         };
612
613         hdmi-in@4c {
614                 compatible = "adi,adv7612";
615                 reg = <0x4c>;
616                 interrupt-parent = <&gpio4>;
617                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
618                 default-input = <0>;
619
620                 port {
621                         #address-cells = <1>;
622                         #size-cells = <0>;
623
624                         port@0 {
625                                 reg = <0>;
626                                 adv7612_in: endpoint {
627                                         remote-endpoint = <&hdmi_con_in>;
628                                 };
629                         };
630
631                         port@2 {
632                                 reg = <2>;
633                                 adv7612_out: endpoint {
634                                         remote-endpoint = <&vin0ep2>;
635                                 };
636                         };
637                 };
638         };
639
640         eeprom@50 {
641                 compatible = "renesas,r1ex24002", "atmel,24c02";
642                 reg = <0x50>;
643                 pagesize = <16>;
644         };
645 };
646
647 &i2c6 {
648         status = "okay";
649         clock-frequency = <100000>;
650
651         pmic@58 {
652                 compatible = "dlg,da9063";
653                 reg = <0x58>;
654                 interrupt-parent = <&irqc0>;
655                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
656                 interrupt-controller;
657
658                 rtc {
659                         compatible = "dlg,da9063-rtc";
660                 };
661
662                 wdt {
663                         compatible = "dlg,da9063-watchdog";
664                 };
665         };
666 };
667
668 &rcar_sound {
669         pinctrl-0 = <&sound_pins &sound_clk_pins>;
670         pinctrl-names = "default";
671
672         /* Single DAI */
673         #sound-dai-cells = <0>;
674
675         status = "okay";
676
677         rcar_sound,dai {
678                 dai0 {
679                         playback = <&ssi0 &src2 &dvc0>;
680                         capture  = <&ssi1 &src3 &dvc1>;
681                 };
682         };
683 };
684
685 &ssi1 {
686         shared-pin;
687 };
688
689 /* HDMI video input */
690 &vin0 {
691         status = "okay";
692         pinctrl-0 = <&vin0_pins>;
693         pinctrl-names = "default";
694
695         port {
696                 #address-cells = <1>;
697                 #size-cells = <0>;
698
699                 vin0ep2: endpoint {
700                         remote-endpoint = <&adv7612_out>;
701                         bus-width = <24>;
702                         hsync-active = <0>;
703                         vsync-active = <0>;
704                         pclk-sample = <1>;
705                         data-active = <1>;
706                 };
707         };
708 };
709
710 /* composite video input */
711 &vin1 {
712         pinctrl-0 = <&vin1_pins>;
713         pinctrl-names = "default";
714
715         status = "okay";
716
717         port {
718                 #address-cells = <1>;
719                 #size-cells = <0>;
720
721                 vin1ep: endpoint {
722                         remote-endpoint = <&adv7180_out>;
723                         bus-width = <8>;
724                 };
725         };
726 };