Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  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};