Linux Audio

Check our new training course

Yocto distribution development and maintenance

Need a Yocto distribution for your embedded project?
Loading...
Note: File does not exist in v6.13.7.
  1// SPDX-License-Identifier: GPL-2.0
  2/*
  3 * Device Tree Source for the iWave-RZG1E SODIMM carrier board
  4 *
  5 * Copyright (C) 2017 Renesas Electronics Corp.
  6 */
  7
  8/*
  9 * SSI-SGTL5000
 10 *
 11 * This command is required when Playback/Capture
 12 *
 13 *      amixer set "DVC Out" 100%
 14 *      amixer set "DVC In" 100%
 15 *
 16 * You can use Mute
 17 *
 18 *      amixer set "DVC Out Mute" on
 19 *      amixer set "DVC In Mute" on
 20 *
 21 * You can use Volume Ramp
 22 *
 23 *      amixer set "DVC Out Ramp Up Rate"   "0.125 dB/64 steps"
 24 *      amixer set "DVC Out Ramp Down Rate" "0.125 dB/512 steps"
 25 *      amixer set "DVC Out Ramp" on
 26 *      aplay xxx.wav &
 27 *      amixer set "DVC Out"  80%  // Volume Down
 28 *      amixer set "DVC Out" 100%  // Volume Up
 29 */
 30
 31/dts-v1/;
 32#include "r8a7745-iwg22m.dtsi"
 33#include <dt-bindings/pwm/pwm.h>
 34
 35/ {
 36	model = "iWave Systems RainboW-G22D-SODIMM board based on RZ/G1E";
 37	compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745";
 38
 39	aliases {
 40		ethernet0 = &avb;
 41		serial3 = &scif4;
 42		serial5 = &hscif1;
 43	};
 44
 45	chosen {
 46		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
 47		stdout-path = "serial3:115200n8";
 48	};
 49
 50	audio_clock: audio_clock {
 51		compatible = "fixed-clock";
 52		#clock-cells = <0>;
 53		clock-frequency = <26000000>;
 54	};
 55
 56	rsnd_sgtl5000: sound {
 57		compatible = "simple-audio-card";
 58		simple-audio-card,format = "i2s";
 59		simple-audio-card,bitclock-master = <&sndcodec>;
 60		simple-audio-card,frame-master = <&sndcodec>;
 61
 62		sndcpu: simple-audio-card,cpu {
 63			sound-dai = <&rcar_sound>;
 64		};
 65
 66		sndcodec: simple-audio-card,codec {
 67			sound-dai = <&sgtl5000>;
 68		};
 69	};
 70
 71	vccq_sdhi0: regulator-vccq-sdhi0 {
 72		compatible = "regulator-gpio";
 73
 74		regulator-name = "SDHI0 VccQ";
 75		regulator-min-microvolt = <1800000>;
 76		regulator-max-microvolt = <3300000>;
 77
 78		gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
 79		gpios-states = <1>;
 80		states = <3300000 1>, <1800000 0>;
 81	};
 82
 83	vccq_panel: regulator-vccq-panel {
 84		compatible = "regulator-fixed";
 85		regulator-name = "Panel VccQ";
 86		regulator-min-microvolt = <3300000>;
 87		regulator-max-microvolt = <3300000>;
 88		gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
 89		enable-active-high;
 90	};
 91
 92	backlight_lcd: backlight {
 93		compatible = "pwm-backlight";
 94		pwms = <&tpu 3 5000000 PWM_POLARITY_INVERTED>;
 95		brightness-levels = <0 4 8 16 32 64 128 255>;
 96		default-brightness-level = <7>;
 97	};
 98
 99	lcd_panel: lcd {
100		compatible = "edt,etm043080dh6gp";
101		power-supply = <&vccq_panel>;
102		backlight = <&backlight_lcd>;
103
104		port {
105			lcd_in: endpoint {
106				remote-endpoint = <&du_out_rgb0>;
107			};
108		};
109	};
110};
111
112&du {
113	pinctrl-0 = <&du0_pins>;
114	pinctrl-names = "default";
115
116	status = "okay";
117
118	ports {
119		port@0 {
120			endpoint {
121				remote-endpoint = <&lcd_in>;
122			};
123		};
124	};
125};
126
127&avb {
128	pinctrl-0 = <&avb_pins>;
129	pinctrl-names = "default";
130
131	phy-handle = <&phy3>;
132	phy-mode = "gmii";
133	renesas,no-ether-link;
134	status = "okay";
135
136	phy3: ethernet-phy@3 {
137	/*
138	 * On some older versions of the platform (before R4.0) the phy address
139	 * may be 1 or 3. The address is fixed to 3 for R4.0 onwards.
140	 */
141		reg = <3>;
142		micrel,led-mode = <1>;
143	};
144};
145
146&can0 {
147	pinctrl-0 = <&can0_pins>;
148	pinctrl-names = "default";
149
150	status = "okay";
151};
152
153&hscif1 {
154	pinctrl-0 = <&hscif1_pins>;
155	pinctrl-names = "default";
156
157	uart-has-rtscts;
158	status = "okay";
159};
160
161&hsusb {
162	status = "okay";
163	pinctrl-0 = <&usb0_pins>;
164	pinctrl-names = "default";
165};
166
167&i2c5 {
168	pinctrl-0 = <&i2c5_pins>;
169	pinctrl-names = "default";
170
171	status = "okay";
172	clock-frequency = <400000>;
173
174	stmpe811@44 {
175		compatible = "st,stmpe811";
176		reg = <0x44>;
177		interrupt-parent = <&gpio4>;
178		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
179
180		/* 3.25 MHz ADC clock speed */
181		st,adc-freq = <1>;
182		/* ADC converstion time: 80 clocks */
183		st,sample-time = <4>;
184		/* 12-bit ADC */
185		st,mod-12b = <1>;
186		/* internal ADC reference */
187		st,ref-sel = <0>;
188
189		stmpe_touchscreen {
190			compatible = "st,stmpe-ts";
191			/* 8 sample average control */
192			st,ave-ctrl = <3>;
193			/* 7 length fractional part in z */
194			st,fraction-z = <7>;
195			/*
196			 * 50 mA typical 80 mA max touchscreen drivers
197			 * current limit value
198			 */
199			st,i-drive = <1>;
200			/* 1 ms panel driver settling time */
201			st,settling = <3>;
202			/* 5 ms touch detect interrupt delay */
203			st,touch-det-delay = <5>;
204		};
205	};
206
207	sgtl5000: codec@a {
208		compatible = "fsl,sgtl5000";
209		#sound-dai-cells = <0>;
210		reg = <0x0a>;
211		clocks = <&audio_clock>;
212		VDDA-supply = <&reg_3p3v>;
213		VDDIO-supply = <&reg_3p3v>;
214	};
215};
216
217&pci1 {
218	status = "okay";
219	pinctrl-0 = <&usb1_pins>;
220	pinctrl-names = "default";
221};
222
223&pfc {
224	avb_pins: avb {
225		groups = "avb_mdio", "avb_gmii";
226		function = "avb";
227	};
228
229	backlight_pins: backlight {
230		groups = "tpu_to3_c";
231		function = "tpu";
232	};
233
234	can0_pins: can0 {
235		groups = "can0_data";
236		function = "can0";
237	};
238
239	du0_pins: du0 {
240		groups = "du0_rgb666", "du0_sync", "du0_disp", "du0_clk0_out";
241		function = "du0";
242	};
243
244	hscif1_pins: hscif1 {
245		groups = "hscif1_data", "hscif1_ctrl";
246		function = "hscif1";
247	};
248
249	i2c5_pins: i2c5 {
250		groups = "i2c5_b";
251		function = "i2c5";
252	};
253
254	scif4_pins: scif4 {
255		groups = "scif4_data_b";
256		function = "scif4";
257	};
258
259	sdhi0_pins: sd0 {
260		groups = "sdhi0_data4", "sdhi0_ctrl";
261		function = "sdhi0";
262		power-source = <3300>;
263	};
264
265	sound_pins: sound {
266		groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
267		function = "ssi";
268	};
269
270	usb0_pins: usb0 {
271		groups = "usb0";
272		function = "usb0";
273	};
274
275	usb1_pins: usb1 {
276		groups = "usb1";
277		function = "usb1";
278	};
279};
280
281&rcar_sound {
282	pinctrl-0 = <&sound_pins>;
283	pinctrl-names = "default";
284	status = "okay";
285
286	/* Single DAI */
287
288	#sound-dai-cells = <0>;
289
290	rcar_sound,dai {
291		dai0 {
292			playback = <&ssi3 &src3 &dvc0>;
293			capture = <&ssi4 &src4 &dvc1>;
294		};
295	};
296};
297
298&scif4 {
299	pinctrl-0 = <&scif4_pins>;
300	pinctrl-names = "default";
301
302	status = "okay";
303};
304
305&sdhi0 {
306	pinctrl-0 = <&sdhi0_pins>;
307	pinctrl-names = "default";
308
309	vmmc-supply = <&reg_3p3v>;
310	vqmmc-supply = <&vccq_sdhi0>;
311	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
312	status = "okay";
313};
314
315&ssi4 {
316	shared-pin;
317};
318
319&tpu {
320	pinctrl-0 = <&backlight_pins>;
321	pinctrl-names = "default";
322	status = "okay";
323};
324
325&usbphy {
326	status = "okay";
327};