]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blob - arch/arm/boot/dts/r8a7791-porter.dts
Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[mirror_ubuntu-hirsute-kernel.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@0 {
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@1 {
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@2 {
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@3 {
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: x14-clock {
117 compatible = "fixed-clock";
118 #clock-cells = <0>;
119 clock-frequency = <11289600>;
120 clock-output-names = "audio_clock";
121 };
122
123 sound {
124 compatible = "simple-audio-card";
125
126 simple-audio-card,format = "left_j";
127 simple-audio-card,bitclock-master = <&soundcodec>;
128 simple-audio-card,frame-master = <&soundcodec>;
129
130 simple-audio-card,cpu {
131 sound-dai = <&rcar_sound>;
132 };
133
134 soundcodec: simple-audio-card,codec {
135 sound-dai = <&ak4642>;
136 clocks = <&x14_clk>;
137 };
138 };
139 };
140
141 &extal_clk {
142 clock-frequency = <20000000>;
143 };
144
145 &pfc {
146 scif0_pins: serial0 {
147 renesas,groups = "scif0_data_d";
148 renesas,function = "scif0";
149 };
150
151 ether_pins: ether {
152 renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
153 renesas,function = "eth";
154 };
155
156 phy1_pins: phy1 {
157 renesas,groups = "intc_irq0";
158 renesas,function = "intc";
159 };
160
161 sdhi0_pins: sd0 {
162 renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
163 renesas,function = "sdhi0";
164 };
165
166 sdhi2_pins: sd2 {
167 renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
168 renesas,function = "sdhi2";
169 };
170
171 qspi_pins: spi0 {
172 renesas,groups = "qspi_ctrl", "qspi_data4";
173 renesas,function = "qspi";
174 };
175
176 i2c2_pins: i2c2 {
177 renesas,groups = "i2c2";
178 renesas,function = "i2c2";
179 };
180
181 usb0_pins: usb0 {
182 renesas,groups = "usb0";
183 renesas,function = "usb0";
184 };
185
186 usb1_pins: usb1 {
187 renesas,groups = "usb1";
188 renesas,function = "usb1";
189 };
190
191 vin0_pins: vin0 {
192 renesas,groups = "vin0_data8", "vin0_clk";
193 renesas,function = "vin0";
194 };
195
196 can0_pins: can0 {
197 renesas,groups = "can0_data";
198 renesas,function = "can0";
199 };
200
201 du_pins: du {
202 renesas,groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
203 renesas,function = "du";
204 };
205
206 ssi_pins: sound {
207 renesas,groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
208 renesas,function = "ssi";
209 };
210
211 audio_clk_pins: audio_clk {
212 renesas,groups = "audio_clk_a";
213 renesas,function = "audio_clk";
214 };
215 };
216
217 &scif0 {
218 pinctrl-0 = <&scif0_pins>;
219 pinctrl-names = "default";
220
221 status = "okay";
222 };
223
224 &ether {
225 pinctrl-0 = <&ether_pins &phy1_pins>;
226 pinctrl-names = "default";
227
228 phy-handle = <&phy1>;
229 renesas,ether-link-active-low;
230 status = "ok";
231
232 phy1: ethernet-phy@1 {
233 reg = <1>;
234 interrupt-parent = <&irqc0>;
235 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
236 micrel,led-mode = <1>;
237 };
238 };
239
240 &sdhi0 {
241 pinctrl-0 = <&sdhi0_pins>;
242 pinctrl-names = "default";
243
244 vmmc-supply = <&vcc_sdhi0>;
245 vqmmc-supply = <&vccq_sdhi0>;
246 cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
247 wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
248 status = "okay";
249 };
250
251 &sdhi2 {
252 pinctrl-0 = <&sdhi2_pins>;
253 pinctrl-names = "default";
254
255 vmmc-supply = <&vcc_sdhi2>;
256 vqmmc-supply = <&vccq_sdhi2>;
257 cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
258 status = "okay";
259 };
260
261 &qspi {
262 pinctrl-0 = <&qspi_pins>;
263 pinctrl-names = "default";
264
265 status = "okay";
266
267 flash@0 {
268 compatible = "spansion,s25fl512s", "jedec,spi-nor";
269 reg = <0>;
270 spi-max-frequency = <30000000>;
271 spi-tx-bus-width = <4>;
272 spi-rx-bus-width = <4>;
273 m25p,fast-read;
274
275 partitions {
276 compatible = "fixed-partitions";
277 #address-cells = <1>;
278 #size-cells = <1>;
279
280 partition@0 {
281 label = "loader_prg";
282 reg = <0x00000000 0x00040000>;
283 read-only;
284 };
285 partition@40000 {
286 label = "user_prg";
287 reg = <0x00040000 0x00400000>;
288 read-only;
289 };
290 partition@440000 {
291 label = "flash_fs";
292 reg = <0x00440000 0x03bc0000>;
293 };
294 };
295 };
296 };
297
298 &i2c2 {
299 pinctrl-0 = <&i2c2_pins>;
300 pinctrl-names = "default";
301
302 status = "okay";
303 clock-frequency = <400000>;
304
305 ak4642: codec@12 {
306 compatible = "asahi-kasei,ak4642";
307 #sound-dai-cells = <0>;
308 reg = <0x12>;
309 };
310
311 composite-in@20 {
312 compatible = "adi,adv7180";
313 reg = <0x20>;
314 remote = <&vin0>;
315
316 port {
317 adv7180: endpoint {
318 bus-width = <8>;
319 remote-endpoint = <&vin0ep>;
320 };
321 };
322 };
323
324 hdmi@39 {
325 compatible = "adi,adv7511w";
326 reg = <0x39>;
327 interrupt-parent = <&gpio3>;
328 interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
329
330 adi,input-depth = <8>;
331 adi,input-colorspace = "rgb";
332 adi,input-clock = "1x";
333 adi,input-style = <1>;
334 adi,input-justification = "evenly";
335
336 ports {
337 #address-cells = <1>;
338 #size-cells = <0>;
339
340 port@0 {
341 reg = <0>;
342 adv7511_in: endpoint {
343 remote-endpoint = <&du_out_rgb>;
344 };
345 };
346
347 port@1 {
348 reg = <1>;
349 adv7511_out: endpoint {
350 remote-endpoint = <&hdmi_con>;
351 };
352 };
353 };
354 };
355 };
356
357 &sata0 {
358 status = "okay";
359 };
360
361 /* composite video input */
362 &vin0 {
363 status = "ok";
364 pinctrl-0 = <&vin0_pins>;
365 pinctrl-names = "default";
366
367 port {
368 #address-cells = <1>;
369 #size-cells = <0>;
370
371 vin0ep: endpoint {
372 remote-endpoint = <&adv7180>;
373 bus-width = <8>;
374 };
375 };
376 };
377
378 &pci0 {
379 pinctrl-0 = <&usb0_pins>;
380 pinctrl-names = "default";
381
382 status = "okay";
383 };
384
385 &pci1 {
386 pinctrl-0 = <&usb1_pins>;
387 pinctrl-names = "default";
388
389 status = "okay";
390 };
391
392 &hsusb {
393 pinctrl-0 = <&usb0_pins>;
394 pinctrl-names = "default";
395
396 status = "okay";
397 };
398
399 &usbphy {
400 status = "okay";
401 };
402
403 &pcie_bus_clk {
404 clock-frequency = <100000000>;
405 status = "okay";
406 };
407
408 &pciec {
409 status = "okay";
410 };
411
412 &can0 {
413 pinctrl-0 = <&can0_pins>;
414 pinctrl-names = "default";
415
416 status = "okay";
417 };
418
419 &du {
420 pinctrl-0 = <&du_pins>;
421 pinctrl-names = "default";
422 status = "okay";
423
424 clocks = <&mstp7_clks R8A7791_CLK_DU0>,
425 <&mstp7_clks R8A7791_CLK_DU1>,
426 <&mstp7_clks R8A7791_CLK_LVDS0>,
427 <&x3_clk>, <&x16_clk>;
428 clock-names = "du.0", "du.1", "lvds.0",
429 "dclkin.0", "dclkin.1";
430
431 ports {
432 port@1 {
433 endpoint {
434 remote-endpoint = <&adv7511_in>;
435 };
436 };
437 };
438 };
439
440 &rcar_sound {
441 pinctrl-0 = <&ssi_pins &audio_clk_pins>;
442 pinctrl-names = "default";
443 status = "okay";
444
445 /* Single DAI */
446 #sound-dai-cells = <0>;
447
448 rcar_sound,dai {
449 dai0 {
450 playback = <&ssi0>;
451 capture = <&ssi1>;
452 };
453 };
454 };
455
456 &ssi1 {
457 shared-pin;
458 };