blob: 676fdef9e081fee1e6f72b8d20fffb177c931658 [file] [log] [blame]
Lad Prabhakar07148c12021-03-15 22:24:05 +00001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874)
4 *
5 * Copyright (C) 2021 Renesas Electronics Corp.
6 */
7
8/dts-v1/;
9#include "r8a774c0.dtsi"
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/display/tda998x.h>
12
13/ {
14 model = "Silicon Linux RZ/G2E 96board platform (CAT874)";
15 compatible = "si-linux,cat874", "renesas,r8a774c0";
16
17 aliases {
18 serial0 = &scif2;
19 serial1 = &hscif2;
20 };
21
22 chosen {
23 bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
24 stdout-path = "serial0:115200n8";
25 };
26
27 hdmi-out {
28 compatible = "hdmi-connector";
29 type = "a";
30
31 port {
32 hdmi_con_out: endpoint {
33 remote-endpoint = <&tda19988_out>;
34 };
35 };
36 };
37
38 leds {
39 compatible = "gpio-leds";
40
41 led0 {
42 gpios = <&gpio5 19 GPIO_ACTIVE_HIGH>;
43 label = "LED0";
44 };
45
46 led1 {
47 gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
48 label = "LED1";
49 };
50
51 led2 {
52 gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
53 label = "LED2";
54 };
55
56 led3 {
57 gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;
58 label = "LED3";
59 };
60 };
61
62 memory@48000000 {
63 device_type = "memory";
64 /* first 128MB is reserved for secure area. */
65 reg = <0x0 0x48000000 0x0 0x78000000>;
66 };
67
68 reg_12p0v: regulator-12p0v {
69 compatible = "regulator-fixed";
70 regulator-name = "D12.0V";
71 regulator-min-microvolt = <12000000>;
72 regulator-max-microvolt = <12000000>;
73 regulator-boot-on;
74 regulator-always-on;
75 };
76
77 sound: sound {
78 compatible = "simple-audio-card";
79
80 simple-audio-card,name = "CAT874 HDMI sound";
81 simple-audio-card,format = "i2s";
82 simple-audio-card,bitclock-master = <&sndcpu>;
83 simple-audio-card,frame-master = <&sndcpu>;
84
85 sndcodec: simple-audio-card,codec {
86 sound-dai = <&tda19988>;
87 };
88
89 sndcpu: simple-audio-card,cpu {
90 sound-dai = <&rcar_sound>;
91 };
92 };
93
94 vcc_sdhi0: regulator-vcc-sdhi0 {
95 compatible = "regulator-fixed";
96
97 regulator-name = "SDHI0 Vcc";
98 regulator-min-microvolt = <3300000>;
99 regulator-max-microvolt = <3300000>;
100 regulator-always-on;
101 regulator-boot-on;
102 };
103
104 vccq_sdhi0: regulator-vccq-sdhi0 {
105 compatible = "regulator-gpio";
106
107 regulator-name = "SDHI0 VccQ";
108 regulator-min-microvolt = <1800000>;
109 regulator-max-microvolt = <3300000>;
110
111 gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
112 gpios-states = <1>;
113 states = <3300000 1>, <1800000 0>;
114 };
115
116 wlan_en_reg: fixedregulator {
117 compatible = "regulator-fixed";
118 regulator-name = "wlan-en-regulator";
119 regulator-min-microvolt = <1800000>;
120 regulator-max-microvolt = <1800000>;
121 startup-delay-us = <70000>;
122
123 gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>;
124 enable-active-high;
125 };
126
127 x13_clk: x13 {
128 compatible = "fixed-clock";
129 #clock-cells = <0>;
130 clock-frequency = <74250000>;
131 };
132
133 connector {
134 compatible = "usb-c-connector";
135 label = "USB-C";
136 data-role = "dual";
137
138 ports {
139 #address-cells = <1>;
140 #size-cells = <0>;
141 port@0 {
142 reg = <0>;
143 hs_ep: endpoint {
144 remote-endpoint = <&usb3_hs_ep>;
145 };
146 };
147 port@1 {
148 reg = <1>;
149 ss_ep: endpoint {
150 remote-endpoint = <&hd3ss3220_in_ep>;
151 };
152 };
153 };
154 };
155};
156
157&audio_clk_a {
158 clock-frequency = <22579200>;
159};
160
161&du {
162 pinctrl-0 = <&du_pins>;
163 pinctrl-names = "default";
164 status = "okay";
165
166 clocks = <&cpg CPG_MOD 724>,
167 <&cpg CPG_MOD 723>,
168 <&x13_clk>;
169 clock-names = "du.0", "du.1", "dclkin.0";
170
171 ports {
172 port@0 {
173 endpoint {
174 remote-endpoint = <&tda19988_in>;
175 };
176 };
177 };
178};
179
180&ehci0 {
181 dr_mode = "host";
182 status = "okay";
183};
184
185&extal_clk {
186 clock-frequency = <48000000>;
187};
188
189&hscif2 {
190 pinctrl-0 = <&hscif2_pins>;
191 pinctrl-names = "default";
192
193 uart-has-rtscts;
194 status = "okay";
195
196 bluetooth {
197 compatible = "ti,wl1837-st";
198 enable-gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>;
199 };
200};
201
202&i2c0 {
203 status = "okay";
204 clock-frequency = <100000>;
205
206 hd3ss3220@47 {
207 compatible = "ti,hd3ss3220";
208 reg = <0x47>;
209 interrupt-parent = <&gpio6>;
210 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
211
212 ports {
213 #address-cells = <1>;
214 #size-cells = <0>;
215 port@0 {
216 reg = <0>;
217 hd3ss3220_in_ep: endpoint {
218 remote-endpoint = <&ss_ep>;
219 };
220 };
221 port@1 {
222 reg = <1>;
223 hd3ss3220_out_ep: endpoint {
224 remote-endpoint = <&usb3_role_switch>;
225 };
226 };
227 };
228 };
229
230 tda19988: tda19988@70 {
231 compatible = "nxp,tda998x";
232 reg = <0x70>;
233 interrupt-parent = <&gpio1>;
234 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
235
236 video-ports = <0x234501>;
237
238 #sound-dai-cells = <0>;
239 audio-ports = <TDA998x_I2S 0x03>;
240 clocks = <&rcar_sound 1>;
241
242 ports {
243 #address-cells = <1>;
244 #size-cells = <0>;
245
246 port@0 {
247 reg = <0>;
248 tda19988_in: endpoint {
249 remote-endpoint = <&du_out_rgb>;
250 };
251 };
252
253 port@1 {
254 reg = <1>;
255 tda19988_out: endpoint {
256 remote-endpoint = <&hdmi_con_out>;
257 };
258 };
259 };
260 };
261};
262
263&i2c1 {
264 pinctrl-0 = <&i2c1_pins>;
265 pinctrl-names = "default";
266
267 status = "okay";
268 clock-frequency = <400000>;
269
270 rtc@32 {
271 compatible = "epson,rx8571";
272 reg = <0x32>;
273 };
274};
275
276&lvds0 {
277 status = "okay";
278
279 clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>;
280 clock-names = "fck", "dclkin.0", "extal";
281};
282
283&ohci0 {
284 dr_mode = "host";
285 status = "okay";
286};
287
288&pcie_bus_clk {
289 clock-frequency = <100000000>;
290};
291
292&pciec0 {
293 /* Map all possible DDR as inbound ranges */
294 dma-ranges = <0x42000000 0 0x40000000 0 0x40000000 0 0x80000000>;
295};
296
297&pfc {
298 du_pins: du {
299 groups = "du_rgb888", "du_clk_out_0", "du_sync", "du_disp",
300 "du_clk_in_0";
301 function = "du";
302 };
303
304 hscif2_pins: hscif2 {
305 groups = "hscif2_data_a", "hscif2_ctrl_a";
306 function = "hscif2";
307 };
308
309 i2c1_pins: i2c1 {
310 groups = "i2c1_b";
311 function = "i2c1";
312 };
313
314 scif2_pins: scif2 {
315 groups = "scif2_data_a";
316 function = "scif2";
317 };
318
319 sdhi0_pins: sd0 {
320 groups = "sdhi0_data4", "sdhi0_ctrl";
321 function = "sdhi0";
322 power-source = <3300>;
323 };
324
325 sdhi0_pins_uhs: sd0_uhs {
326 groups = "sdhi0_data4", "sdhi0_ctrl";
327 function = "sdhi0";
328 power-source = <1800>;
329 };
330
331 sdhi3_pins: sd3 {
332 groups = "sdhi3_data4", "sdhi3_ctrl";
333 function = "sdhi3";
334 power-source = <1800>;
335 };
336
337 sound_clk_pins: sound_clk {
338 groups = "audio_clkout1_a";
339 function = "audio_clk";
340 };
341
342 sound_pins: sound {
343 groups = "ssi01239_ctrl", "ssi0_data";
344 function = "ssi";
345 };
346
347 usb30_pins: usb30 {
348 groups = "usb30", "usb30_id";
349 function = "usb30";
350 };
351};
352
353&rcar_sound {
354 pinctrl-0 = <&sound_pins &sound_clk_pins>;
355 pinctrl-names = "default";
356
357 /* Single DAI */
358 #sound-dai-cells = <0>;
359
360 /* audio_clkout0/1/2/3 */
361 #clock-cells = <1>;
362 clock-frequency = <11289600>;
363
364 status = "okay";
365
366 rcar_sound,dai {
367 dai0 {
368 playback = <&ssi0 &src0 &dvc0>;
369 };
370 };
371};
372
373&rwdt {
374 timeout-sec = <60>;
375 status = "okay";
376};
377
378&scif2 {
379 pinctrl-0 = <&scif2_pins>;
380 pinctrl-names = "default";
381
382 status = "okay";
383};
384
385&sdhi0 {
386 pinctrl-0 = <&sdhi0_pins>;
387 pinctrl-1 = <&sdhi0_pins_uhs>;
388 pinctrl-names = "default", "state_uhs";
389
390 vmmc-supply = <&vcc_sdhi0>;
391 vqmmc-supply = <&vccq_sdhi0>;
392 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
393 bus-width = <4>;
394 sd-uhs-sdr50;
395 sd-uhs-sdr104;
396 status = "okay";
397};
398
399&sdhi3 {
400 status = "okay";
401 pinctrl-0 = <&sdhi3_pins>;
402 pinctrl-names = "default";
403
404 vmmc-supply = <&wlan_en_reg>;
405 bus-width = <4>;
406 non-removable;
407 cap-power-off-card;
408 keep-power-in-suspend;
409
410 #address-cells = <1>;
411 #size-cells = <0>;
412 wlcore: wlcore@2 {
413 compatible = "ti,wl1837";
414 reg = <2>;
415 interrupt-parent = <&gpio1>;
416 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
417 };
418};
419
420&usb2_phy0 {
421 renesas,no-otg-pins;
422 status = "okay";
423};
424
425&usb3_peri0 {
426 companion = <&xhci0>;
427 status = "okay";
428 usb-role-switch;
429
430 ports {
431 #address-cells = <1>;
432 #size-cells = <0>;
433 port@0 {
434 reg = <0>;
435 usb3_hs_ep: endpoint {
436 remote-endpoint = <&hs_ep>;
437 };
438 };
439 port@1 {
440 reg = <1>;
441 usb3_role_switch: endpoint {
442 remote-endpoint = <&hd3ss3220_out_ep>;
443 };
444 };
445 };
446};
447
448&xhci0 {
449 pinctrl-0 = <&usb30_pins>;
450 pinctrl-names = "default";
451
452 status = "okay";
453};