blob: 64102b664055b475a531a27b754cade033204da4 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the iWave-RZ/G1H Qseven board
4 *
5 * Copyright (C) 2020 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 "r8a7742-iwg21m.dtsi"
33#include <dt-bindings/pwm/pwm.h>
34
35/ {
36 model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H";
37 compatible = "iwave,g21d", "iwave,g21m", "renesas,r8a7742";
38
39 aliases {
40 serial2 = &scifa2;
41 serial4 = &scifb2;
42 ethernet0 = &avb;
43 };
44
45 chosen {
46 bootargs = "ignore_loglevel root=/dev/mmcblk0p1 rw rootwait";
47 stdout-path = "serial2:115200n8";
48 };
49
50 audio_clock: audio_clock {
51 compatible = "fixed-clock";
52 #clock-cells = <0>;
53 clock-frequency = <26000000>;
54 };
55
56 lcd_backlight: backlight {
57 compatible = "pwm-backlight";
58 pwms = <&tpu 2 5000000 0>;
59 brightness-levels = <0 4 8 16 32 64 128 255>;
60 pinctrl-0 = <&backlight_pins>;
61 pinctrl-names = "default";
62 default-brightness-level = <7>;
63 enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
64 };
65
66 leds {
67 compatible = "gpio-leds";
68
69 sdhi2_led {
70 label = "sdio-led";
71 gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>;
72 linux,default-trigger = "mmc1";
73 };
74 };
75
76 lvds-receiver {
77 compatible = "ti,ds90cf384a", "lvds-decoder";
78 power-supply = <&vcc_3v3_tft1>;
79
80 ports {
81 #address-cells = <1>;
82 #size-cells = <0>;
83
84 port@0 {
85 reg = <0>;
86 lvds_receiver_in: endpoint {
87 remote-endpoint = <&lvds0_out>;
88 };
89 };
90 port@1 {
91 reg = <1>;
92 lvds_receiver_out: endpoint {
93 remote-endpoint = <&panel_in>;
94 };
95 };
96 };
97 };
98
99 panel {
100 compatible = "edt,etm0700g0dh6";
101 backlight = <&lcd_backlight>;
102 power-supply = <&vcc_3v3_tft1>;
103
104 port {
105 panel_in: endpoint {
106 remote-endpoint = <&lvds_receiver_out>;
107 };
108 };
109 };
110
111 reg_1p5v: 1p5v {
112 compatible = "regulator-fixed";
113 regulator-name = "1P5V";
114 regulator-min-microvolt = <1500000>;
115 regulator-max-microvolt = <1500000>;
116 regulator-always-on;
117 };
118
119 rsnd_sgtl5000: sound {
120 compatible = "simple-audio-card";
121 simple-audio-card,format = "i2s";
122 simple-audio-card,bitclock-master = <&sndcodec>;
123 simple-audio-card,frame-master = <&sndcodec>;
124
125 sndcpu: simple-audio-card,cpu {
126 sound-dai = <&rcar_sound>;
127 };
128
129 sndcodec: simple-audio-card,codec {
130 sound-dai = <&sgtl5000>;
131 };
132 };
133
134 vcc_3v3_tft1: regulator-panel {
135 compatible = "regulator-fixed";
136
137 regulator-name = "vcc-3v3-tft1";
138 regulator-min-microvolt = <3300000>;
139 regulator-max-microvolt = <3300000>;
140 enable-active-high;
141 startup-delay-us = <500>;
142 gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
143 };
144
145 vcc_sdhi2: regulator-vcc-sdhi2 {
146 compatible = "regulator-fixed";
147
148 regulator-name = "SDHI2 Vcc";
149 regulator-min-microvolt = <3300000>;
150 regulator-max-microvolt = <3300000>;
151
152 gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
153 };
154
155 vccq_sdhi2: regulator-vccq-sdhi2 {
156 compatible = "regulator-gpio";
157
158 regulator-name = "SDHI2 VccQ";
159 regulator-min-microvolt = <1800000>;
160 regulator-max-microvolt = <3300000>;
161
162 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
163 gpios-states = <1>;
164 states = <3300000 1>, <1800000 0>;
165 };
166};
167
168&avb {
169 pinctrl-0 = <&avb_pins>;
170 pinctrl-names = "default";
171
172 phy-handle = <&phy3>;
173 phy-mode = "gmii";
174 renesas,no-ether-link;
175 status = "okay";
176
177 phy3: ethernet-phy@3 {
178 compatible = "ethernet-phy-id0022.1622",
179 "ethernet-phy-ieee802.3-c22";
180 reg = <3>;
181 micrel,led-mode = <1>;
182 };
183};
184
185&i2c2 {
186 pinctrl-0 = <&i2c2_pins>;
187 pinctrl-names = "default";
188
189 status = "okay";
190 clock-frequency = <400000>;
191
192 sgtl5000: codec@a {
193 compatible = "fsl,sgtl5000";
194 #sound-dai-cells = <0>;
195 reg = <0x0a>;
196 clocks = <&audio_clock>;
197 VDDA-supply = <&reg_3p3v>;
198 VDDIO-supply = <&reg_3p3v>;
199 VDDD-supply = <&reg_1p5v>;
200 };
201
202 touch: touchpanel@38 {
203 compatible = "edt,edt-ft5406";
204 reg = <0x38>;
205 interrupt-parent = <&gpio0>;
206 interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
207 /* GP1_29 is also shared with audio codec reset pin */
208 reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
209 vcc-supply = <&vcc_3v3_tft1>;
210 };
211};
212
213&can1 {
214 pinctrl-0 = <&can1_pins>;
215 pinctrl-names = "default";
216
217 status = "okay";
218};
219
220&cmt0 {
221 status = "okay";
222};
223
224&du {
225 status = "okay";
226};
227
228&gpio0 {
229 touch-interrupt-hog {
230 gpio-hog;
231 gpios = <24 GPIO_ACTIVE_LOW>;
232 input;
233 };
234};
235
236&gpio1 {
237 can-trx-en-hog {
238 gpio-hog;
239 gpios = <28 GPIO_ACTIVE_HIGH>;
240 output-low;
241 line-name = "can-trx-en-gpio";
242 };
243};
244
245&hsusb {
246 pinctrl-0 = <&usb0_pins>;
247 pinctrl-names = "default";
248 status = "okay";
249};
250
251&lvds0 {
252 status = "okay";
253 ports {
254 port@1 {
255 lvds0_out: endpoint {
256 remote-endpoint = <&lvds_receiver_in>;
257 };
258 };
259 };
260};
261
262&msiof0 {
263 pinctrl-0 = <&msiof0_pins>;
264 pinctrl-names = "default";
265 cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
266
267 status = "okay";
268
269 flash1: flash@0 {
270 compatible = "sst,sst25vf016b", "jedec,spi-nor";
271 reg = <0>;
272 spi-max-frequency = <50000000>;
273 m25p,fast-read;
274
275 partitions {
276 compatible = "fixed-partitions";
277 #address-cells = <1>;
278 #size-cells = <1>;
279
280 partition@0 {
281 label = "user";
282 reg = <0x00000000 0x00200000>;
283 };
284 };
285 };
286};
287
288&pci0 {
289 pinctrl-0 = <&usb0_pins>;
290 pinctrl-names = "default";
291 /* Disable hsusb to enable USB2.0 host mode support on J2 */
292 /* status = "okay"; */
293};
294
295&pci1 {
296 pinctrl-0 = <&usb1_pins>;
297 pinctrl-names = "default";
298 status = "okay";
299};
300
301&pci2 {
302 /* Disable xhci to enable USB2.0 host mode support on J23 bottom port */
303 /* status = "okay"; */
304};
305
306&pcie_bus_clk {
307 clock-frequency = <100000000>;
308};
309
310&pciec {
311 /* SW2[6] determines which connector is activated
312 * ON = PCIe X4 (connector-J7)
313 * OFF = mini-PCIe (connector-J26)
314 */
315 status = "okay";
316};
317
318&pfc {
319 avb_pins: avb {
320 groups = "avb_mdio", "avb_gmii";
321 function = "avb";
322 };
323
324 backlight_pins: backlight {
325 groups = "tpu0_to2";
326 function = "tpu0";
327 };
328
329 can1_pins: can1 {
330 groups = "can1_data_b";
331 function = "can1";
332 };
333
334 i2c2_pins: i2c2 {
335 groups = "i2c2_b";
336 function = "i2c2";
337 };
338
339 msiof0_pins: msiof0 {
340 groups = "msiof0_clk", "msiof0_sync", "msiof0_tx", "msiof0_rx";
341 function = "msiof0";
342 };
343
344 scifa2_pins: scifa2 {
345 groups = "scifa2_data_c";
346 function = "scifa2";
347 };
348
349 scifb2_pins: scifb2 {
350 groups = "scifb2_data", "scifb2_ctrl";
351 function = "scifb2";
352 };
353
354 sdhi2_pins: sd2 {
355 groups = "sdhi2_data4", "sdhi2_ctrl";
356 function = "sdhi2";
357 power-source = <3300>;
358 };
359
360 sdhi2_pins_uhs: sd2_uhs {
361 groups = "sdhi2_data4", "sdhi2_ctrl";
362 function = "sdhi2";
363 power-source = <1800>;
364 };
365
366 sound_pins: sound {
367 groups = "ssi34_ctrl", "ssi3_data", "ssi4_data";
368 function = "ssi";
369 };
370
371 usb0_pins: usb0 {
372 groups = "usb0";
373 function = "usb0";
374 };
375
376 usb1_pins: usb1 {
377 groups = "usb1_pwen";
378 function = "usb1";
379 };
380};
381
382&rcar_sound {
383 pinctrl-0 = <&sound_pins>;
384 pinctrl-names = "default";
385 status = "okay";
386
387 /* Single DAI */
388 #sound-dai-cells = <0>;
389
390 rcar_sound,dai {
391 dai0 {
392 playback = <&ssi4>, <&src4>, <&dvc1>;
393 capture = <&ssi3>, <&src3>, <&dvc0>;
394 };
395 };
396};
397
398&rwdt {
399 timeout-sec = <60>;
400 status = "okay";
401};
402
403&scifa2 {
404 pinctrl-0 = <&scifa2_pins>;
405 pinctrl-names = "default";
406
407 status = "okay";
408};
409
410&scifb2 {
411 pinctrl-0 = <&scifb2_pins>;
412 pinctrl-names = "default";
413
414 uart-has-rtscts;
415 status = "okay";
416};
417
418&sdhi2 {
419 pinctrl-0 = <&sdhi2_pins>;
420 pinctrl-1 = <&sdhi2_pins_uhs>;
421 pinctrl-names = "default", "state_uhs";
422
423 vmmc-supply = <&vcc_sdhi2>;
424 vqmmc-supply = <&vccq_sdhi2>;
425 cd-gpios = <&gpio3 22 GPIO_ACTIVE_LOW>;
426 wp-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
427 sd-uhs-sdr50;
428 status = "okay";
429};
430
431&ssi4 {
432 shared-pin;
433};
434
435&tpu {
436 status = "okay";
437};
438
439&usbphy {
440 status = "okay";
441};
442
443&xhci {
444 status = "okay";
445};