Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[cascardo/linux.git] / arch / arm / boot / dts / r8a7794-silk.dts
1 /*
2  * Device Tree Source for the SILK board
3  *
4  * Copyright (C) 2014 Renesas Electronics Corporation
5  * Copyright (C) 2014-2015 Renesas Solutions Corp.
6  * Copyright (C) 2014-2015 Cogent Embedded, Inc.
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: 2-1: AK4643
17  *      2-3: ADV7511
18  *
19  * This command is required before playback/capture:
20  *
21  *      amixer set "LINEOUT Mixer DACL" on
22  */
23
24 /dts-v1/;
25 #include "r8a7794.dtsi"
26 #include <dt-bindings/gpio/gpio.h>
27
28 / {
29         model = "SILK";
30         compatible = "renesas,silk", "renesas,r8a7794";
31
32         aliases {
33                 serial0 = &scif2;
34         };
35
36         chosen {
37                 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
38                 stdout-path = "serial0:115200n8";
39         };
40
41         memory@40000000 {
42                 device_type = "memory";
43                 reg = <0 0x40000000 0 0x40000000>;
44         };
45
46         d3_3v: regulator-d3-3v {
47                 compatible = "regulator-fixed";
48                 regulator-name = "D3.3V";
49                 regulator-min-microvolt = <3300000>;
50                 regulator-max-microvolt = <3300000>;
51                 regulator-boot-on;
52                 regulator-always-on;
53         };
54
55         vcc_sdhi1: regulator-vcc-sdhi1 {
56                 compatible = "regulator-fixed";
57
58                 regulator-name = "SDHI1 Vcc";
59                 regulator-min-microvolt = <3300000>;
60                 regulator-max-microvolt = <3300000>;
61
62                 gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
63                 enable-active-high;
64         };
65
66         vccq_sdhi1: regulator-vccq-sdhi1 {
67                 compatible = "regulator-gpio";
68
69                 regulator-name = "SDHI1 VccQ";
70                 regulator-min-microvolt = <1800000>;
71                 regulator-max-microvolt = <3300000>;
72
73                 gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
74                 gpios-states = <1>;
75                 states = <3300000 1
76                           1800000 0>;
77         };
78
79         vga-encoder {
80                 compatible = "adi,adv7123";
81
82                 ports {
83                         #address-cells = <1>;
84                         #size-cells = <0>;
85
86                         port@0 {
87                                 reg = <0>;
88                                 adv7123_in: endpoint {
89                                         remote-endpoint = <&du_out_rgb1>;
90                                 };
91                         };
92                         port@1 {
93                                 reg = <1>;
94                                 adv7123_out: endpoint {
95                                         remote-endpoint = <&vga_in>;
96                                 };
97                         };
98                 };
99         };
100
101         hdmi-out {
102                 compatible = "hdmi-connector";
103                 type = "a";
104
105                 port {
106                         hdmi_con: endpoint {
107                                 remote-endpoint = <&adv7511_out>;
108                         };
109                 };
110         };
111
112         vga {
113                 compatible = "vga-connector";
114
115                 port {
116                         vga_in: endpoint {
117                                 remote-endpoint = <&adv7123_out>;
118                         };
119                 };
120         };
121
122         x2_clk: x2-clock {
123                 compatible = "fixed-clock";
124                 #clock-cells = <0>;
125                 clock-frequency = <148500000>;
126         };
127
128         x3_clk: x3-clock {
129                 compatible = "fixed-clock";
130                 #clock-cells = <0>;
131                 clock-frequency = <74250000>;
132         };
133
134         x9_clk: audio_clock {
135                 compatible = "fixed-clock";
136                 #clock-cells = <0>;
137                 clock-frequency = <12288000>;
138         };
139
140         sound {
141                 compatible = "simple-audio-card";
142
143                 simple-audio-card,format = "left_j";
144                 simple-audio-card,bitclock-master = <&soundcodec>;
145                 simple-audio-card,frame-master = <&soundcodec>;
146
147                 simple-audio-card,cpu {
148                         sound-dai = <&rcar_sound>;
149                 };
150
151                 soundcodec: simple-audio-card,codec {
152                         sound-dai = <&ak4643>;
153                         clocks = <&x9_clk>;
154                 };
155         };
156 };
157
158 &extal_clk {
159         clock-frequency = <20000000>;
160 };
161
162 &pfc {
163         pinctrl-0 = <&scif_clk_pins>;
164         pinctrl-names = "default";
165
166         scif2_pins: scif2 {
167                 groups = "scif2_data";
168                 function = "scif2";
169         };
170
171         scif_clk_pins: scif_clk {
172                 groups = "scif_clk";
173                 function = "scif_clk";
174         };
175
176         ether_pins: ether {
177                 groups = "eth_link", "eth_mdio", "eth_rmii";
178                 function = "eth";
179         };
180
181         phy1_pins: phy1 {
182                 groups = "intc_irq8";
183                 function = "intc";
184         };
185
186         i2c1_pins: i2c1 {
187                 groups = "i2c1";
188                 function = "i2c1";
189         };
190
191         mmcif0_pins: mmcif0 {
192                 groups = "mmc_data8", "mmc_ctrl";
193                 function = "mmc";
194         };
195
196         sdhi1_pins: sd1 {
197                 groups = "sdhi1_data4", "sdhi1_ctrl";
198                 function = "sdhi1";
199         };
200
201         qspi_pins: qspi {
202                 groups = "qspi_ctrl", "qspi_data4";
203                 function = "qspi";
204         };
205
206         vin0_pins: vin0 {
207                 groups = "vin0_data8", "vin0_clk";
208                 function = "vin0";
209         };
210
211         usb0_pins: usb0 {
212                 groups = "usb0";
213                 function = "usb0";
214         };
215
216         usb1_pins: usb1 {
217                 groups = "usb1";
218                 function = "usb1";
219         };
220
221         du0_pins: du0 {
222                 groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out";
223                 function = "du0";
224         };
225
226         du1_pins: du1 {
227                 groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
228                 function = "du1";
229         };
230
231         ssi_pins: sound {
232                 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
233                 function = "ssi";
234         };
235
236         audio_clk_pins: audio_clk {
237                 groups = "audio_clkc";
238                 function = "audio_clk";
239         };
240 };
241
242 &scif2 {
243         pinctrl-0 = <&scif2_pins>;
244         pinctrl-names = "default";
245
246         status = "okay";
247 };
248
249 &scif_clk {
250         clock-frequency = <14745600>;
251         status = "okay";
252 };
253
254 &ether {
255         pinctrl-0 = <&ether_pins &phy1_pins>;
256         pinctrl-names = "default";
257
258         phy-handle = <&phy1>;
259         renesas,ether-link-active-low;
260         status = "okay";
261
262         phy1: ethernet-phy@1 {
263                 reg = <1>;
264                 interrupt-parent = <&irqc0>;
265                 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
266                 micrel,led-mode = <1>;
267         };
268 };
269
270 &i2c1 {
271         pinctrl-0 = <&i2c1_pins>;
272         pinctrl-names = "default";
273
274         status = "okay";
275         clock-frequency = <400000>;
276
277         ak4643: codec@12 {
278                 compatible = "asahi-kasei,ak4643";
279                 #sound-dai-cells = <0>;
280                 reg = <0x12>;
281         };
282
283         composite-in@20 {
284                 compatible = "adi,adv7180";
285                 reg = <0x20>;
286                 remote = <&vin0>;
287
288                 port {
289                         adv7180: endpoint {
290                                 bus-width = <8>;
291                                 remote-endpoint = <&vin0ep>;
292                         };
293                 };
294         };
295
296         hdmi@39 {
297                 compatible = "adi,adv7511w";
298                 reg = <0x39>;
299                 interrupt-parent = <&gpio5>;
300                 interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
301
302                 adi,input-depth = <8>;
303                 adi,input-colorspace = "rgb";
304                 adi,input-clock = "1x";
305                 adi,input-style = <1>;
306                 adi,input-justification = "evenly";
307
308                 ports {
309                         #address-cells = <1>;
310                         #size-cells = <0>;
311
312                         port@0 {
313                                 reg = <0>;
314                                 adv7511_in: endpoint {
315                                         remote-endpoint = <&du_out_rgb0>;
316                                 };
317                         };
318
319                         port@1 {
320                                 reg = <1>;
321                                 adv7511_out: endpoint {
322                                         remote-endpoint = <&hdmi_con>;
323                                 };
324                         };
325                 };
326         };
327 };
328
329 &mmcif0 {
330         pinctrl-0 = <&mmcif0_pins>;
331         pinctrl-names = "default";
332
333         vmmc-supply = <&d3_3v>;
334         vqmmc-supply = <&d3_3v>;
335         bus-width = <8>;
336         non-removable;
337         status = "okay";
338 };
339
340 &sdhi1 {
341         pinctrl-0 = <&sdhi1_pins>;
342         pinctrl-names = "default";
343
344         vmmc-supply = <&vcc_sdhi1>;
345         vqmmc-supply = <&vccq_sdhi1>;
346         cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
347         status = "okay";
348 };
349
350 &qspi {
351         pinctrl-0 = <&qspi_pins>;
352         pinctrl-names = "default";
353
354         status = "okay";
355
356         flash@0 {
357                 compatible = "spansion,s25fl512s", "jedec,spi-nor";
358                 reg = <0>;
359                 spi-max-frequency = <30000000>;
360                 spi-tx-bus-width = <4>;
361                 spi-rx-bus-width = <4>;
362                 spi-cpol;
363                 spi-cpha;
364                 m25p,fast-read;
365
366                 partitions {
367                         compatible = "fixed-partitions";
368                         #address-cells = <1>;
369                         #size-cells = <1>;
370
371                         partition@0 {
372                                 label = "loader";
373                                 reg = <0x00000000 0x00040000>;
374                                 read-only;
375                         };
376                         partition@40000 {
377                                 label = "user";
378                                 reg = <0x00040000 0x00400000>;
379                                 read-only;
380                         };
381                         partition@440000 {
382                                 label = "flash";
383                                 reg = <0x00440000 0x03bc0000>;
384                         };
385                 };
386         };
387 };
388
389 /* composite video input */
390 &vin0 {
391         status = "okay";
392         pinctrl-0 = <&vin0_pins>;
393         pinctrl-names = "default";
394
395         port {
396                 #address-cells = <1>;
397                 #size-cells = <0>;
398
399                 vin0ep: endpoint {
400                         remote-endpoint = <&adv7180>;
401                         bus-width = <8>;
402                 };
403         };
404 };
405
406 &pci0 {
407         status = "okay";
408         pinctrl-0 = <&usb0_pins>;
409         pinctrl-names = "default";
410 };
411
412 &pci1 {
413         status = "okay";
414         pinctrl-0 = <&usb1_pins>;
415         pinctrl-names = "default";
416 };
417
418 &usbphy {
419         status = "okay";
420 };
421
422 &du {
423         pinctrl-0 = <&du0_pins &du1_pins>;
424         pinctrl-names = "default";
425         status = "okay";
426
427         clocks = <&mstp7_clks R8A7794_CLK_DU0>,
428                  <&mstp7_clks R8A7794_CLK_DU0>,
429                  <&x2_clk>, <&x3_clk>;
430         clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
431
432         ports {
433                 port@0 {
434                         endpoint {
435                                 remote-endpoint = <&adv7511_in>;
436                         };
437                 };
438                 port@1 {
439                         endpoint {
440                                 remote-endpoint = <&adv7123_in>;
441                         };
442                 };
443         };
444 };
445
446 &rcar_sound {
447         pinctrl-0 = <&ssi_pins &audio_clk_pins>;
448         pinctrl-names = "default";
449         status = "okay";
450
451         /* Single DAI */
452         #sound-dai-cells = <0>;
453
454         rcar_sound,dai {
455                 dai0 {
456                         playback = <&ssi0>;
457                         capture  = <&ssi1>;
458                 };
459         };
460 };
461
462 &ssi1 {
463         shared-pin;
464 };