• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 = "serial0:115200n8";
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			wakeup-source;
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			wakeup-source;
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			wakeup-source;
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			wakeup-source;
104			debounce-interval = <20>;
105		};
106		key-a {
107			gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
108			linux,code = <KEY_A>;
109			label = "SW30";
110			wakeup-source;
111			debounce-interval = <20>;
112		};
113		key-b {
114			gpios = <&gpio7 1 GPIO_ACTIVE_LOW>;
115			linux,code = <KEY_B>;
116			label = "SW31";
117			wakeup-source;
118			debounce-interval = <20>;
119		};
120		key-c {
121			gpios = <&gpio7 2 GPIO_ACTIVE_LOW>;
122			linux,code = <KEY_C>;
123			label = "SW32";
124			wakeup-source;
125			debounce-interval = <20>;
126		};
127		key-d {
128			gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
129			linux,code = <KEY_D>;
130			label = "SW33";
131			wakeup-source;
132			debounce-interval = <20>;
133		};
134		key-e {
135			gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
136			linux,code = <KEY_E>;
137			label = "SW34";
138			wakeup-source;
139			debounce-interval = <20>;
140		};
141		key-f {
142			gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
143			linux,code = <KEY_F>;
144			label = "SW35";
145			wakeup-source;
146			debounce-interval = <20>;
147		};
148		key-g {
149			gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
150			linux,code = <KEY_G>;
151			label = "SW36";
152			wakeup-source;
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-vcc-sdhi0 {
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-vccq-sdhi0 {
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-vcc-sdhi1 {
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-vccq-sdhi1 {
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-vcc-sdhi2 {
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-vccq-sdhi2 {
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	audio_clock: audio_clock {
246		compatible = "fixed-clock";
247		#clock-cells = <0>;
248		clock-frequency = <11289600>;
249	};
250
251	rsnd_ak4643: sound {
252		compatible = "simple-audio-card";
253
254		simple-audio-card,format = "left_j";
255		simple-audio-card,bitclock-master = <&sndcodec>;
256		simple-audio-card,frame-master = <&sndcodec>;
257
258		sndcpu: simple-audio-card,cpu {
259			sound-dai = <&rcar_sound>;
260		};
261
262		sndcodec: simple-audio-card,codec {
263			sound-dai = <&ak4643>;
264			clocks = <&audio_clock>;
265		};
266	};
267
268	hdmi-out {
269		compatible = "hdmi-connector";
270		type = "a";
271
272		port {
273			hdmi_con: endpoint {
274				remote-endpoint = <&adv7511_out>;
275			};
276		};
277	};
278
279	x2_clk: x2-clock {
280		compatible = "fixed-clock";
281		#clock-cells = <0>;
282		clock-frequency = <74250000>;
283	};
284
285	x13_clk: x13-clock {
286		compatible = "fixed-clock";
287		#clock-cells = <0>;
288		clock-frequency = <148500000>;
289	};
290};
291
292&du {
293	pinctrl-0 = <&du_pins>;
294	pinctrl-names = "default";
295	status = "okay";
296
297	clocks = <&mstp7_clks R8A7791_CLK_DU0>,
298		 <&mstp7_clks R8A7791_CLK_DU1>,
299		 <&mstp7_clks R8A7791_CLK_LVDS0>,
300		 <&x13_clk>, <&x2_clk>;
301	clock-names = "du.0", "du.1", "lvds.0",
302		      "dclkin.0", "dclkin.1";
303
304	ports {
305		port@0 {
306			endpoint {
307				remote-endpoint = <&adv7511_in>;
308			};
309		};
310		port@1 {
311			lvds_connector: endpoint {
312			};
313		};
314	};
315};
316
317&extal_clk {
318	clock-frequency = <20000000>;
319};
320
321&pfc {
322	pinctrl-0 = <&scif_clk_pins>;
323	pinctrl-names = "default";
324
325	i2c2_pins: i2c2 {
326		groups = "i2c2";
327		function = "i2c2";
328	};
329
330	du_pins: du {
331		groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
332		function = "du";
333	};
334
335	scif0_pins: scif0 {
336		groups = "scif0_data_d";
337		function = "scif0";
338	};
339
340	scif1_pins: scif1 {
341		groups = "scif1_data_d";
342		function = "scif1";
343	};
344
345	scif_clk_pins: scif_clk {
346		groups = "scif_clk";
347		function = "scif_clk";
348	};
349
350	ether_pins: ether {
351		groups = "eth_link", "eth_mdio", "eth_rmii";
352		function = "eth";
353	};
354
355	phy1_pins: phy1 {
356		groups = "intc_irq0";
357		function = "intc";
358	};
359
360	sdhi0_pins: sd0 {
361		groups = "sdhi0_data4", "sdhi0_ctrl";
362		function = "sdhi0";
363	};
364
365	sdhi1_pins: sd1 {
366		groups = "sdhi1_data4", "sdhi1_ctrl";
367		function = "sdhi1";
368	};
369
370	sdhi2_pins: sd2 {
371		groups = "sdhi2_data4", "sdhi2_ctrl";
372		function = "sdhi2";
373	};
374
375	qspi_pins: qspi {
376		groups = "qspi_ctrl", "qspi_data4";
377		function = "qspi";
378	};
379
380	msiof0_pins: msiof0 {
381		groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
382				 "msiof0_tx";
383		function = "msiof0";
384	};
385
386	usb0_pins: usb0 {
387		groups = "usb0";
388		function = "usb0";
389	};
390
391	usb1_pins: usb1 {
392		groups = "usb1";
393		function = "usb1";
394	};
395
396	vin1_pins: vin1 {
397		groups = "vin1_data8", "vin1_clk";
398		function = "vin1";
399	};
400
401	sound_pins: sound {
402		groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
403		function = "ssi";
404	};
405
406	sound_clk_pins: sound_clk {
407		groups = "audio_clk_a";
408		function = "audio_clk";
409	};
410};
411
412&ether {
413	pinctrl-0 = <&ether_pins &phy1_pins>;
414	pinctrl-names = "default";
415
416	phy-handle = <&phy1>;
417	renesas,ether-link-active-low;
418	status = "okay";
419
420	phy1: ethernet-phy@1 {
421		reg = <1>;
422		interrupt-parent = <&irqc0>;
423		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
424		micrel,led-mode = <1>;
425	};
426};
427
428&cmt0 {
429	status = "okay";
430};
431
432&sata0 {
433	status = "okay";
434};
435
436&scif0 {
437	pinctrl-0 = <&scif0_pins>;
438	pinctrl-names = "default";
439
440	status = "okay";
441};
442
443&scif1 {
444	pinctrl-0 = <&scif1_pins>;
445	pinctrl-names = "default";
446
447	status = "okay";
448};
449
450&scif_clk {
451	clock-frequency = <14745600>;
452	status = "okay";
453};
454
455&sdhi0 {
456	pinctrl-0 = <&sdhi0_pins>;
457	pinctrl-names = "default";
458
459	vmmc-supply = <&vcc_sdhi0>;
460	vqmmc-supply = <&vccq_sdhi0>;
461	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
462	wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
463	status = "okay";
464};
465
466&sdhi1 {
467	pinctrl-0 = <&sdhi1_pins>;
468	pinctrl-names = "default";
469
470	vmmc-supply = <&vcc_sdhi1>;
471	vqmmc-supply = <&vccq_sdhi1>;
472	cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
473	wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
474	status = "okay";
475};
476
477&sdhi2 {
478	pinctrl-0 = <&sdhi2_pins>;
479	pinctrl-names = "default";
480
481	vmmc-supply = <&vcc_sdhi2>;
482	vqmmc-supply = <&vccq_sdhi2>;
483	cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
484	status = "okay";
485};
486
487&qspi {
488	pinctrl-0 = <&qspi_pins>;
489	pinctrl-names = "default";
490
491	status = "okay";
492
493	flash: flash@0 {
494		compatible = "spansion,s25fl512s", "jedec,spi-nor";
495		reg = <0>;
496		spi-max-frequency = <30000000>;
497		spi-tx-bus-width = <4>;
498		spi-rx-bus-width = <4>;
499		spi-cpha;
500		spi-cpol;
501		m25p,fast-read;
502
503		partitions {
504			compatible = "fixed-partitions";
505			#address-cells = <1>;
506			#size-cells = <1>;
507
508			partition@0 {
509				label = "loader";
510				reg = <0x00000000 0x00080000>;
511				read-only;
512			};
513			partition@80000 {
514				label = "user";
515				reg = <0x00080000 0x00580000>;
516				read-only;
517			};
518			partition@600000 {
519				label = "flash";
520				reg = <0x00600000 0x03a00000>;
521			};
522		};
523	};
524};
525
526&msiof0 {
527	pinctrl-0 = <&msiof0_pins>;
528	pinctrl-names = "default";
529
530	status = "okay";
531
532	pmic: pmic@0 {
533		compatible = "renesas,r2a11302ft";
534		reg = <0>;
535		spi-max-frequency = <6000000>;
536		spi-cpol;
537		spi-cpha;
538	};
539};
540
541&i2c2 {
542	pinctrl-0 = <&i2c2_pins>;
543	pinctrl-names = "default";
544
545	status = "okay";
546	clock-frequency = <100000>;
547
548	ak4643: codec@12 {
549		compatible = "asahi-kasei,ak4643";
550		#sound-dai-cells = <0>;
551		reg = <0x12>;
552	};
553
554	composite-in@20 {
555		compatible = "adi,adv7180";
556		reg = <0x20>;
557		remote = <&vin1>;
558
559		port {
560			adv7180: endpoint {
561				bus-width = <8>;
562				remote-endpoint = <&vin1ep>;
563			};
564		};
565	};
566
567	hdmi@39 {
568		compatible = "adi,adv7511w";
569		reg = <0x39>;
570		interrupt-parent = <&gpio3>;
571		interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
572
573		adi,input-depth = <8>;
574		adi,input-colorspace = "rgb";
575		adi,input-clock = "1x";
576		adi,input-style = <1>;
577		adi,input-justification = "evenly";
578
579		ports {
580			#address-cells = <1>;
581			#size-cells = <0>;
582
583			port@0 {
584				reg = <0>;
585				adv7511_in: endpoint {
586					remote-endpoint = <&du_out_rgb>;
587				};
588			};
589
590			port@1 {
591				reg = <1>;
592				adv7511_out: endpoint {
593					remote-endpoint = <&hdmi_con>;
594				};
595			};
596		};
597	};
598
599	eeprom@50 {
600		compatible = "renesas,24c02";
601		reg = <0x50>;
602		pagesize = <16>;
603	};
604};
605
606&i2c6 {
607	status = "okay";
608	clock-frequency = <100000>;
609
610	pmic@58 {
611		compatible = "dlg,da9063";
612		reg = <0x58>;
613		interrupt-parent = <&irqc0>;
614		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
615		interrupt-controller;
616
617		rtc {
618			compatible = "dlg,da9063-rtc";
619		};
620
621		wdt {
622			compatible = "dlg,da9063-watchdog";
623		};
624	};
625
626	vdd_dvfs: regulator@68 {
627		compatible = "dlg,da9210";
628		reg = <0x68>;
629		interrupt-parent = <&irqc0>;
630		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
631
632		regulator-min-microvolt = <1000000>;
633		regulator-max-microvolt = <1000000>;
634		regulator-boot-on;
635		regulator-always-on;
636	};
637};
638
639&pci0 {
640	status = "okay";
641	pinctrl-0 = <&usb0_pins>;
642	pinctrl-names = "default";
643};
644
645&pci1 {
646	status = "okay";
647	pinctrl-0 = <&usb1_pins>;
648	pinctrl-names = "default";
649};
650
651&hsusb {
652	status = "okay";
653	pinctrl-0 = <&usb0_pins>;
654	pinctrl-names = "default";
655	renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
656};
657
658&usbphy {
659	status = "okay";
660};
661
662&pcie_bus_clk {
663	clock-frequency = <100000000>;
664	status = "okay";
665};
666
667&pciec {
668	status = "okay";
669};
670
671&cpu0 {
672	cpu0-supply = <&vdd_dvfs>;
673};
674
675/* composite video input */
676&vin1 {
677	status = "okay";
678	pinctrl-0 = <&vin1_pins>;
679	pinctrl-names = "default";
680
681	port {
682		#address-cells = <1>;
683		#size-cells = <0>;
684
685		vin1ep: endpoint {
686			remote-endpoint = <&adv7180>;
687			bus-width = <8>;
688		};
689	};
690};
691
692&rcar_sound {
693	pinctrl-0 = <&sound_pins &sound_clk_pins>;
694	pinctrl-names = "default";
695
696	/* Single DAI */
697	#sound-dai-cells = <0>;
698
699	status = "okay";
700
701	rcar_sound,dai {
702		dai0 {
703			playback = <&ssi0 &src2 &dvc0>;
704			capture  = <&ssi1 &src3 &dvc1>;
705		};
706	};
707};
708
709&ssi1 {
710	shared-pin;
711};
712