Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * Device Tree Source for the SILK board
  4 *
  5 * Copyright (C) 2014 Renesas Electronics Corporation
  6 * Copyright (C) 2014-2015 Renesas Solutions Corp.
  7 * Copyright (C) 2014-2015 Cogent Embedded, Inc.
  8 */
  9
 10/*
 11 * SSI-AK4643
 12 *
 13 * SW1: 2-1: AK4643
 14 *      2-3: ADV7511
 15 *
 16 * This command is required before playback/capture:
 17 *
 18 *	amixer set "LINEOUT Mixer DACL" on
 19 */
 20
 21/dts-v1/;
 22#include "r8a7794.dtsi"
 23#include <dt-bindings/gpio/gpio.h>
 24#include <dt-bindings/input/input.h>
 25
 26/ {
 27	model = "SILK";
 28	compatible = "renesas,silk", "renesas,r8a7794";
 29
 30	aliases {
 31		serial0 = &scif2;
 32		i2c9 = &gpioi2c1;
 33		i2c10 = &i2chdmi;
 34		mmc0 = &mmcif0;
 35		mmc1 = &sdhi1;
 36	};
 37
 38	chosen {
 39		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
 40		stdout-path = "serial0:115200n8";
 41	};
 42
 43	memory@40000000 {
 44		device_type = "memory";
 45		reg = <0 0x40000000 0 0x40000000>;
 46	};
 47
 48	keyboard {
 49		compatible = "gpio-keys";
 50
 51		pinctrl-0 = <&keyboard_pins>;
 52		pinctrl-names = "default";
 53
 54		key-3 {
 55			gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
 56			linux,code = <KEY_3>;
 57			label = "SW3";
 58			wakeup-source;
 59			debounce-interval = <20>;
 60		};
 61		key-4 {
 62			gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
 63			linux,code = <KEY_4>;
 64			label = "SW4";
 65			wakeup-source;
 66			debounce-interval = <20>;
 67		};
 68		key-6 {
 69			gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
 70			linux,code = <KEY_6>;
 71			label = "SW6";
 72			wakeup-source;
 73			debounce-interval = <20>;
 74		};
 75		key-a {
 76			gpios = <&gpio3 9 GPIO_ACTIVE_LOW>;
 77			linux,code = <KEY_A>;
 78			label = "SW12-1";
 79			wakeup-source;
 80			debounce-interval = <20>;
 81		};
 82		key-b {
 83			gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
 84			linux,code = <KEY_B>;
 85			label = "SW12-2";
 86			wakeup-source;
 87			debounce-interval = <20>;
 88		};
 89		key-c {
 90			gpios = <&gpio3 11 GPIO_ACTIVE_LOW>;
 91			linux,code = <KEY_C>;
 92			label = "SW12-3";
 93			wakeup-source;
 94			debounce-interval = <20>;
 95		};
 96		key-d {
 97			gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
 98			linux,code = <KEY_D>;
 99			label = "SW12-4";
100			wakeup-source;
101			debounce-interval = <20>;
102		};
103	};
104
105	d3_3v: regulator-d3-3v {
106		compatible = "regulator-fixed";
107		regulator-name = "D3.3V";
108		regulator-min-microvolt = <3300000>;
109		regulator-max-microvolt = <3300000>;
110		regulator-boot-on;
111		regulator-always-on;
112	};
113
114	vcc_sdhi1: regulator-vcc-sdhi1 {
115		compatible = "regulator-fixed";
116
117		regulator-name = "SDHI1 Vcc";
118		regulator-min-microvolt = <3300000>;
119		regulator-max-microvolt = <3300000>;
120
121		gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
122		enable-active-high;
123	};
124
125	vccq_sdhi1: regulator-vccq-sdhi1 {
126		compatible = "regulator-gpio";
127
128		regulator-name = "SDHI1 VccQ";
129		regulator-min-microvolt = <1800000>;
130		regulator-max-microvolt = <3300000>;
131
132		gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
133		gpios-states = <1>;
134		states = <3300000 1>, <1800000 0>;
135	};
136
137	vga-encoder {
138		compatible = "adi,adv7123";
139
140		ports {
141			#address-cells = <1>;
142			#size-cells = <0>;
143
144			port@0 {
145				reg = <0>;
146				adv7123_in: endpoint {
147					remote-endpoint = <&du_out_rgb1>;
148				};
149			};
150			port@1 {
151				reg = <1>;
152				adv7123_out: endpoint {
153					remote-endpoint = <&vga_in>;
154				};
155			};
156		};
157	};
158
159	hdmi-out {
160		compatible = "hdmi-connector";
161		type = "a";
162
163		port {
164			hdmi_con: endpoint {
165				remote-endpoint = <&adv7511_out>;
166			};
167		};
168	};
169
170	vga {
171		compatible = "vga-connector";
172
173		port {
174			vga_in: endpoint {
175				remote-endpoint = <&adv7123_out>;
176			};
177		};
178	};
179
180	x2_clk: x2-clock {
181		compatible = "fixed-clock";
182		#clock-cells = <0>;
183		clock-frequency = <148500000>;
184	};
185
186	x3_clk: x3-clock {
187		compatible = "fixed-clock";
188		#clock-cells = <0>;
189		clock-frequency = <74250000>;
190	};
191
192	x9_clk: audio_clock {
193		compatible = "fixed-clock";
194		#clock-cells = <0>;
195		clock-frequency = <12288000>;
196	};
197
198	sound {
199		compatible = "simple-audio-card";
200
201		simple-audio-card,format = "left_j";
202		simple-audio-card,bitclock-master = <&soundcodec>;
203		simple-audio-card,frame-master = <&soundcodec>;
204
205		simple-audio-card,cpu {
206			sound-dai = <&rcar_sound>;
207		};
208
209		soundcodec: simple-audio-card,codec {
210			sound-dai = <&ak4643>;
211			clocks = <&x9_clk>;
212		};
213	};
214
215	gpioi2c1: i2c-9 {
216		#address-cells = <1>;
217		#size-cells = <0>;
218		compatible = "i2c-gpio";
219		status = "disabled";
220		scl-gpios = <&gpio4 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
221		sda-gpios = <&gpio4 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
222		i2c-gpio,delay-us = <5>;
223	};
224
225	/*
226	 * A fallback to GPIO is provided for I2C1.
227	 */
228	i2chdmi: i2c-10 {
229		compatible = "i2c-demux-pinctrl";
230		i2c-parent = <&i2c1>, <&gpioi2c1>;
231		i2c-bus-name = "i2c-hdmi";
232		#address-cells = <1>;
233		#size-cells = <0>;
234
235		ak4643: codec@12 {
236			compatible = "asahi-kasei,ak4643";
237			#sound-dai-cells = <0>;
238			reg = <0x12>;
239		};
240
241		composite-in@20 {
242			compatible = "adi,adv7180";
243			reg = <0x20>;
244
245			port {
246				adv7180: endpoint {
247					bus-width = <8>;
248					remote-endpoint = <&vin0ep>;
249				};
250			};
251		};
252
253		hdmi@39 {
254			compatible = "adi,adv7511w";
255			reg = <0x39>;
256			interrupt-parent = <&gpio5>;
257			interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
258
259			adi,input-depth = <8>;
260			adi,input-colorspace = "rgb";
261			adi,input-clock = "1x";
262
263			ports {
264				#address-cells = <1>;
265				#size-cells = <0>;
266
267				port@0 {
268					reg = <0>;
269					adv7511_in: endpoint {
270						remote-endpoint = <&du_out_rgb0>;
271					};
272				};
273
274				port@1 {
275					reg = <1>;
276					adv7511_out: endpoint {
277						remote-endpoint = <&hdmi_con>;
278					};
279				};
280			};
281		};
282
283		eeprom@50 {
284			compatible = "renesas,r1ex24002", "atmel,24c02";
285			reg = <0x50>;
286			pagesize = <16>;
287		};
288	};
289};
290
291&extal_clk {
292	clock-frequency = <20000000>;
293};
294
295&pfc {
296	pinctrl-0 = <&scif_clk_pins>;
297	pinctrl-names = "default";
298
299	scif2_pins: scif2 {
300		groups = "scif2_data";
301		function = "scif2";
302	};
303
304	scif_clk_pins: scif_clk {
305		groups = "scif_clk";
306		function = "scif_clk";
307	};
308
309	ether_pins: ether {
310		groups = "eth_link", "eth_mdio", "eth_rmii";
311		function = "eth";
312	};
313
314	phy1_pins: phy1 {
315		groups = "intc_irq8";
316		function = "intc";
317	};
318
319	i2c1_pins: i2c1 {
320		groups = "i2c1";
321		function = "i2c1";
322	};
323
324	mmcif0_pins: mmcif0 {
325		groups = "mmc_data8", "mmc_ctrl";
326		function = "mmc";
327	};
328
329	sdhi1_pins: sd1 {
330		groups = "sdhi1_data4", "sdhi1_ctrl";
331		function = "sdhi1";
332	};
333
334	qspi_pins: qspi {
335		groups = "qspi_ctrl", "qspi_data4";
336		function = "qspi";
337	};
338
339	vin0_pins: vin0 {
340		groups = "vin0_data8", "vin0_clk";
341		function = "vin0";
342	};
343
344	usb0_pins: usb0 {
345		groups = "usb0";
346		function = "usb0";
347	};
348
349	usb1_pins: usb1 {
350		groups = "usb1";
351		function = "usb1";
352	};
353
354	du0_pins: du0 {
355		groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out";
356		function = "du0";
357	};
358
359	du1_pins: du1 {
360		groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
361		function = "du1";
362	};
363
364	keyboard_pins: keyboard {
365		pins = "GP_3_9", "GP_3_10", "GP_3_11", "GP_3_12";
366		bias-pull-up;
367	};
368
369	ssi_pins: sound {
370		groups = "ssi0129_ctrl", "ssi0_data", "ssi1_data";
371		function = "ssi";
372	};
373
374	audio_clk_pins: audio_clk {
375		groups = "audio_clkc";
376		function = "audio_clk";
377	};
378};
379
380&scif2 {
381	pinctrl-0 = <&scif2_pins>;
382	pinctrl-names = "default";
383
384	status = "okay";
385};
386
387&scif_clk {
388	clock-frequency = <14745600>;
389};
390
391&ether {
392	pinctrl-0 = <&ether_pins>, <&phy1_pins>;
393	pinctrl-names = "default";
394
395	phy-handle = <&phy1>;
396	renesas,ether-link-active-low;
397	status = "okay";
398
399	phy1: ethernet-phy@1 {
400		reg = <1>;
401		interrupt-parent = <&irqc0>;
402		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
403		micrel,led-mode = <1>;
404		reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
405	};
406};
407
408&i2c1 {
409	pinctrl-0 = <&i2c1_pins>;
410	pinctrl-names = "i2c-hdmi";
411
412	clock-frequency = <400000>;
413};
414
415&i2c7 {
416	status = "okay";
417	clock-frequency = <100000>;
418
419	pmic@58 {
420		compatible = "dlg,da9063";
421		reg = <0x58>;
422		interrupt-parent = <&gpio3>;
423		interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
424		interrupt-controller;
425
426		onkey {
427			compatible = "dlg,da9063-onkey";
428		};
429
430		rtc {
431			compatible = "dlg,da9063-rtc";
432		};
433
434		wdt {
435			compatible = "dlg,da9063-watchdog";
436		};
437	};
438};
439
440&mmcif0 {
441	pinctrl-0 = <&mmcif0_pins>;
442	pinctrl-names = "default";
443
444	vmmc-supply = <&d3_3v>;
445	vqmmc-supply = <&d3_3v>;
446	bus-width = <8>;
447	non-removable;
448	status = "okay";
449};
450
451&sdhi1 {
452	pinctrl-0 = <&sdhi1_pins>;
453	pinctrl-names = "default";
454
455	vmmc-supply = <&vcc_sdhi1>;
456	vqmmc-supply = <&vccq_sdhi1>;
457	cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
458	status = "okay";
459};
460
461&qspi {
462	pinctrl-0 = <&qspi_pins>;
463	pinctrl-names = "default";
464
465	status = "okay";
466
467	flash@0 {
468		compatible = "spansion,s25fl512s", "jedec,spi-nor";
469		reg = <0>;
470		spi-max-frequency = <30000000>;
471		spi-tx-bus-width = <4>;
472		spi-rx-bus-width = <4>;
473		spi-cpol;
474		spi-cpha;
475		m25p,fast-read;
476
477		partitions {
478			compatible = "fixed-partitions";
479			#address-cells = <1>;
480			#size-cells = <1>;
481
482			partition@0 {
483				label = "loader";
484				reg = <0x00000000 0x00040000>;
485				read-only;
486			};
487			partition@40000 {
488				label = "user";
489				reg = <0x00040000 0x00400000>;
490				read-only;
491			};
492			partition@440000 {
493				label = "flash";
494				reg = <0x00440000 0x03bc0000>;
495			};
496		};
497	};
498};
499
500/* composite video input */
501&vin0 {
502	status = "okay";
503	pinctrl-0 = <&vin0_pins>;
504	pinctrl-names = "default";
505
506	port {
507		vin0ep: endpoint {
508			remote-endpoint = <&adv7180>;
509			bus-width = <8>;
510		};
511	};
512};
513
514&pci0 {
515	status = "okay";
516	pinctrl-0 = <&usb0_pins>;
517	pinctrl-names = "default";
518};
519
520&pci1 {
521	status = "okay";
522	pinctrl-0 = <&usb1_pins>;
523	pinctrl-names = "default";
524};
525
526&usbphy {
527	status = "okay";
528};
529
530&du {
531	pinctrl-0 = <&du0_pins>, <&du1_pins>;
532	pinctrl-names = "default";
533	status = "okay";
534
535	clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
536		 <&x2_clk>, <&x3_clk>;
537	clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
538
539	ports {
540		port@0 {
541			endpoint {
542				remote-endpoint = <&adv7511_in>;
543			};
544		};
545		port@1 {
546			endpoint {
547				remote-endpoint = <&adv7123_in>;
548			};
549		};
550	};
551};
552
553&rcar_sound {
554	pinctrl-0 = <&ssi_pins>, <&audio_clk_pins>;
555	pinctrl-names = "default";
556	status = "okay";
557
558	/* Single DAI */
559	#sound-dai-cells = <0>;
560
561	rcar_sound,dai {
562		dai0 {
563			playback = <&ssi0>;
564			capture  = <&ssi1>;
565		};
566	};
567};
568
569&rwdt {
570	timeout-sec = <60>;
571	status = "okay";
572};
573
574&ssi1 {
575	shared-pin;
576};