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