• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 = "ok";
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 = "ok";
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	status = "okay";
405};
406
407&pciec {
408	status = "okay";
409};
410
411&can0 {
412	pinctrl-0 = <&can0_pins>;
413	pinctrl-names = "default";
414
415	status = "okay";
416};
417
418&du {
419	pinctrl-0 = <&du_pins>;
420	pinctrl-names = "default";
421	status = "okay";
422
423	clocks = <&mstp7_clks R8A7791_CLK_DU0>,
424		 <&mstp7_clks R8A7791_CLK_DU1>,
425		 <&mstp7_clks R8A7791_CLK_LVDS0>,
426		 <&x3_clk>, <&x16_clk>;
427	clock-names = "du.0", "du.1", "lvds.0",
428		      "dclkin.0", "dclkin.1";
429
430	ports {
431		port@1 {
432			endpoint {
433				remote-endpoint = <&adv7511_in>;
434			};
435		};
436	};
437};
438
439&rcar_sound {
440	pinctrl-0 = <&ssi_pins &audio_clk_pins>;
441	pinctrl-names = "default";
442	status = "okay";
443
444	/* Single DAI */
445	#sound-dai-cells = <0>;
446
447	rcar_sound,dai {
448		dai0 {
449			playback = <&ssi0>;
450			capture  = <&ssi1>;
451		};
452	};
453};
454
455&ssi1 {
456	shared-pin;
457};
458