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
34/ {
35	model = "iWave Systems RainboW-G22D-SODIMM board based on RZ/G1E";
36	compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745";
37
38	aliases {
39		ethernet0 = &avb;
40		serial3 = &scif4;
41		serial5 = &hscif1;
42	};
43
44	chosen {
45		bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
46		stdout-path = "serial3:115200n8";
47	};
48
49	audio_clock: audio_clock {
50		compatible = "fixed-clock";
51		#clock-cells = <0>;
52		clock-frequency = <26000000>;
53	};
54
55	rsnd_sgtl5000: sound {
56		compatible = "simple-audio-card";
57		simple-audio-card,format = "i2s";
58		simple-audio-card,bitclock-master = <&sndcodec>;
59		simple-audio-card,frame-master = <&sndcodec>;
60
61		sndcpu: simple-audio-card,cpu {
62			sound-dai = <&rcar_sound>;
63		};
64
65		sndcodec: simple-audio-card,codec {
66			sound-dai = <&sgtl5000>;
67		};
68	};
69
70	vccq_sdhi0: regulator-vccq-sdhi0 {
71		compatible = "regulator-gpio";
72
73		regulator-name = "SDHI0 VccQ";
74		regulator-min-microvolt = <1800000>;
75		regulator-max-microvolt = <3300000>;
76
77		gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
78		gpios-states = <1>;
79		states = <3300000 1
80			  1800000 0>;
81	};
82};
83
84&avb {
85	pinctrl-0 = <&avb_pins>;
86	pinctrl-names = "default";
87
88	phy-handle = <&phy3>;
89	phy-mode = "gmii";
90	renesas,no-ether-link;
91	status = "okay";
92
93	phy3: ethernet-phy@3 {
94	/*
95	 * On some older versions of the platform (before R4.0) the phy address
96	 * may be 1 or 3. The address is fixed to 3 for R4.0 onwards.
97	 */
98		reg = <3>;
99		micrel,led-mode = <1>;
100	};
101};
102
103&can0 {
104	pinctrl-0 = <&can0_pins>;
105	pinctrl-names = "default";
106
107	status = "okay";
108};
109
110&hscif1 {
111	pinctrl-0 = <&hscif1_pins>;
112	pinctrl-names = "default";
113
114	uart-has-rtscts;
115	status = "okay";
116};
117
118&hsusb {
119	status = "okay";
120	pinctrl-0 = <&usb0_pins>;
121	pinctrl-names = "default";
122};
123
124&i2c5 {
125	pinctrl-0 = <&i2c5_pins>;
126	pinctrl-names = "default";
127
128	status = "okay";
129	clock-frequency = <400000>;
130
131	sgtl5000: codec@a {
132		compatible = "fsl,sgtl5000";
133		#sound-dai-cells = <0>;
134		reg = <0x0a>;
135		clocks = <&audio_clock>;
136		VDDA-supply = <&reg_3p3v>;
137		VDDIO-supply = <&reg_3p3v>;
138	};
139};
140
141&pci1 {
142	status = "okay";
143	pinctrl-0 = <&usb1_pins>;
144	pinctrl-names = "default";
145};
146
147&pfc {
148	avb_pins: avb {
149		groups = "avb_mdio", "avb_gmii";
150		function = "avb";
151	};
152
153	can0_pins: can0 {
154		groups = "can0_data";
155		function = "can0";
156	};
157
158	hscif1_pins: hscif1 {
159		groups = "hscif1_data", "hscif1_ctrl";
160		function = "hscif1";
161	};
162
163	i2c5_pins: i2c5 {
164		groups = "i2c5_b";
165		function = "i2c5";
166	};
167
168	scif4_pins: scif4 {
169		groups = "scif4_data_b";
170		function = "scif4";
171	};
172
173	sdhi0_pins: sd0 {
174		groups = "sdhi0_data4", "sdhi0_ctrl";
175		function = "sdhi0";
176		power-source = <3300>;
177	};
178
179	sound_pins: sound {
180		groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
181		function = "ssi";
182	};
183
184	usb0_pins: usb0 {
185		groups = "usb0";
186		function = "usb0";
187	};
188
189	usb1_pins: usb1 {
190		groups = "usb1";
191		function = "usb1";
192	};
193};
194
195&rcar_sound {
196	pinctrl-0 = <&sound_pins>;
197	pinctrl-names = "default";
198	status = "okay";
199
200	/* Single DAI */
201
202	#sound-dai-cells = <0>;
203
204	rcar_sound,dai {
205		dai0 {
206			playback = <&ssi3 &src3 &dvc0>;
207			capture = <&ssi4 &src4 &dvc1>;
208		};
209	};
210};
211
212&scif4 {
213	pinctrl-0 = <&scif4_pins>;
214	pinctrl-names = "default";
215
216	status = "okay";
217};
218
219&sdhi0 {
220	pinctrl-0 = <&sdhi0_pins>;
221	pinctrl-names = "default";
222
223	vmmc-supply = <&reg_3p3v>;
224	vqmmc-supply = <&vccq_sdhi0>;
225	cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
226	status = "okay";
227};
228
229&ssi4 {
230	shared-pin;
231};
232
233&usbphy {
234	status = "okay";
235};
236