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