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