]> git.ipfire.org Git - thirdparty/kernel/stable.git/blob - arch/arm/boot/dts/renesas/r8a7794-silk.dts
ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes
[thirdparty/kernel/stable.git] / arch / arm / boot / dts / renesas / r8a7794-silk.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Device Tree Source for the SILK board
4 *
5 * Copyright (C) 2014 Renesas Electronics Corporation
6 * Copyright (C) 2014-2015 Renesas Solutions Corp.
7 * Copyright (C) 2014-2015 Cogent Embedded, Inc.
8 */
9
10 /*
11 * SSI-AK4643
12 *
13 * SW1: 2-1: AK4643
14 * 2-3: ADV7511
15 *
16 * This command is required before playback/capture:
17 *
18 * amixer set "LINEOUT Mixer DACL" on
19 */
20
21 /dts-v1/;
22 #include "r8a7794.dtsi"
23 #include <dt-bindings/gpio/gpio.h>
24 #include <dt-bindings/input/input.h>
25
26 / {
27 model = "SILK";
28 compatible = "renesas,silk", "renesas,r8a7794";
29
30 aliases {
31 serial0 = &scif2;
32 i2c9 = &gpioi2c1;
33 i2c10 = &i2chdmi;
34 mmc0 = &mmcif0;
35 mmc1 = &sdhi1;
36 };
37
38 chosen {
39 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
40 stdout-path = "serial0:115200n8";
41 };
42
43 memory@40000000 {
44 device_type = "memory";
45 reg = <0 0x40000000 0 0x40000000>;
46 };
47
48 keyboard {
49 compatible = "gpio-keys";
50
51 pinctrl-0 = <&keyboard_pins>;
52 pinctrl-names = "default";
53
54 key-3 {
55 gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
56 linux,code = <KEY_3>;
57 label = "SW3";
58 wakeup-source;
59 debounce-interval = <20>;
60 };
61 key-4 {
62 gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
63 linux,code = <KEY_4>;
64 label = "SW4";
65 wakeup-source;
66 debounce-interval = <20>;
67 };
68 key-6 {
69 gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
70 linux,code = <KEY_6>;
71 label = "SW6";
72 wakeup-source;
73 debounce-interval = <20>;
74 };
75 key-a {
76 gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
77 linux,code = <KEY_A>;
78 label = "SW12-1";
79 wakeup-source;
80 debounce-interval = <20>;
81 };
82 key-b {
83 gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
84 linux,code = <KEY_B>;
85 label = "SW12-2";
86 wakeup-source;
87 debounce-interval = <20>;
88 };
89 key-c {
90 gpios = <&gpio3 11 GPIO_ACTIVE_LOW>;
91 linux,code = <KEY_C>;
92 label = "SW12-3";
93 wakeup-source;
94 debounce-interval = <20>;
95 };
96 key-d {
97 gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
98 linux,code = <KEY_D>;
99 label = "SW12-4";
100 wakeup-source;
101 debounce-interval = <20>;
102 };
103 };
104
105 d1_8v: regulator-d1-8v {
106 compatible = "regulator-fixed";
107 regulator-name = "D1.8V";
108 regulator-min-microvolt = <1800000>;
109 regulator-max-microvolt = <1800000>;
110 regulator-boot-on;
111 regulator-always-on;
112 };
113
114 d3_3v: regulator-d3-3v {
115 compatible = "regulator-fixed";
116 regulator-name = "D3.3V";
117 regulator-min-microvolt = <3300000>;
118 regulator-max-microvolt = <3300000>;
119 regulator-boot-on;
120 regulator-always-on;
121 };
122
123 vcc_sdhi1: regulator-vcc-sdhi1 {
124 compatible = "regulator-fixed";
125
126 regulator-name = "SDHI1 Vcc";
127 regulator-min-microvolt = <3300000>;
128 regulator-max-microvolt = <3300000>;
129
130 gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
131 enable-active-high;
132 };
133
134 vccq_sdhi1: regulator-vccq-sdhi1 {
135 compatible = "regulator-gpio";
136
137 regulator-name = "SDHI1 VccQ";
138 regulator-min-microvolt = <1800000>;
139 regulator-max-microvolt = <3300000>;
140
141 gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
142 gpios-states = <1>;
143 states = <3300000 1>, <1800000 0>;
144 };
145
146 vga-encoder {
147 compatible = "adi,adv7123";
148
149 ports {
150 #address-cells = <1>;
151 #size-cells = <0>;
152
153 port@0 {
154 reg = <0>;
155 adv7123_in: endpoint {
156 remote-endpoint = <&du_out_rgb1>;
157 };
158 };
159 port@1 {
160 reg = <1>;
161 adv7123_out: endpoint {
162 remote-endpoint = <&vga_in>;
163 };
164 };
165 };
166 };
167
168 hdmi-out {
169 compatible = "hdmi-connector";
170 type = "a";
171
172 port {
173 hdmi_con: endpoint {
174 remote-endpoint = <&adv7511_out>;
175 };
176 };
177 };
178
179 vga {
180 compatible = "vga-connector";
181
182 port {
183 vga_in: endpoint {
184 remote-endpoint = <&adv7123_out>;
185 };
186 };
187 };
188
189 x2_clk: x2-clock {
190 compatible = "fixed-clock";
191 #clock-cells = <0>;
192 clock-frequency = <148500000>;
193 };
194
195 x3_clk: x3-clock {
196 compatible = "fixed-clock";
197 #clock-cells = <0>;
198 clock-frequency = <74250000>;
199 };
200
201 x9_clk: audio_clock {
202 compatible = "fixed-clock";
203 #clock-cells = <0>;
204 clock-frequency = <12288000>;
205 };
206
207 sound {
208 compatible = "simple-audio-card";
209
210 simple-audio-card,format = "left_j";
211 simple-audio-card,bitclock-master = <&soundcodec>;
212 simple-audio-card,frame-master = <&soundcodec>;
213
214 simple-audio-card,cpu {
215 sound-dai = <&rcar_sound>;
216 };
217
218 soundcodec: simple-audio-card,codec {
219 sound-dai = <&ak4643>;
220 clocks = <&x9_clk>;
221 };
222 };
223
224 gpioi2c1: i2c-9 {
225 #address-cells = <1>;
226 #size-cells = <0>;
227 compatible = "i2c-gpio";
228 status = "disabled";
229 scl-gpios = <&gpio4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
230 sda-gpios = <&gpio4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
231 i2c-gpio,delay-us = <5>;
232 };
233
234 /*
235 * A fallback to GPIO is provided for I2C1.
236 */
237 i2chdmi: i2c-mux1 {
238 compatible = "i2c-demux-pinctrl";
239 i2c-parent = <&i2c1>, <&gpioi2c1>;
240 i2c-bus-name = "i2c-hdmi";
241 #address-cells = <1>;
242 #size-cells = <0>;
243
244 ak4643: codec@12 {
245 compatible = "asahi-kasei,ak4643";
246 #sound-dai-cells = <0>;
247 reg = <0x12>;
248 };
249
250 composite-in@20 {
251 compatible = "adi,adv7180";
252 reg = <0x20>;
253
254 port {
255 adv7180: endpoint {
256 bus-width = <8>;
257 remote-endpoint = <&vin0ep>;
258 };
259 };
260 };
261
262 hdmi@39 {
263 compatible = "adi,adv7511w";
264 reg = <0x39>;
265 interrupt-parent = <&gpio5>;
266 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
267
268 avdd-supply = <&d1_8v>;
269 dvdd-supply = <&d1_8v>;
270 pvdd-supply = <&d1_8v>;
271 dvdd-3v-supply = <&d3_3v>;
272 bgvdd-supply = <&d1_8v>;
273
274 adi,input-depth = <8>;
275 adi,input-colorspace = "rgb";
276 adi,input-clock = "1x";
277
278 ports {
279 #address-cells = <1>;
280 #size-cells = <0>;
281
282 port@0 {
283 reg = <0>;
284 adv7511_in: endpoint {
285 remote-endpoint = <&du_out_rgb0>;
286 };
287 };
288
289 port@1 {
290 reg = <1>;
291 adv7511_out: endpoint {
292 remote-endpoint = <&hdmi_con>;
293 };
294 };
295 };
296 };
297
298 eeprom@50 {
299 compatible = "renesas,r1ex24002", "atmel,24c02";
300 reg = <0x50>;
301 pagesize = <16>;
302 };
303 };
304 };
305
306 &extal_clk {
307 clock-frequency = <20000000>;
308 };
309
310 &pfc {
311 pinctrl-0 = <&scif_clk_pins>;
312 pinctrl-names = "default";
313
314 scif2_pins: scif2 {
315 groups = "scif2_data";
316 function = "scif2";
317 };
318
319 scif_clk_pins: scif_clk {
320 groups = "scif_clk";
321 function = "scif_clk";
322 };
323
324 ether_pins: ether {
325 groups = "eth_link", "eth_mdio", "eth_rmii";
326 function = "eth";
327 };
328
329 phy1_pins: phy1 {
330 groups = "intc_irq8";
331 function = "intc";
332 };
333
334 i2c1_pins: i2c1 {
335 groups = "i2c1";
336 function = "i2c1";
337 };
338
339 mmcif0_pins: mmcif0 {
340 groups = "mmc_data8", "mmc_ctrl";
341 function = "mmc";
342 };
343
344 sdhi1_pins: sd1 {
345 groups = "sdhi1_data4", "sdhi1_ctrl";
346 function = "sdhi1";
347 };
348
349 qspi_pins: qspi {
350 groups = "qspi_ctrl", "qspi_data4";
351 function = "qspi";
352 };
353
354 vin0_pins: vin0 {
355 groups = "vin0_data8", "vin0_clk";
356 function = "vin0";
357 };
358
359 usb0_pins: usb0 {
360 groups = "usb0";
361 function = "usb0";
362 };
363
364 usb1_pins: usb1 {
365 groups = "usb1";
366 function = "usb1";
367 };
368
369 du0_pins: du0 {
370 groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out";
371 function = "du0";
372 };
373
374 du1_pins: du1 {
375 groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
376 function = "du1";
377 };
378
379 keyboard_pins: keyboard {
380 pins = "GP_3_9", "GP_3_10", "GP_3_11", "GP_3_12";
381 bias-pull-up;
382 };
383
384 ssi_pins: sound {
385 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
386 function = "ssi";
387 };
388
389 audio_clk_pins: audio_clk {
390 groups = "audio_clkc";
391 function = "audio_clk";
392 };
393 };
394
395 &scif2 {
396 pinctrl-0 = <&scif2_pins>;
397 pinctrl-names = "default";
398
399 status = "okay";
400 };
401
402 &scif_clk {
403 clock-frequency = <14745600>;
404 };
405
406 &ether {
407 pinctrl-0 = <&ether_pins>, <&phy1_pins>;
408 pinctrl-names = "default";
409
410 phy-handle = <&phy1>;
411 renesas,ether-link-active-low;
412 status = "okay";
413
414 phy1: ethernet-phy@1 {
415 compatible = "ethernet-phy-id0022.1537",
416 "ethernet-phy-ieee802.3-c22";
417 reg = <1>;
418 interrupt-parent = <&irqc0>;
419 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
420 micrel,led-mode = <1>;
421 reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
422 };
423 };
424
425 &i2c1 {
426 pinctrl-0 = <&i2c1_pins>;
427 pinctrl-names = "i2c-hdmi";
428
429 clock-frequency = <400000>;
430 };
431
432 &i2c7 {
433 status = "okay";
434 clock-frequency = <100000>;
435
436 pmic@58 {
437 compatible = "dlg,da9063";
438 reg = <0x58>;
439 interrupt-parent = <&gpio3>;
440 interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
441 interrupt-controller;
442 #interrupt-cells = <2>;
443
444 onkey {
445 compatible = "dlg,da9063-onkey";
446 };
447
448 rtc {
449 compatible = "dlg,da9063-rtc";
450 };
451
452 watchdog {
453 compatible = "dlg,da9063-watchdog";
454 };
455 };
456 };
457
458 &mmcif0 {
459 pinctrl-0 = <&mmcif0_pins>;
460 pinctrl-names = "default";
461
462 vmmc-supply = <&d3_3v>;
463 vqmmc-supply = <&d3_3v>;
464 bus-width = <8>;
465 non-removable;
466 status = "okay";
467 };
468
469 &sdhi1 {
470 pinctrl-0 = <&sdhi1_pins>;
471 pinctrl-names = "default";
472
473 vmmc-supply = <&vcc_sdhi1>;
474 vqmmc-supply = <&vccq_sdhi1>;
475 cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
476 status = "okay";
477 };
478
479 &qspi {
480 pinctrl-0 = <&qspi_pins>;
481 pinctrl-names = "default";
482
483 status = "okay";
484
485 flash@0 {
486 compatible = "spansion,s25fl512s", "jedec,spi-nor";
487 reg = <0>;
488 spi-max-frequency = <30000000>;
489 spi-tx-bus-width = <4>;
490 spi-rx-bus-width = <4>;
491 spi-cpol;
492 spi-cpha;
493 m25p,fast-read;
494
495 partitions {
496 compatible = "fixed-partitions";
497 #address-cells = <1>;
498 #size-cells = <1>;
499
500 partition@0 {
501 label = "loader";
502 reg = <0x00000000 0x00040000>;
503 read-only;
504 };
505 partition@40000 {
506 label = "user";
507 reg = <0x00040000 0x00400000>;
508 read-only;
509 };
510 partition@440000 {
511 label = "flash";
512 reg = <0x00440000 0x03bc0000>;
513 };
514 };
515 };
516 };
517
518 /* composite video input */
519 &vin0 {
520 status = "okay";
521 pinctrl-0 = <&vin0_pins>;
522 pinctrl-names = "default";
523
524 port {
525 vin0ep: endpoint {
526 remote-endpoint = <&adv7180>;
527 bus-width = <8>;
528 };
529 };
530 };
531
532 &pci0 {
533 status = "okay";
534 pinctrl-0 = <&usb0_pins>;
535 pinctrl-names = "default";
536 };
537
538 &pci1 {
539 status = "okay";
540 pinctrl-0 = <&usb1_pins>;
541 pinctrl-names = "default";
542 };
543
544 &usbphy {
545 status = "okay";
546 };
547
548 &du {
549 pinctrl-0 = <&du0_pins>, <&du1_pins>;
550 pinctrl-names = "default";
551 status = "okay";
552
553 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
554 <&x2_clk>, <&x3_clk>;
555 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
556
557 ports {
558 port@0 {
559 endpoint {
560 remote-endpoint = <&adv7511_in>;
561 };
562 };
563 port@1 {
564 endpoint {
565 remote-endpoint = <&adv7123_in>;
566 };
567 };
568 };
569 };
570
571 &rcar_sound {
572 pinctrl-0 = <&ssi_pins>, <&audio_clk_pins>;
573 pinctrl-names = "default";
574 status = "okay";
575
576 /* Single DAI */
577 #sound-dai-cells = <0>;
578
579 rcar_sound,dai {
580 dai0 {
581 playback = <&ssi0>;
582 capture = <&ssi1>;
583 };
584 };
585 };
586
587 &rwdt {
588 timeout-sec = <60>;
589 status = "okay";
590 };
591
592 &ssi1 {
593 shared-pin;
594 };