Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / renesas / r8a774c0-cat874.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the Silicon Linux RZ/G2E 96board platform (CAT874)
4  *
5  * Copyright (C) 2019 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 };