Merge branch 'parisc-4.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / r8a7791-porter.dts
1 /*
2  * Device Tree Source for the Porter board
3  *
4  * Copyright (C) 2015 Cogent Embedded, Inc.
5  *
6  * This file is licensed under the terms of the GNU General Public License
7  * version 2.  This program is licensed "as is" without any warranty of any
8  * kind, whether express or implied.
9  */
10
11 /*
12  * SSI-AK4642
13  *
14  * JP3: 2-1: AK4642
15  *      2-3: ADV7511
16  *
17  * This command is required before playback/capture:
18  *
19  *      amixer set "LINEOUT Mixer DACL" on
20  */
21
22 /dts-v1/;
23 #include "r8a7791.dtsi"
24 #include <dt-bindings/gpio/gpio.h>
25
26 / {
27         model = "Porter";
28         compatible = "renesas,porter", "renesas,r8a7791";
29
30         aliases {
31                 serial0 = &scif0;
32         };
33
34         chosen {
35                 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
36                 stdout-path = "serial0:115200n8";
37         };
38
39         memory@40000000 {
40                 device_type = "memory";
41                 reg = <0 0x40000000 0 0x40000000>;
42         };
43
44         memory@200000000 {
45                 device_type = "memory";
46                 reg = <2 0x00000000 0 0x40000000>;
47         };
48
49         vcc_sdhi0: regulator-vcc-sdhi0 {
50                 compatible = "regulator-fixed";
51
52                 regulator-name = "SDHI0 Vcc";
53                 regulator-min-microvolt = <3300000>;
54                 regulator-max-microvolt = <3300000>;
55                 regulator-always-on;
56         };
57
58         vccq_sdhi0: regulator-vccq-sdhi0 {
59                 compatible = "regulator-gpio";
60
61                 regulator-name = "SDHI0 VccQ";
62                 regulator-min-microvolt = <1800000>;
63                 regulator-max-microvolt = <3300000>;
64
65                 gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
66                 gpios-states = <1>;
67                 states = <3300000 1
68                           1800000 0>;
69         };
70
71         vcc_sdhi2: regulator-vcc-sdhi2 {
72                 compatible = "regulator-fixed";
73
74                 regulator-name = "SDHI2 Vcc";
75                 regulator-min-microvolt = <3300000>;
76                 regulator-max-microvolt = <3300000>;
77                 regulator-always-on;
78         };
79
80         vccq_sdhi2: regulator-vccq-sdhi2 {
81                 compatible = "regulator-gpio";
82
83                 regulator-name = "SDHI2 VccQ";
84                 regulator-min-microvolt = <1800000>;
85                 regulator-max-microvolt = <3300000>;
86
87                 gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
88                 gpios-states = <1>;
89                 states = <3300000 1
90                           1800000 0>;
91         };
92
93         hdmi-out {
94                 compatible = "hdmi-connector";
95                 type = "a";
96
97                 port {
98                         hdmi_con: endpoint {
99                                 remote-endpoint = <&adv7511_out>;
100                         };
101                 };
102         };
103
104         x3_clk: x3-clock {
105                 compatible = "fixed-clock";
106                 #clock-cells = <0>;
107                 clock-frequency = <148500000>;
108         };
109
110         x16_clk: x16-clock {
111                 compatible = "fixed-clock";
112                 #clock-cells = <0>;
113                 clock-frequency = <74250000>;
114         };
115
116         x14_clk: audio_clock {
117                 compatible = "fixed-clock";
118                 #clock-cells = <0>;
119                 clock-frequency = <11289600>;
120         };
121
122         sound {
123                 compatible = "simple-audio-card";
124
125                 simple-audio-card,format = "left_j";
126                 simple-audio-card,bitclock-master = <&soundcodec>;
127                 simple-audio-card,frame-master = <&soundcodec>;
128
129                 simple-audio-card,cpu {
130                         sound-dai = <&rcar_sound>;
131                 };
132
133                 soundcodec: simple-audio-card,codec {
134                         sound-dai = <&ak4642>;
135                         clocks = <&x14_clk>;
136                 };
137         };
138 };
139
140 &extal_clk {
141         clock-frequency = <20000000>;
142 };
143
144 &pfc {
145         scif0_pins: scif0 {
146                 groups = "scif0_data_d";
147                 function = "scif0";
148         };
149
150         ether_pins: ether {
151                 groups = "eth_link", "eth_mdio", "eth_rmii";
152                 function = "eth";
153         };
154
155         phy1_pins: phy1 {
156                 groups = "intc_irq0";
157                 function = "intc";
158         };
159
160         sdhi0_pins: sd0 {
161                 groups = "sdhi0_data4", "sdhi0_ctrl";
162                 function = "sdhi0";
163         };
164
165         sdhi2_pins: sd2 {
166                 groups = "sdhi2_data4", "sdhi2_ctrl";
167                 function = "sdhi2";
168         };
169
170         qspi_pins: qspi {
171                 groups = "qspi_ctrl", "qspi_data4";
172                 function = "qspi";
173         };
174
175         i2c2_pins: i2c2 {
176                 groups = "i2c2";
177                 function = "i2c2";
178         };
179
180         usb0_pins: usb0 {
181                 groups = "usb0";
182                 function = "usb0";
183         };
184
185         usb1_pins: usb1 {
186                 groups = "usb1";
187                 function = "usb1";
188         };
189
190         vin0_pins: vin0 {
191                 groups = "vin0_data8", "vin0_clk";
192                 function = "vin0";
193         };
194
195         can0_pins: can0 {
196                 groups = "can0_data";
197                 function = "can0";
198         };
199
200         du_pins: du {
201                 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
202                 function = "du";
203         };
204
205         ssi_pins: sound {
206                 groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
207                 function = "ssi";
208         };
209
210         audio_clk_pins: audio_clk {
211                 groups = "audio_clk_a";
212                 function = "audio_clk";
213         };
214 };
215
216 &scif0 {
217         pinctrl-0 = <&scif0_pins>;
218         pinctrl-names = "default";
219
220         status = "okay";
221 };
222
223 &ether {
224         pinctrl-0 = <&ether_pins &phy1_pins>;
225         pinctrl-names = "default";
226
227         phy-handle = <&phy1>;
228         renesas,ether-link-active-low;
229         status = "okay";
230
231         phy1: ethernet-phy@1 {
232                 reg = <1>;
233                 interrupt-parent = <&irqc0>;
234                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
235                 micrel,led-mode = <1>;
236         };
237 };
238
239 &sdhi0 {
240         pinctrl-0 = <&sdhi0_pins>;
241         pinctrl-names = "default";
242
243         vmmc-supply = <&vcc_sdhi0>;
244         vqmmc-supply = <&vccq_sdhi0>;
245         cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
246         wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
247         status = "okay";
248 };
249
250 &sdhi2 {
251         pinctrl-0 = <&sdhi2_pins>;
252         pinctrl-names = "default";
253
254         vmmc-supply = <&vcc_sdhi2>;
255         vqmmc-supply = <&vccq_sdhi2>;
256         cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
257         status = "okay";
258 };
259
260 &qspi {
261         pinctrl-0 = <&qspi_pins>;
262         pinctrl-names = "default";
263
264         status = "okay";
265
266         flash@0 {
267                 compatible = "spansion,s25fl512s", "jedec,spi-nor";
268                 reg = <0>;
269                 spi-max-frequency = <30000000>;
270                 spi-tx-bus-width = <4>;
271                 spi-rx-bus-width = <4>;
272                 m25p,fast-read;
273
274                 partitions {
275                         compatible = "fixed-partitions";
276                         #address-cells = <1>;
277                         #size-cells = <1>;
278
279                         partition@0 {
280                                 label = "loader_prg";
281                                 reg = <0x00000000 0x00040000>;
282                                 read-only;
283                         };
284                         partition@40000 {
285                                 label = "user_prg";
286                                 reg = <0x00040000 0x00400000>;
287                                 read-only;
288                         };
289                         partition@440000 {
290                                 label = "flash_fs";
291                                 reg = <0x00440000 0x03bc0000>;
292                         };
293                 };
294         };
295 };
296
297 &i2c2 {
298         pinctrl-0 = <&i2c2_pins>;
299         pinctrl-names = "default";
300
301         status = "okay";
302         clock-frequency = <400000>;
303
304         ak4642: codec@12 {
305                 compatible = "asahi-kasei,ak4642";
306                 #sound-dai-cells = <0>;
307                 reg = <0x12>;
308         };
309
310         composite-in@20 {
311                 compatible = "adi,adv7180";
312                 reg = <0x20>;
313                 remote = <&vin0>;
314
315                 port {
316                         adv7180: endpoint {
317                                 bus-width = <8>;
318                                 remote-endpoint = <&vin0ep>;
319                         };
320                 };
321         };
322
323         hdmi@39 {
324                 compatible = "adi,adv7511w";
325                 reg = <0x39>;
326                 interrupt-parent = <&gpio3>;
327                 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
328
329                 adi,input-depth = <8>;
330                 adi,input-colorspace = "rgb";
331                 adi,input-clock = "1x";
332                 adi,input-style = <1>;
333                 adi,input-justification = "evenly";
334
335                 ports {
336                         #address-cells = <1>;
337                         #size-cells = <0>;
338
339                         port@0 {
340                                 reg = <0>;
341                                 adv7511_in: endpoint {
342                                         remote-endpoint = <&du_out_rgb>;
343                                 };
344                         };
345
346                         port@1 {
347                                 reg = <1>;
348                                 adv7511_out: endpoint {
349                                         remote-endpoint = <&hdmi_con>;
350                                 };
351                         };
352                 };
353         };
354 };
355
356 &sata0 {
357         status = "okay";
358 };
359
360 /* composite video input */
361 &vin0 {
362         status = "okay";
363         pinctrl-0 = <&vin0_pins>;
364         pinctrl-names = "default";
365
366         port {
367                 #address-cells = <1>;
368                 #size-cells = <0>;
369
370                 vin0ep: endpoint {
371                         remote-endpoint = <&adv7180>;
372                         bus-width = <8>;
373                 };
374         };
375 };
376
377 &pci0 {
378         pinctrl-0 = <&usb0_pins>;
379         pinctrl-names = "default";
380
381         status = "okay";
382 };
383
384 &pci1 {
385         pinctrl-0 = <&usb1_pins>;
386         pinctrl-names = "default";
387
388         status = "okay";
389 };
390
391 &hsusb {
392         pinctrl-0 = <&usb0_pins>;
393         pinctrl-names = "default";
394
395         status = "okay";
396 };
397
398 &usbphy {
399         status = "okay";
400 };
401
402 &pcie_bus_clk {
403         clock-frequency = <100000000>;
404 };
405
406 &pciec {
407         status = "okay";
408 };
409
410 &can0 {
411         pinctrl-0 = <&can0_pins>;
412         pinctrl-names = "default";
413
414         status = "okay";
415 };
416
417 &du {
418         pinctrl-0 = <&du_pins>;
419         pinctrl-names = "default";
420         status = "okay";
421
422         clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&cpg CPG_MOD 726>,
423                  <&x3_clk>, <&x16_clk>;
424         clock-names = "du.0", "du.1", "lvds.0",
425                       "dclkin.0", "dclkin.1";
426
427         ports {
428                 port@1 {
429                         endpoint {
430                                 remote-endpoint = <&adv7511_in>;
431                         };
432                 };
433         };
434 };
435
436 &rcar_sound {
437         pinctrl-0 = <&ssi_pins &audio_clk_pins>;
438         pinctrl-names = "default";
439         status = "okay";
440
441         /* Single DAI */
442         #sound-dai-cells = <0>;
443
444         rcar_sound,dai {
445                 dai0 {
446                         playback = <&ssi0>;
447                         capture  = <&ssi1>;
448                 };
449         };
450 };
451
452 &ssi1 {
453         shared-pin;
454 };