Linux Audio

Check our new training course

Loading...
v4.17
  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		i2c9 = &gpioi2c1;
 54		i2c10 = &gpioi2c2;
 55		i2c11 = &gpioi2c4;
 56		i2c12 = &i2cexio1;
 57		i2c13 = &i2chdmi;
 58		i2c14 = &i2cexio4;
 59	};
 60
 61	chosen {
 62		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
 63		stdout-path = "serial0:115200n8";
 64	};
 65
 66	memory@40000000 {
 67		device_type = "memory";
 68		reg = <0 0x40000000 0 0x40000000>;
 69	};
 70
 71	memory@200000000 {
 72		device_type = "memory";
 73		reg = <2 0x00000000 0 0x40000000>;
 74	};
 75
 76	lbsc {
 77		#address-cells = <1>;
 78		#size-cells = <1>;
 79	};
 80
 81	keyboard {
 82		compatible = "gpio-keys";
 83
 84		key-1 {
 85			gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
 86			linux,code = <KEY_1>;
 87			label = "SW2-1";
 88			wakeup-source;
 89			debounce-interval = <20>;
 90		};
 91		key-2 {
 92			gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
 93			linux,code = <KEY_2>;
 94			label = "SW2-2";
 95			wakeup-source;
 96			debounce-interval = <20>;
 97		};
 98		key-3 {
 99			gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
100			linux,code = <KEY_3>;
101			label = "SW2-3";
102			wakeup-source;
103			debounce-interval = <20>;
104		};
105		key-4 {
106			gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
107			linux,code = <KEY_4>;
108			label = "SW2-4";
109			wakeup-source;
110			debounce-interval = <20>;
111		};
112		key-a {
113			gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
114			linux,code = <KEY_A>;
115			label = "SW30";
116			wakeup-source;
117			debounce-interval = <20>;
118		};
119		key-b {
120			gpios = <&gpio7 1 GPIO_ACTIVE_LOW>;
121			linux,code = <KEY_B>;
122			label = "SW31";
123			wakeup-source;
124			debounce-interval = <20>;
125		};
126		key-c {
127			gpios = <&gpio7 2 GPIO_ACTIVE_LOW>;
128			linux,code = <KEY_C>;
129			label = "SW32";
130			wakeup-source;
131			debounce-interval = <20>;
132		};
133		key-d {
134			gpios = <&gpio7 3 GPIO_ACTIVE_LOW>;
135			linux,code = <KEY_D>;
136			label = "SW33";
137			wakeup-source;
138			debounce-interval = <20>;
139		};
140		key-e {
141			gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
142			linux,code = <KEY_E>;
143			label = "SW34";
144			wakeup-source;
145			debounce-interval = <20>;
146		};
147		key-f {
148			gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
149			linux,code = <KEY_F>;
150			label = "SW35";
151			wakeup-source;
152			debounce-interval = <20>;
153		};
154		key-g {
155			gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
156			linux,code = <KEY_G>;
157			label = "SW36";
158			wakeup-source;
159			debounce-interval = <20>;
160		};
161	};
162
163	leds {
164		compatible = "gpio-leds";
165		led6 {
166			gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
167			label = "LED6";
168		};
169		led7 {
170			gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
171			label = "LED7";
172		};
173		led8 {
174			gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
175			label = "LED8";
176		};
177	};
178
179	vcc_sdhi0: regulator-vcc-sdhi0 {
180		compatible = "regulator-fixed";
181
182		regulator-name = "SDHI0 Vcc";
183		regulator-min-microvolt = <3300000>;
184		regulator-max-microvolt = <3300000>;
185
186		gpio = <&gpio7 17 GPIO_ACTIVE_HIGH>;
187		enable-active-high;
188	};
189
190	vccq_sdhi0: regulator-vccq-sdhi0 {
191		compatible = "regulator-gpio";
192
193		regulator-name = "SDHI0 VccQ";
194		regulator-min-microvolt = <1800000>;
195		regulator-max-microvolt = <3300000>;
196
197		gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
198		gpios-states = <1>;
199		states = <3300000 1
200			  1800000 0>;
201	};
202
203	vcc_sdhi1: regulator-vcc-sdhi1 {
204		compatible = "regulator-fixed";
205
206		regulator-name = "SDHI1 Vcc";
207		regulator-min-microvolt = <3300000>;
208		regulator-max-microvolt = <3300000>;
209
210		gpio = <&gpio7 18 GPIO_ACTIVE_HIGH>;
211		enable-active-high;
212	};
213
214	vccq_sdhi1: regulator-vccq-sdhi1 {
215		compatible = "regulator-gpio";
216
217		regulator-name = "SDHI1 VccQ";
218		regulator-min-microvolt = <1800000>;
219		regulator-max-microvolt = <3300000>;
220
221		gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
222		gpios-states = <1>;
223		states = <3300000 1
224			  1800000 0>;
225	};
226
227	vcc_sdhi2: regulator-vcc-sdhi2 {
228		compatible = "regulator-fixed";
229
230		regulator-name = "SDHI2 Vcc";
231		regulator-min-microvolt = <3300000>;
232		regulator-max-microvolt = <3300000>;
233
234		gpio = <&gpio7 19 GPIO_ACTIVE_HIGH>;
235		enable-active-high;
236	};
237
238	vccq_sdhi2: regulator-vccq-sdhi2 {
239		compatible = "regulator-gpio";
240
241		regulator-name = "SDHI2 VccQ";
242		regulator-min-microvolt = <1800000>;
243		regulator-max-microvolt = <3300000>;
244
245		gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
246		gpios-states = <1>;
247		states = <3300000 1
248			  1800000 0>;
249	};
250
251	audio_clock: audio_clock {
252		compatible = "fixed-clock";
253		#clock-cells = <0>;
254		clock-frequency = <11289600>;
 
255	};
256
257	rsnd_ak4643: sound {
258		compatible = "simple-audio-card";
259
260		simple-audio-card,format = "left_j";
261		simple-audio-card,bitclock-master = <&sndcodec>;
262		simple-audio-card,frame-master = <&sndcodec>;
263
264		sndcpu: simple-audio-card,cpu {
265			sound-dai = <&rcar_sound>;
266		};
267
268		sndcodec: simple-audio-card,codec {
269			sound-dai = <&ak4643>;
270			clocks = <&audio_clock>;
271		};
272	};
273
274	hdmi-in {
275		compatible = "hdmi-connector";
276		type = "a";
277
278		port {
279			hdmi_con_in: endpoint {
280				remote-endpoint = <&adv7612_in>;
281			};
282		};
283	};
284
285	cec_clock: cec-clock {
286		compatible = "fixed-clock";
287		#clock-cells = <0>;
288		clock-frequency = <12000000>;
289	};
290
291	hdmi-out {
292		compatible = "hdmi-connector";
293		type = "a";
294
295		port {
296			hdmi_con_out: endpoint {
297				remote-endpoint = <&adv7511_out>;
298			};
299		};
300	};
301
302	x2_clk: x2-clock {
303		compatible = "fixed-clock";
304		#clock-cells = <0>;
305		clock-frequency = <74250000>;
306	};
307
308	x13_clk: x13-clock {
309		compatible = "fixed-clock";
310		#clock-cells = <0>;
311		clock-frequency = <148500000>;
312	};
313
314	gpioi2c1: i2c-9 {
315		#address-cells = <1>;
316		#size-cells = <0>;
317		compatible = "i2c-gpio";
318		status = "disabled";
319		scl-gpios = <&gpio7 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
320		sda-gpios = <&gpio7 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
321		i2c-gpio,delay-us = <5>;
322	};
323
324	gpioi2c2: i2c-10 {
325		#address-cells = <1>;
326		#size-cells = <0>;
327		compatible = "i2c-gpio";
328		status = "disabled";
329		scl-gpios = <&gpio2 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
330		sda-gpios = <&gpio2 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
331		i2c-gpio,delay-us = <5>;
332	};
333
334	gpioi2c4: i2c-11 {
335		#address-cells = <1>;
336		#size-cells = <0>;
337		compatible = "i2c-gpio";
338		status = "disabled";
339		scl-gpios = <&gpio7 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
340		sda-gpios = <&gpio7 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
341		i2c-gpio,delay-us = <5>;
342	};
343
344	/*
345	 * I2C1 is routed to EXIO connector B, pins 64 (SCL) + 66 (SDA).
346	 * A fallback to GPIO is provided.
347	 */
348	i2cexio1: i2c-12 {
349		compatible = "i2c-demux-pinctrl";
350		i2c-parent = <&i2c1>, <&gpioi2c1>;
351		i2c-bus-name = "i2c-exio1";
352		#address-cells = <1>;
353		#size-cells = <0>;
354	};
355
356	/*
357	 * A fallback to GPIO is provided for I2C2.
358	 */
359	i2chdmi: i2c-13 {
360		compatible = "i2c-demux-pinctrl";
361		i2c-parent = <&i2c2>, <&gpioi2c2>;
362		i2c-bus-name = "i2c-hdmi";
363		#address-cells = <1>;
364		#size-cells = <0>;
365
366		ak4643: codec@12 {
367			compatible = "asahi-kasei,ak4643";
368			#sound-dai-cells = <0>;
369			reg = <0x12>;
370		};
371
372		composite-in@20 {
373			compatible = "adi,adv7180";
374			reg = <0x20>;
375			remote = <&vin1>;
376
377			port {
378				adv7180: endpoint {
379					bus-width = <8>;
380					remote-endpoint = <&vin1ep>;
381				};
382			};
383		};
384
385		hdmi@39 {
386			compatible = "adi,adv7511w";
387			reg = <0x39>;
388			interrupt-parent = <&gpio3>;
389			interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
390			clocks = <&cec_clock>;
391			clock-names = "cec";
392
393			adi,input-depth = <8>;
394			adi,input-colorspace = "rgb";
395			adi,input-clock = "1x";
396			adi,input-style = <1>;
397			adi,input-justification = "evenly";
398
399			ports {
400				#address-cells = <1>;
401				#size-cells = <0>;
402
403				port@0 {
404					reg = <0>;
405					adv7511_in: endpoint {
406						remote-endpoint = <&du_out_rgb>;
407					};
408				};
409
410				port@1 {
411					reg = <1>;
412					adv7511_out: endpoint {
413						remote-endpoint = <&hdmi_con_out>;
414					};
415				};
416			};
417		};
418
419		hdmi-in@4c {
420			compatible = "adi,adv7612";
421			reg = <0x4c>;
422			interrupt-parent = <&gpio4>;
423			interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
424			default-input = <0>;
425
426			ports {
427				#address-cells = <1>;
428				#size-cells = <0>;
429
430				port@0 {
431					reg = <0>;
432					adv7612_in: endpoint {
433						remote-endpoint = <&hdmi_con_in>;
434					};
435				};
436
437				port@2 {
438					reg = <2>;
439					adv7612_out: endpoint {
440						remote-endpoint = <&vin0ep2>;
441					};
442				};
443			};
444		};
445
446		eeprom@50 {
447			compatible = "renesas,r1ex24002", "atmel,24c02";
448			reg = <0x50>;
449			pagesize = <16>;
450		};
451	};
452
453	/*
454	 * I2C4 is routed to EXIO connector E, pins 37 (SCL) + 39 (SDA).
455	 * A fallback to GPIO is provided.
456	 */
457	i2cexio4: i2c-14 {
458		compatible = "i2c-demux-pinctrl";
459		i2c-parent = <&i2c4>, <&gpioi2c4>;
460		i2c-bus-name = "i2c-exio4";
461		#address-cells = <1>;
462		#size-cells = <0>;
463	};
464};
465
466&du {
467	pinctrl-0 = <&du_pins>;
468	pinctrl-names = "default";
469	status = "okay";
470
471	clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
 
 
472		 <&x13_clk>, <&x2_clk>;
473	clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
 
474
475	ports {
476		port@0 {
477			endpoint {
478				remote-endpoint = <&adv7511_in>;
479			};
480		};
481	};
482};
483
484&lvds0 {
485	status = "okay";
486
487	ports {
488		port@1 {
489			lvds_connector: endpoint {
490			};
491		};
492	};
493};
494
495&extal_clk {
496	clock-frequency = <20000000>;
497};
498
499&pfc {
500	pinctrl-0 = <&scif_clk_pins>;
501	pinctrl-names = "default";
502
503	i2c1_pins: i2c1 {
504		groups = "i2c1";
505		function = "i2c1";
506	};
507
508	i2c2_pins: i2c2 {
509		groups = "i2c2";
510		function = "i2c2";
511	};
512
513	i2c4_pins: i2c4 {
514		groups = "i2c4_c";
515		function = "i2c4";
516	};
517
518	du_pins: du {
519		groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
520		function = "du";
521	};
522
523	scif0_pins: scif0 {
524		groups = "scif0_data_d";
525		function = "scif0";
526	};
527
528	scif1_pins: scif1 {
529		groups = "scif1_data_d";
530		function = "scif1";
531	};
532
533	scif_clk_pins: scif_clk {
534		groups = "scif_clk";
535		function = "scif_clk";
536	};
537
538	ether_pins: ether {
539		groups = "eth_link", "eth_mdio", "eth_rmii";
540		function = "eth";
541	};
542
543	phy1_pins: phy1 {
544		groups = "intc_irq0";
545		function = "intc";
546	};
547
548	sdhi0_pins: sd0 {
549		groups = "sdhi0_data4", "sdhi0_ctrl";
550		function = "sdhi0";
551		power-source = <3300>;
552	};
553
554	sdhi0_pins_uhs: sd0_uhs {
555		groups = "sdhi0_data4", "sdhi0_ctrl";
556		function = "sdhi0";
557		power-source = <1800>;
558	};
559
560	sdhi1_pins: sd1 {
561		groups = "sdhi1_data4", "sdhi1_ctrl";
562		function = "sdhi1";
563		power-source = <3300>;
564	};
565
566	sdhi1_pins_uhs: sd1_uhs {
567		groups = "sdhi1_data4", "sdhi1_ctrl";
568		function = "sdhi1";
569		power-source = <1800>;
570	};
571
572	sdhi2_pins: sd2 {
573		groups = "sdhi2_data4", "sdhi2_ctrl";
574		function = "sdhi2";
575		power-source = <3300>;
576	};
577
578	sdhi2_pins_uhs: sd2_uhs {
579		groups = "sdhi2_data4", "sdhi2_ctrl";
580		function = "sdhi2";
581		power-source = <1800>;
582	};
583
584	qspi_pins: qspi {
585		groups = "qspi_ctrl", "qspi_data4";
586		function = "qspi";
587	};
588
589	msiof0_pins: msiof0 {
590		groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
591				 "msiof0_tx";
592		function = "msiof0";
593	};
594
595	usb0_pins: usb0 {
596		groups = "usb0";
597		function = "usb0";
598	};
599
600	usb1_pins: usb1 {
601		groups = "usb1";
602		function = "usb1";
603	};
604
605	vin0_pins: vin0 {
606		groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
607		function = "vin0";
608	};
609
610	vin1_pins: vin1 {
611		groups = "vin1_data8", "vin1_clk";
612		function = "vin1";
613	};
614
615	sound_pins: sound {
616		groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
617		function = "ssi";
618	};
619
620	sound_clk_pins: sound_clk {
621		groups = "audio_clk_a";
622		function = "audio_clk";
623	};
624};
625
626&ether {
627	pinctrl-0 = <&ether_pins &phy1_pins>;
628	pinctrl-names = "default";
629
630	phy-handle = <&phy1>;
631	renesas,ether-link-active-low;
632	status = "okay";
633
634	phy1: ethernet-phy@1 {
635		reg = <1>;
636		interrupt-parent = <&irqc0>;
637		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
638		micrel,led-mode = <1>;
639	};
640};
641
642&cmt0 {
643	status = "okay";
644};
645
646&sata0 {
647	status = "okay";
648};
649
650&scif0 {
651	pinctrl-0 = <&scif0_pins>;
652	pinctrl-names = "default";
653
654	status = "okay";
655};
656
657&scif1 {
658	pinctrl-0 = <&scif1_pins>;
659	pinctrl-names = "default";
660
661	status = "okay";
662};
663
664&scif_clk {
665	clock-frequency = <14745600>;
 
666};
667
668&sdhi0 {
669	pinctrl-0 = <&sdhi0_pins>;
670	pinctrl-1 = <&sdhi0_pins_uhs>;
671	pinctrl-names = "default", "state_uhs";
672
673	vmmc-supply = <&vcc_sdhi0>;
674	vqmmc-supply = <&vccq_sdhi0>;
675	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
676	wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
677	sd-uhs-sdr50;
678	sd-uhs-sdr104;
679	status = "okay";
680};
681
682&sdhi1 {
683	pinctrl-0 = <&sdhi1_pins>;
684	pinctrl-1 = <&sdhi1_pins_uhs>;
685	pinctrl-names = "default", "state_uhs";
686
687	vmmc-supply = <&vcc_sdhi1>;
688	vqmmc-supply = <&vccq_sdhi1>;
689	cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
690	wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
691	sd-uhs-sdr50;
692	status = "okay";
693};
694
695&sdhi2 {
696	pinctrl-0 = <&sdhi2_pins>;
697	pinctrl-1 = <&sdhi2_pins_uhs>;
698	pinctrl-names = "default", "state_uhs";
699
700	vmmc-supply = <&vcc_sdhi2>;
701	vqmmc-supply = <&vccq_sdhi2>;
702	cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
703	sd-uhs-sdr50;
704	status = "okay";
705};
706
707&qspi {
708	pinctrl-0 = <&qspi_pins>;
709	pinctrl-names = "default";
710
711	status = "okay";
712
713	flash: flash@0 {
714		compatible = "spansion,s25fl512s", "jedec,spi-nor";
715		reg = <0>;
716		spi-max-frequency = <30000000>;
717		spi-tx-bus-width = <4>;
718		spi-rx-bus-width = <4>;
719		spi-cpha;
720		spi-cpol;
721		m25p,fast-read;
722
723		partitions {
724			compatible = "fixed-partitions";
725			#address-cells = <1>;
726			#size-cells = <1>;
727
728			partition@0 {
729				label = "loader";
730				reg = <0x00000000 0x00080000>;
731				read-only;
732			};
733			partition@80000 {
734				label = "user";
735				reg = <0x00080000 0x00580000>;
736				read-only;
737			};
738			partition@600000 {
739				label = "flash";
740				reg = <0x00600000 0x03a00000>;
741			};
742		};
743	};
744};
745
746&msiof0 {
747	pinctrl-0 = <&msiof0_pins>;
748	pinctrl-names = "default";
749
750	status = "okay";
751
752	pmic: pmic@0 {
753		compatible = "renesas,r2a11302ft";
754		reg = <0>;
755		spi-max-frequency = <6000000>;
756		spi-cpol;
757		spi-cpha;
758	};
759};
760
761&i2c1 {
762	pinctrl-0 = <&i2c1_pins>;
763	pinctrl-names = "i2c-exio1";
764};
765
766&i2c2 {
767	pinctrl-0 = <&i2c2_pins>;
768	pinctrl-names = "i2c-hdmi";
769
 
770	clock-frequency = <100000>;
771};
772
773&i2c4 {
774	pinctrl-0 = <&i2c4_pins>;
775	pinctrl-names = "i2c-exio4";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
776};
777
778&i2c6 {
779	status = "okay";
780	clock-frequency = <100000>;
781
782	pmic@58 {
783		compatible = "dlg,da9063";
784		reg = <0x58>;
785		interrupt-parent = <&irqc0>;
786		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
787		interrupt-controller;
788
789		rtc {
790			compatible = "dlg,da9063-rtc";
791		};
792
793		wdt {
794			compatible = "dlg,da9063-watchdog";
795		};
796	};
797
798	vdd_dvfs: regulator@68 {
799		compatible = "dlg,da9210";
800		reg = <0x68>;
801		interrupt-parent = <&irqc0>;
802		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
803
804		regulator-min-microvolt = <1000000>;
805		regulator-max-microvolt = <1000000>;
806		regulator-boot-on;
807		regulator-always-on;
808	};
809};
810
811&pci0 {
812	status = "okay";
813	pinctrl-0 = <&usb0_pins>;
814	pinctrl-names = "default";
815};
816
817&pci1 {
818	status = "okay";
819	pinctrl-0 = <&usb1_pins>;
820	pinctrl-names = "default";
821};
822
823&hsusb {
824	status = "okay";
825	pinctrl-0 = <&usb0_pins>;
826	pinctrl-names = "default";
827	renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
828};
829
830&usbphy {
831	status = "okay";
832};
833
834&pcie_bus_clk {
835	clock-frequency = <100000000>;
 
836};
837
838&pciec {
839	status = "okay";
840};
841
842&cpu0 {
843	cpu0-supply = <&vdd_dvfs>;
844};
845
846/* HDMI video input */
847&vin0 {
848	status = "okay";
849	pinctrl-0 = <&vin0_pins>;
850	pinctrl-names = "default";
851
852	port {
853		#address-cells = <1>;
854		#size-cells = <0>;
855
856		vin0ep2: endpoint {
857			remote-endpoint = <&adv7612_out>;
858			bus-width = <24>;
859			hsync-active = <0>;
860			vsync-active = <0>;
861			pclk-sample = <1>;
862			data-active = <1>;
863		};
864	};
865};
866
867/* composite video input */
868&vin1 {
869	status = "okay";
870	pinctrl-0 = <&vin1_pins>;
871	pinctrl-names = "default";
872
873	port {
874		#address-cells = <1>;
875		#size-cells = <0>;
876
877		vin1ep: endpoint {
878			remote-endpoint = <&adv7180>;
879			bus-width = <8>;
880		};
881	};
882};
883
884&rcar_sound {
885	pinctrl-0 = <&sound_pins &sound_clk_pins>;
886	pinctrl-names = "default";
887
888	/* Single DAI */
889	#sound-dai-cells = <0>;
890
891	status = "okay";
892
893	rcar_sound,dai {
894		dai0 {
895			playback = <&ssi0 &src2 &dvc0>;
896			capture  = <&ssi1 &src3 &dvc1>;
897		};
898	};
899};
900
901&ssi1 {
902	shared-pin;
903};
v4.6
  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@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	audio_clock: clock {
246		compatible = "fixed-clock";
247		#clock-cells = <0>;
248		clock-frequency = <11289600>;
249		clock-output-names = "audio_clock";
250	};
251
252	rsnd_ak4643: sound {
253		compatible = "simple-audio-card";
254
255		simple-audio-card,format = "left_j";
256		simple-audio-card,bitclock-master = <&sndcodec>;
257		simple-audio-card,frame-master = <&sndcodec>;
258
259		sndcpu: simple-audio-card,cpu {
260			sound-dai = <&rcar_sound>;
261		};
262
263		sndcodec: simple-audio-card,codec {
264			sound-dai = <&ak4643>;
265			clocks = <&audio_clock>;
266		};
267	};
268
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269	hdmi-out {
270		compatible = "hdmi-connector";
271		type = "a";
272
273		port {
274			hdmi_con: endpoint {
275				remote-endpoint = <&adv7511_out>;
276			};
277		};
278	};
279
280	x2_clk: x2-clock {
281		compatible = "fixed-clock";
282		#clock-cells = <0>;
283		clock-frequency = <148500000>;
284	};
285
286	x13_clk: x13-clock {
287		compatible = "fixed-clock";
288		#clock-cells = <0>;
289		clock-frequency = <148500000>;
290	};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291};
292
293&du {
294	pinctrl-0 = <&du_pins>;
295	pinctrl-names = "default";
296	status = "okay";
297
298	clocks = <&mstp7_clks R8A7791_CLK_DU0>,
299		 <&mstp7_clks R8A7791_CLK_DU1>,
300		 <&mstp7_clks R8A7791_CLK_LVDS0>,
301		 <&x13_clk>, <&x2_clk>;
302	clock-names = "du.0", "du.1", "lvds.0",
303		      "dclkin.0", "dclkin.1";
304
305	ports {
306		port@0 {
307			endpoint {
308				remote-endpoint = <&adv7511_in>;
309			};
310		};
 
 
 
 
 
 
 
311		port@1 {
312			lvds_connector: endpoint {
313			};
314		};
315	};
316};
317
318&extal_clk {
319	clock-frequency = <20000000>;
320};
321
322&pfc {
323	pinctrl-0 = <&scif_clk_pins>;
324	pinctrl-names = "default";
325
 
 
 
 
 
326	i2c2_pins: i2c2 {
327		renesas,groups = "i2c2";
328		renesas,function = "i2c2";
 
 
 
 
 
329	};
330
331	du_pins: du {
332		renesas,groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
333		renesas,function = "du";
334	};
335
336	scif0_pins: serial0 {
337		renesas,groups = "scif0_data_d";
338		renesas,function = "scif0";
339	};
340
341	scif1_pins: serial1 {
342		renesas,groups = "scif1_data_d";
343		renesas,function = "scif1";
344	};
345
346	scif_clk_pins: scif_clk {
347		renesas,groups = "scif_clk";
348		renesas,function = "scif_clk";
349	};
350
351	ether_pins: ether {
352		renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
353		renesas,function = "eth";
354	};
355
356	phy1_pins: phy1 {
357		renesas,groups = "intc_irq0";
358		renesas,function = "intc";
359	};
360
361	sdhi0_pins: sd0 {
362		renesas,groups = "sdhi0_data4", "sdhi0_ctrl";
363		renesas,function = "sdhi0";
 
 
 
 
 
 
 
364	};
365
366	sdhi1_pins: sd1 {
367		renesas,groups = "sdhi1_data4", "sdhi1_ctrl";
368		renesas,function = "sdhi1";
 
 
 
 
 
 
 
369	};
370
371	sdhi2_pins: sd2 {
372		renesas,groups = "sdhi2_data4", "sdhi2_ctrl";
373		renesas,function = "sdhi2";
 
 
 
 
 
 
 
374	};
375
376	qspi_pins: spi0 {
377		renesas,groups = "qspi_ctrl", "qspi_data4";
378		renesas,function = "qspi";
379	};
380
381	msiof0_pins: spi1 {
382		renesas,groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
383				 "msiof0_tx";
384		renesas,function = "msiof0";
385	};
386
387	usb0_pins: usb0 {
388		renesas,groups = "usb0";
389		renesas,function = "usb0";
390	};
391
392	usb1_pins: usb1 {
393		renesas,groups = "usb1";
394		renesas,function = "usb1";
 
 
 
 
 
395	};
396
397	vin1_pins: vin1 {
398		renesas,groups = "vin1_data8", "vin1_clk";
399		renesas,function = "vin1";
400	};
401
402	sound_pins: sound {
403		renesas,groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
404		renesas,function = "ssi";
405	};
406
407	sound_clk_pins: sound_clk {
408		renesas,groups = "audio_clk_a";
409		renesas,function = "audio_clk";
410	};
411};
412
413&ether {
414	pinctrl-0 = <&ether_pins &phy1_pins>;
415	pinctrl-names = "default";
416
417	phy-handle = <&phy1>;
418	renesas,ether-link-active-low;
419	status = "okay";
420
421	phy1: ethernet-phy@1 {
422		reg = <1>;
423		interrupt-parent = <&irqc0>;
424		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
425		micrel,led-mode = <1>;
426	};
427};
428
429&cmt0 {
430	status = "okay";
431};
432
433&sata0 {
434	status = "okay";
435};
436
437&scif0 {
438	pinctrl-0 = <&scif0_pins>;
439	pinctrl-names = "default";
440
441	status = "okay";
442};
443
444&scif1 {
445	pinctrl-0 = <&scif1_pins>;
446	pinctrl-names = "default";
447
448	status = "okay";
449};
450
451&scif_clk {
452	clock-frequency = <14745600>;
453	status = "okay";
454};
455
456&sdhi0 {
457	pinctrl-0 = <&sdhi0_pins>;
458	pinctrl-names = "default";
 
459
460	vmmc-supply = <&vcc_sdhi0>;
461	vqmmc-supply = <&vccq_sdhi0>;
462	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
463	wp-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
 
 
464	status = "okay";
465};
466
467&sdhi1 {
468	pinctrl-0 = <&sdhi1_pins>;
469	pinctrl-names = "default";
 
470
471	vmmc-supply = <&vcc_sdhi1>;
472	vqmmc-supply = <&vccq_sdhi1>;
473	cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
474	wp-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
 
475	status = "okay";
476};
477
478&sdhi2 {
479	pinctrl-0 = <&sdhi2_pins>;
480	pinctrl-names = "default";
 
481
482	vmmc-supply = <&vcc_sdhi2>;
483	vqmmc-supply = <&vccq_sdhi2>;
484	cd-gpios = <&gpio6 22 GPIO_ACTIVE_LOW>;
 
485	status = "okay";
486};
487
488&qspi {
489	pinctrl-0 = <&qspi_pins>;
490	pinctrl-names = "default";
491
492	status = "okay";
493
494	flash: flash@0 {
495		compatible = "spansion,s25fl512s", "jedec,spi-nor";
496		reg = <0>;
497		spi-max-frequency = <30000000>;
498		spi-tx-bus-width = <4>;
499		spi-rx-bus-width = <4>;
500		spi-cpha;
501		spi-cpol;
502		m25p,fast-read;
503
504		partitions {
505			compatible = "fixed-partitions";
506			#address-cells = <1>;
507			#size-cells = <1>;
508
509			partition@0 {
510				label = "loader";
511				reg = <0x00000000 0x00080000>;
512				read-only;
513			};
514			partition@80000 {
515				label = "user";
516				reg = <0x00080000 0x00580000>;
517				read-only;
518			};
519			partition@600000 {
520				label = "flash";
521				reg = <0x00600000 0x03a00000>;
522			};
523		};
524	};
525};
526
527&msiof0 {
528	pinctrl-0 = <&msiof0_pins>;
529	pinctrl-names = "default";
530
531	status = "okay";
532
533	pmic: pmic@0 {
534		compatible = "renesas,r2a11302ft";
535		reg = <0>;
536		spi-max-frequency = <6000000>;
537		spi-cpol;
538		spi-cpha;
539	};
540};
541
 
 
 
 
 
