GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / r8a7745-iwg22d-sodimm.dts
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         stmpe811@44 {
186                 compatible = "st,stmpe811";
187                 reg = <0x44>;
188                 interrupt-parent = <&gpio4>;
189                 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
190
191                 /* 3.25 MHz ADC clock speed */
192                 st,adc-freq = <1>;
193                 /* ADC conversion time: 80 clocks */
194                 st,sample-time = <4>;
195                 /* 12-bit ADC */
196                 st,mod-12b = <1>;
197                 /* internal ADC reference */
198                 st,ref-sel = <0>;
199
200                 stmpe_touchscreen {
201                         compatible = "st,stmpe-ts";
202                         /* 8 sample average control */
203                         st,ave-ctrl = <3>;
204                         /* 7 length fractional part in z */
205                         st,fraction-z = <7>;
206                         /*
207                          * 50 mA typical 80 mA max touchscreen drivers
208                          * current limit value
209                          */
210                         st,i-drive = <1>;
211                         /* 1 ms panel driver settling time */
212                         st,settling = <3>;
213                         /* 5 ms touch detect interrupt delay */
214                         st,touch-det-delay = <5>;
215                 };
216         };
217 };
218
219 &pci1 {
220         status = "okay";
221         pinctrl-0 = <&usb1_pins>;
222         pinctrl-names = "default";
223 };
224
225 &pfc {
226         avb_pins: avb {
227                 groups = "avb_mdio", "avb_gmii";
228                 function = "avb";
229         };
230
231         backlight_pins: backlight {
232                 groups = "tpu_to3_c";
233                 function = "tpu";
234         };
235
236         can0_pins: can0 {
237                 groups = "can0_data";
238                 function = "can0";
239         };
240
241         du0_pins: du0 {
242                 groups = "du0_rgb666", "du0_sync", "du0_disp", "du0_clk0_out";
243                 function = "du0";
244         };
245
246         hscif1_pins: hscif1 {
247                 groups = "hscif1_data", "hscif1_ctrl";
248                 function = "hscif1";
249         };
250
251         i2c5_pins: i2c5 {
252                 groups = "i2c5_b";
253                 function = "i2c5";
254         };
255
256         scif4_pins: scif4 {
257                 groups = "scif4_data_b";
258                 function = "scif4";
259         };
260
261         sdhi0_pins: sd0 {
262                 groups = "sdhi0_data4", "sdhi0_ctrl";
263                 function = "sdhi0";
264                 power-source = <3300>;
265         };
266
267         sound_pins: sound {
268                 groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
269                 function = "ssi";
270         };
271
272         usb0_pins: usb0 {
273                 groups = "usb0";
274                 function = "usb0";
275         };
276
277         usb1_pins: usb1 {
278                 groups = "usb1";
279                 function = "usb1";
280         };
281 };
282
283 &rcar_sound {
284         pinctrl-0 = <&sound_pins>;
285         pinctrl-names = "default";
286         status = "okay";
287
288         /* Single DAI */
289
290         #sound-dai-cells = <0>;
291
292         rcar_sound,dai {
293                 dai0 {
294                         playback = <&ssi3>, <&src3>, <&dvc0>;
295                         capture = <&ssi4>, <&src4>, <&dvc1>;
296                 };
297         };
298 };
299
300 &scif4 {
301         pinctrl-0 = <&scif4_pins>;
302         pinctrl-names = "default";
303
304         status = "okay";
305 };
306
307 &sdhi0 {
308         pinctrl-0 = <&sdhi0_pins>;
309         pinctrl-names = "default";
310
311         vmmc-supply = <&reg_3p3v>;
312         vqmmc-supply = <&vccq_sdhi0>;
313         cd-gpios = <&gpio6 6 GPIO_ACTIVE_LOW>;
314         status = "okay";
315 };
316
317 &ssi4 {
318         shared-pin;
319 };
320
321 &tpu {
322         pinctrl-0 = <&backlight_pins>;
323         pinctrl-names = "default";
324         status = "okay";
325 };
326
327 &usbphy {
328         status = "okay";
329 };