xref: /linux/arch/arm/boot/dts/renesas/r8a7745-iwg22d-sodimm.dts (revision fcc79e1714e8c2b8e216dc3149812edd37884eef)
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	backlight_lcd: backlight {
57		compatible = "pwm-backlight";
58		pwms = <&tpu 3 5000000 PWM_POLARITY_INVERTED>;
59		brightness-levels = <0 4 8 16 32 64 128 255>;
60		default-brightness-level = <7>;
61	};
62
63	lcd_panel: lcd {
64		compatible = "edt,etm043080dh6gp";
65		power-supply = <&vccq_panel>;
66		backlight = <&backlight_lcd>;
67
68		port {
69			lcd_in: endpoint {
70				remote-endpoint = <&du_out_rgb0>;
71			};
72		};
73	};
74
75	vccq_panel: regulator-vccq-panel {
76		compatible = "regulator-fixed";
77		regulator-name = "Panel VccQ";
78		regulator-min-microvolt = <3300000>;
79		regulator-max-microvolt = <3300000>;
80		gpio = <&gpio1 13 GPIO_ACTIVE_LOW>;
81		enable-active-high;
82	};
83
84	vccq_sdhi0: regulator-vccq-sdhi0 {
85		compatible = "regulator-gpio";
86
87		regulator-name = "SDHI0 VccQ";
88		regulator-min-microvolt = <1800000>;
89		regulator-max-microvolt = <3300000>;
90
91		gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
92		gpios-states = <1>;
93		states = <3300000 1>, <1800000 0>;
94	};
95
96	rsnd_sgtl5000: sound {
97		compatible = "simple-audio-card";
98		simple-audio-card,format = "i2s";
99		simple-audio-card,bitclock-master = <&sndcodec>;
100		simple-audio-card,frame-master = <&sndcodec>;
101
102		sndcpu: simple-audio-card,cpu {
103			sound-dai = <&rcar_sound>;
104		};
105
106		sndcodec: simple-audio-card,codec {
107			sound-dai = <&sgtl5000>;
108		};
109	};
110};
111
112&avb {
113	pinctrl-0 = <&avb_pins>;
114	pinctrl-names = "default";
115
116	phy-handle = <&phy3>;
117	phy-mode = "gmii";
118	renesas,no-ether-link;
119	status = "okay";
120
121	phy3: ethernet-phy@3 {
122	/*
123	 * On some older versions of the platform (before R4.0) the phy address
124	 * may be 1 or 3. The address is fixed to 3 for R4.0 onwards.
125	 */
126		compatible = "ethernet-phy-id0022.1622",
127			     "ethernet-phy-ieee802.3-c22";
128		reg = <3>;
129		micrel,led-mode = <1>;
130	};
131};
132
133&can0 {
134	pinctrl-0 = <&can0_pins>;
135	pinctrl-names = "default";
136
137	status = "okay";
138};
139
140&du {
141	pinctrl-0 = <&du0_pins>;
142	pinctrl-names = "default";
143
144	status = "okay";
145
146	ports {
147		port@0 {
148			endpoint {
149				remote-endpoint = <&lcd_in>;
150			};
151		};
152	};
153};
154
155&hscif1 {
156	pinctrl-0 = <&hscif1_pins>;
157	pinctrl-names = "default";
158
159	uart-has-rtscts;
160	status = "okay";
161};
162
163&hsusb {
164	status = "okay";
165	pinctrl-0 = <&usb0_pins>;
166	pinctrl-names = "default";
167};
168
169&i2c5 {
170	pinctrl-0 = <&i2c5_pins>;
171	pinctrl-names = "default";
172
173	status = "okay";
174	clock-frequency = <400000>;
175
176	sgtl5000: codec@a {
177		compatible = "fsl,sgtl5000";
178		#sound-dai-cells = <0>;
179		reg = <0x0a>;
180		clocks = <&audio_clock>;
181		VDDA-supply = <&reg_3p3v>;
182		VDDIO-supply = <&reg_3p3v>;
183	};
184
185	port-expander@44 {
186		compatible = "st,stmpe811";
187		reg = <0x44>;
188		interrupts-extended = <&gpio4 4 IRQ_TYPE_LEVEL_LOW>;
189
190		/* 3.25 MHz ADC clock speed */
191		st,adc-freq = <1>;
192		/* ADC conversion time: 80 clocks */
193		st,sample-time = <4>;
194		/* 12-bit ADC */
195		st,mod-12b = <1>;
196		/* internal ADC reference */
197		st,ref-sel = <0>;
198
199		touchscreen {
200			compatible = "st,stmpe-ts";
201			/* 8 sample average control */
202			st,ave-ctrl = <3>;
203			/* 7 length fractional part in z */
204			st,fraction-z = <7>;
205			/*
206			 * 50 mA typical 80 mA max touchscreen drivers
207			 * current limit value
208			 */
209			st,i-drive = <1>;
210			/* 1 ms panel driver settling time */
211			st,settling = <3>;
212			/* 5 ms touch detect interrupt delay */
213			st,touch-det-delay = <5>;
214		};
215	};
216};
217
218&pci1 {
219	status = "okay";
220	pinctrl-0 = <&usb1_pins>;
221	pinctrl-names = "default";
222};
223
224&pfc {
225	avb_pins: avb {
226		groups = "avb_mdio", "avb_gmii";
227		function = "avb";
228	};
229
230	backlight_pins: backlight {
231		groups = "tpu_to3_c";
232		function = "tpu";
233	};
234
235	can0_pins: can0 {
236		groups = "can0_data";
237		function = "can0";
238	};
239
240	du0_pins: du0 {
241		groups = "du0_rgb666", "du0_sync", "du0_disp", "du0_clk0_out";
242		function = "du0";
243	};
244
245	hscif1_pins: hscif1 {
246		groups = "hscif1_data", "hscif1_ctrl";
247		function = "hscif1";
248	};
249
250	i2c5_pins: i2c5 {
251		groups = "i2c5_b";
252		function = "i2c5";
253	};
254
255	scif4_pins: scif4 {
256		groups = "scif4_data_b";
257		function = "scif4";
258	};
259
260	sdhi0_pins: sd0 {
261		groups = "sdhi0_data4", "sdhi0_ctrl";
262		function = "sdhi0";
263		power-source = <3300>;
264	};
265
266	sound_pins: sound {
267		groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
268		function = "ssi";
269	};
270
271	usb0_pins: usb0 {
272		groups = "usb0";
273		function = "usb0";
274	};
275
276	usb1_pins: usb1 {
277		groups = "usb1";
278		function = "usb1";
279	};
280};
281
282&rcar_sound {
283	pinctrl-0 = <&sound_pins>;
284	pinctrl-names = "default";
285	status = "okay";
286
287	/* Single DAI */
288
289	#sound-dai-cells = <0>;
290
291	rcar_sound,dai {
292		dai0 {
293			playback = <&ssi3>, <&src3>, <&dvc0>;
294			capture = <&ssi4>, <&src4>, <&dvc1>;
295		};
296	};
297};
298
299&scif4 {
300	pinctrl-0 = <&scif4_pins>;
301	pinctrl-names = "default";
302
303	status = "okay";
304};
305
306&sdhi0 {
307	pinctrl-0 = <&sdhi0_pins>;
308	pinctrl-names = "default";
309
310	vmmc-supply = <&reg_3p3v>;
311	vqmmc-supply = <&vccq_sdhi0>;
312	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
313	status = "okay";
314};
315
316&ssi4 {
317	shared-pin;
318};
319
320&tpu {
321	pinctrl-0 = <&backlight_pins>;
322	pinctrl-names = "default";
323	status = "okay";
324};
325
326&usbphy {
327	status = "okay";
328};
329