542&i2c2 {
543	pinctrl-0 = <&i2c2_pins>;
544	pinctrl-names = "default";
545
546	status = "okay";
547	clock-frequency = <100000>;
 
548
549	ak4643: codec@12 {
550		compatible = "asahi-kasei,ak4643";
551		#sound-dai-cells = <0>;
552		reg = <0x12>;
553	};
554
555	composite-in@20 {
556		compatible = "adi,adv7180";
557		reg = <0x20>;
558		remote = <&vin1>;
559
560		port {
561			adv7180: endpoint {
562				bus-width = <8>;
563				remote-endpoint = <&vin1ep>;
564			};
565		};
566	};
567
568	hdmi@39 {
569		compatible = "adi,adv7511w";
570		reg = <0x39>;
571		interrupt-parent = <&gpio3>;
572		interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
573
574		adi,input-depth = <8>;
575		adi,input-colorspace = "rgb";
576		adi,input-clock = "1x";
577		adi,input-style = <1>;
578		adi,input-justification = "evenly";
579
580		ports {
581			#address-cells = <1>;
582			#size-cells = <0>;
583
584			port@0 {
585				reg = <0>;
586				adv7511_in: endpoint {
587					remote-endpoint = <&du_out_rgb>;
588				};
589			};
590
591			port@1 {
592				reg = <1>;
593				adv7511_out: endpoint {
594					remote-endpoint = <&hdmi_con>;
595				};
596			};
597		};
598	};
599
600	eeprom@50 {
601		compatible = "renesas,24c02";
602		reg = <0x50>;
603		pagesize = <16>;
604	};
605};
606
607&i2c6 {
608	status = "okay";
609	clock-frequency = <100000>;
610
611	pmic@58 {
612		compatible = "dlg,da9063";
613		reg = <0x58>;
614		interrupt-parent = <&irqc0>;
615		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
616		interrupt-controller;
617
618		rtc {
619			compatible = "dlg,da9063-rtc";
620		};
621
622		wdt {
623			compatible = "dlg,da9063-watchdog";
624		};
625	};
626
627	vdd_dvfs: regulator@68 {
628		compatible = "dlg,da9210";
629		reg = <0x68>;
630		interrupt-parent = <&irqc0>;
631		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
632
633		regulator-min-microvolt = <1000000>;
634		regulator-max-microvolt = <1000000>;
635		regulator-boot-on;
636		regulator-always-on;
637	};
638};
639
640&pci0 {
641	status = "okay";
642	pinctrl-0 = <&usb0_pins>;
643	pinctrl-names = "default";
644};
645
646&pci1 {
647	status = "okay";
648	pinctrl-0 = <&usb1_pins>;
649	pinctrl-names = "default";
650};
651
652&hsusb {
653	status = "okay";
654	pinctrl-0 = <&usb0_pins>;
655	pinctrl-names = "default";
656	renesas,enable-gpio = <&gpio5 31 GPIO_ACTIVE_HIGH>;
657};
658
659&usbphy {
660	status = "okay";
661};
662
663&pcie_bus_clk {
664	clock-frequency = <100000000>;
665	status = "okay";
666};
667
668&pciec {
669	status = "okay";
670};
671
672&cpu0 {
673	cpu0-supply = <&vdd_dvfs>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
674};
675
676/* composite video input */
677&vin1 {
678	status = "okay";
679	pinctrl-0 = <&vin1_pins>;
680	pinctrl-names = "default";
681
682	port {
683		#address-cells = <1>;
684		#size-cells = <0>;
685
686		vin1ep: endpoint {
687			remote-endpoint = <&adv7180>;
688			bus-width = <8>;
689		};
690	};
691};
692
693&rcar_sound {
694	pinctrl-0 = <&sound_pins &sound_clk_pins>;
695	pinctrl-names = "default";
696
697	/* Single DAI */
698	#sound-dai-cells = <0>;
699
700	status = "okay";
701
702	rcar_sound,dai {
703		dai0 {
704			playback = <&ssi0 &src2 &dvc0>;
705			capture  = <&ssi1 &src3 &dvc1>;
706		};
707	};
708};
709
710&ssi1 {
711	shared-pin;
712};