r8a7790-lager.dts revision 284090
1/*
2 * Device Tree Source for the Lager board
3 *
4 * Copyright (C) 2013-2014 Renesas Solutions Corp.
5 * Copyright (C) 2014 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2.  This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/*
13 * SSI-AK4643
14 *
15 * SW1: 1: AK4643
16 *      2: CN22
17 *      3: ADV7511
18 *
19 * This command is required when Playback/Capture
20 *
21 *	amixer set "LINEOUT Mixer DACL" on
22 *	amixer set "DVC Out" 100%
23 *	amixer set "DVC In" 100%
24 *
25 * You can use Mute
26 *
27 *	amixer set "DVC Out Mute" on
28 *	amixer set "DVC In Mute" on
29 *
30 * You can use Volume Ramp
31 *
32 *	amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
33 *	amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
34 *	amixer set "DVC Out Ramp" on
35 *	aplay xxx.wav &
36 *	amixer set "DVC Out"  80%  // Volume Down
37 *	amixer set "DVC Out" 100%  // Volume Up
38 */
39
40/dts-v1/;
41#include "r8a7790.dtsi"
42#include <dt-bindings/gpio/gpio.h>
43#include <dt-bindings/input/input.h>
44
45/ {
46	model = "Lager";
47	compatible = "renesas,lager", "renesas,r8a7790";
48
49	aliases {
50		serial0 = &scifa0;
51		serial1 = &scifa1;
52	};
53
54	chosen {
55		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
56		stdout-path = &scifa0;
57	};
58
59	memory@40000000 {
60		device_type = "memory";
61		reg = <0 0x40000000 0 0x40000000>;
62	};
63
64	memory@140000000 {
65		device_type = "memory";
66		reg = <1 0x40000000 0 0xc0000000>;
67	};
68
69	lbsc {
70		#address-cells = <1>;
71		#size-cells = <1>;
72	};
73
74	keyboard {
75		compatible = "gpio-keys";
76
77		button@1 {
78			linux,code = <KEY_1>;
79			label = "SW2-1";
80			gpio-key,wakeup;
81			debounce-interval = <20>;
82			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
83		};
84		button@2 {
85			linux,code = <KEY_2>;
86			label = "SW2-2";
87			gpio-key,wakeup;
88			debounce-interval = <20>;
89			gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
90		};
91		button@3 {
92			linux,code = <KEY_3>;
93			label = "SW2-3";
94			gpio-key,wakeup;
95			debounce-interval = <20>;
96			gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
97		};
98		button@4 {
99			linux,code = <KEY_4>;
100			label = "SW2-4";
101			gpio-key,wakeup;
102			debounce-interval = <20>;
103			gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
104		};
105	};
106
107	leds {
108		compatible = "gpio-leds";
109		led6 {
110			gpios = <&gpio4 22 GPIO_ACTIVE_HIGH>;
111		};
112		led7 {
113			gpios = <&gpio4 23 GPIO_ACTIVE_HIGH>;
114		};
115		led8 {
116			gpios = <&gpio5 17 GPIO_ACTIVE_HIGH>;
117		};
118	};
119
120	fixedregulator3v3: fixedregulator@0 {
121		compatible = "regulator-fixed";
122		regulator-name = "fixed-3.3V";
123		regulator-min-microvolt = <3300000>;
124		regulator-max-microvolt = <3300000>;
125		regulator-boot-on;
126		regulator-always-on;
127	};
128
129	vcc_sdhi0: regulator@1 {
130		compatible = "regulator-fixed";
131
132		regulator-name = "SDHI0 Vcc";
133		regulator-min-microvolt = <3300000>;
134		regulator-max-microvolt = <3300000>;
135
136		gpio = <&gpio5 24 GPIO_ACTIVE_HIGH>;
137		enable-active-high;
138	};
139
140	vccq_sdhi0: regulator@2 {
141		compatible = "regulator-gpio";
142
143		regulator-name = "SDHI0 VccQ";
144		regulator-min-microvolt = <1800000>;
145		regulator-max-microvolt = <3300000>;
146
147		gpios = <&gpio5 29 GPIO_ACTIVE_HIGH>;
148		gpios-states = <1>;
149		states = <3300000 1
150			  1800000 0>;
151	};
152
153	vcc_sdhi2: regulator@3 {
154		compatible = "regulator-fixed";
155
156		regulator-name = "SDHI2 Vcc";
157		regulator-min-microvolt = <3300000>;
158		regulator-max-microvolt = <3300000>;
159
160		gpio = <&gpio5 25 GPIO_ACTIVE_HIGH>;
161		enable-active-high;
162	};
163
164	vccq_sdhi2: regulator@4 {
165		compatible = "regulator-gpio";
166
167		regulator-name = "SDHI2 VccQ";
168		regulator-min-microvolt = <1800000>;
169		regulator-max-microvolt = <3300000>;
170
171		gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;
172		gpios-states = <1>;
173		states = <3300000 1
174			  1800000 0>;
175	};
176
177	sound {
178		compatible = "simple-audio-card";
179
180		simple-audio-card,format = "left_j";
181		simple-audio-card,bitclock-master = <&sndcodec>;
182		simple-audio-card,frame-master = <&sndcodec>;
183
184		sndcpu: simple-audio-card,cpu {
185			sound-dai = <&rcar_sound>;
186		};
187
188		sndcodec: simple-audio-card,codec {
189			sound-dai = <&ak4643>;
190			system-clock-frequency = <11289600>;
191		};
192	};
193
194	vga-encoder {
195		compatible = "adi,adv7123";
196
197		ports {
198			#address-cells = <1>;
199			#size-cells = <0>;
200
201			port@0 {
202				reg = <0>;
203				adv7123_in: endpoint {
204					remote-endpoint = <&du_out_rgb>;
205				};
206			};
207			port@1 {
208				reg = <1>;
209				adv7123_out: endpoint {
210					remote-endpoint = <&vga_in>;
211				};
212			};
213		};
214	};
215
216	vga {
217		compatible = "vga-connector";
218
219		port {
220			vga_in: endpoint {
221				remote-endpoint = <&adv7123_out>;
222			};
223		};
224	};
225};
226
227&du {
228	pinctrl-0 = <&du_pins>;
229	pinctrl-names = "default";
230	status = "okay";
231
232	ports {
233		port@0 {
234			endpoint {
235				remote-endpoint = <&adv7123_in>;
236			};
237		};
238		port@2 {
239			lvds_connector: endpoint {
240			};
241		};
242	};
243};
244
245&extal_clk {
246	clock-frequency = <20000000>;
247};
248
249&pfc {
250	du_pins: du {
251		renesas,groups = "du_rgb666", "du_sync_1", "du_clk_out_0";
252		renesas,function = "du";
253	};
254
255	scifa0_pins: serial0 {
256		renesas,groups = "scifa0_data";
257		renesas,function = "scifa0";
258	};
259
260	ether_pins: ether {
261		renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
262		renesas,function = "eth";
263	};
264
265	phy1_pins: phy1 {
266		renesas,groups = "intc_irq0";
267		renesas,function = "intc";
268	};
269
270	scifa1_pins: serial1 {
271		renesas,groups = "scifa1_data";
272		renesas,function = "scifa1";
273	};
274
275	sdhi0_pins: sd0 {
276		renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
277		renesas,function = "sdhi0";
278	};
279
280	sdhi2_pins: sd2 {
281		renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
282		renesas,function = "sdhi2";
283	};
284
285	mmc1_pins: mmc1 {
286		renesas,groups = "mmc1_data8", "mmc1_ctrl";
287		renesas,function = "mmc1";
288	};
289
290	qspi_pins: spi0 {
291		renesas,groups = "qspi_ctrl", "qspi_data4";
292		renesas,function = "qspi";
293	};
294
295	msiof1_pins: spi2 {
296		renesas,groups = "msiof1_clk", "msiof1_sync", "msiof1_rx",
297				 "msiof1_tx";
298		renesas,function = "msiof1";
299	};
300
301	iic1_pins: iic1 {
302		renesas,groups = "iic1";
303		renesas,function = "iic1";
304	};
305
306	iic2_pins: iic2 {
307		renesas,groups = "iic2";
308		renesas,function = "iic2";
309	};
310
311	iic3_pins: iic3 {
312		renesas,groups = "iic3";
313		renesas,function = "iic3";
314	};
315
316	hsusb_pins: hsusb {
317		renesas,groups = "usb0_ovc_vbus";
318		renesas,function = "usb0";
319	};
320
321	usb0_pins: usb0 {
322		renesas,groups = "usb0";
323		renesas,function = "usb0";
324	};
325
326	usb1_pins: usb1 {
327		renesas,groups = "usb1";
328		renesas,function = "usb1";
329	};
330
331	usb2_pins: usb2 {
332		renesas,groups = "usb2";
333		renesas,function = "usb2";
334	};
335
336	vin1_pins: vin {
337		renesas,groups = "vin1_data8", "vin1_clk";
338		renesas,function = "vin1";
339	};
340
341	sound_pins: sound {
342		renesas,groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
343		renesas,function = "ssi";
344	};
345
346	sound_clk_pins: sound_clk {
347		renesas,groups = "audio_clk_a";
348		renesas,function = "audio_clk";
349	};
350};
351
352&ether {
353	pinctrl-0 = <&ether_pins &phy1_pins>;
354	pinctrl-names = "default";
355
356	phy-handle = <&phy1>;
357	renesas,ether-link-active-low;
358	status = "okay";
359
360	phy1: ethernet-phy@1 {
361		reg = <1>;
362		interrupt-parent = <&irqc0>;
363		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
364		micrel,led-mode = <1>;
365	};
366};
367
368&cmt0 {
369	status = "okay";
370};
371
372&mmcif1 {
373	pinctrl-0 = <&mmc1_pins>;
374	pinctrl-names = "default";
375
376	vmmc-supply = <&fixedregulator3v3>;
377	bus-width = <8>;
378	non-removable;
379	status = "okay";
380};
381
382&sata1 {
383	status = "okay";
384};
385
386&qspi {
387	pinctrl-0 = <&qspi_pins>;
388	pinctrl-names = "default";
389
390	status = "okay";
391
392	flash: flash@0 {
393		#address-cells = <1>;
394		#size-cells = <1>;
395		compatible = "spansion,s25fl512s";
396		reg = <0>;
397		spi-max-frequency = <30000000>;
398		spi-tx-bus-width = <4>;
399		spi-rx-bus-width = <4>;
400		spi-cpha;
401		spi-cpol;
402		m25p,fast-read;
403
404		partition@0 {
405			label = "loader";
406			reg = <0x00000000 0x00040000>;
407			read-only;
408		};
409		partition@40000 {
410			label = "user";
411			reg = <0x00040000 0x00400000>;
412			read-only;
413		};
414		partition@440000 {
415			label = "flash";
416			reg = <0x00440000 0x03bc0000>;
417		};
418	};
419};
420
421&scifa0 {
422	pinctrl-0 = <&scifa0_pins>;
423	pinctrl-names = "default";
424
425	status = "okay";
426};
427
428&scifa1 {
429	pinctrl-0 = <&scifa1_pins>;
430	pinctrl-names = "default";
431
432	status = "okay";
433};
434
435&msiof1 {
436	pinctrl-0 = <&msiof1_pins>;
437	pinctrl-names = "default";
438
439	status = "okay";
440
441	pmic: pmic@0 {
442		compatible = "renesas,r2a11302ft";
443		reg = <0>;
444		spi-max-frequency = <6000000>;
445		spi-cpol;
446		spi-cpha;
447	};
448};
449
450&sdhi0 {
451	pinctrl-0 = <&sdhi0_pins>;
452	pinctrl-names = "default";
453
454	vmmc-supply = <&vcc_sdhi0>;
455	vqmmc-supply = <&vccq_sdhi0>;
456	cd-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>;
457	status = "okay";
458};
459
460&sdhi2 {
461	pinctrl-0 = <&sdhi2_pins>;
462	pinctrl-names = "default";
463
464	vmmc-supply = <&vcc_sdhi2>;
465	vqmmc-supply = <&vccq_sdhi2>;
466	cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
467	status = "okay";
468};
469
470&cpu0 {
471	cpu0-supply = <&vdd_dvfs>;
472};
473
474&iic0	{
475	status = "okay";
476};
477
478&iic1	{
479	status = "okay";
480	pinctrl-0 = <&iic1_pins>;
481	pinctrl-names = "default";
482};
483
484&iic2	{
485	status = "okay";
486	pinctrl-0 = <&iic2_pins>;
487	pinctrl-names = "default";
488
489	clock-frequency = <100000>;
490
491	ak4643: sound-codec@12 {
492		compatible = "asahi-kasei,ak4643";
493		#sound-dai-cells = <0>;
494		reg = <0x12>;
495	};
496
497	composite-in@20 {
498		compatible = "adi,adv7180";
499		reg = <0x20>;
500		remote = <&vin1>;
501
502		port {
503			adv7180: endpoint {
504				bus-width = <8>;
505				remote-endpoint = <&vin1ep0>;
506			};
507		};
508	};
509};
510
511&iic3 {
512	pinctrl-names = "default";
513	pinctrl-0 = <&iic3_pins>;
514	status = "okay";
515
516	vdd_dvfs: regulator@68 {
517		compatible = "dlg,da9210";
518		reg = <0x68>;
519
520		regulator-min-microvolt = <1000000>;
521		regulator-max-microvolt = <1000000>;
522		regulator-boot-on;
523		regulator-always-on;
524	};
525};
526
527&pci0 {
528	status = "okay";
529	pinctrl-0 = <&usb0_pins>;
530	pinctrl-names = "default";
531};
532
533&pci1 {
534	status = "okay";
535	pinctrl-0 = <&usb1_pins>;
536	pinctrl-names = "default";
537};
538
539&xhci {
540	status = "okay";
541	pinctrl-0 = <&usb2_pins>;
542	pinctrl-names = "default";
543};
544
545&pci2 {
546	status = "okay";
547	pinctrl-0 = <&usb2_pins>;
548	pinctrl-names = "default";
549};
550
551&hsusb {
552	status = "okay";
553	pinctrl-0 = <&hsusb_pins>;
554	pinctrl-names = "default";
555	renesas,enable-gpio = <&gpio5 18 GPIO_ACTIVE_HIGH>;
556};
557
558&usbphy {
559	status = "okay";
560};
561
562/* composite video input */
563&vin1 {
564	pinctrl-0 = <&vin1_pins>;
565	pinctrl-names = "default";
566
567	status = "okay";
568
569	port {
570		#address-cells = <1>;
571		#size-cells = <0>;
572
573		vin1ep0: endpoint {
574			remote-endpoint = <&adv7180>;
575			bus-width = <8>;
576		};
577	};
578};
579
580&rcar_sound {
581	pinctrl-0 = <&sound_pins &sound_clk_pins>;
582	pinctrl-names = "default";
583
584	/* Single DAI */
585	#sound-dai-cells = <0>;
586
587	status = "okay";
588
589	rcar_sound,dai {
590		dai0 {
591			playback = <&ssi0 &src2 &dvc0>;
592			capture  = <&ssi1 &src3 &dvc1>;
593		};
594	};
595};
596
597&ssi1 {
598	shared-pin;
599};
600