Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / renesas / r8a77990-ebisu.dts
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Device Tree Source for the ebisu board
4  *
5  * Copyright (C) 2018 Renesas Electronics Corp.
6  */
7
8 /dts-v1/;
9 #include "r8a77990.dtsi"
10 #include <dt-bindings/gpio/gpio.h>
11
12 / {
13         model = "Renesas Ebisu board based on r8a77990";
14         compatible = "renesas,ebisu", "renesas,r8a77990";
15
16         aliases {
17                 serial0 = &scif2;
18                 ethernet0 = &avb;
19         };
20
21         chosen {
22                 bootargs = "ignore_loglevel";
23                 stdout-path = "serial0:115200n8";
24         };
25
26         memory@48000000 {
27                 device_type = "memory";
28                 /* first 128MB is reserved for secure area. */
29                 reg = <0x0 0x48000000 0x0 0x38000000>;
30         };
31
32         cvbs-in {
33                 compatible = "composite-video-connector";
34                 label = "CVBS IN";
35
36                 port {
37                         cvbs_con: endpoint {
38                                 remote-endpoint = <&adv7482_ain7>;
39                         };
40                 };
41         };
42
43         hdmi-in {
44                 compatible = "hdmi-connector";
45                 label = "HDMI IN";
46                 type = "a";
47
48                 port {
49                         hdmi_in_con: endpoint {
50                                 remote-endpoint = <&adv7482_hdmi>;
51                         };
52                 };
53         };
54
55         hdmi-out {
56                 compatible = "hdmi-connector";
57                 type = "a";
58
59                 port {
60                         hdmi_con_out: endpoint {
61                                 remote-endpoint = <&adv7511_out>;
62                         };
63                 };
64         };
65
66         lvds-decoder {
67                 compatible = "thine,thc63lvd1024";
68                 vcc-supply = <&reg_3p3v>;
69
70                 ports {
71                         #address-cells = <1>;
72                         #size-cells = <0>;
73
74                         port@0 {
75                                 reg = <0>;
76                                 thc63lvd1024_in: endpoint {
77                                         remote-endpoint = <&lvds0_out>;
78                                 };
79                         };
80
81                         port@2 {
82                                 reg = <2>;
83                                 thc63lvd1024_out: endpoint {
84                                         remote-endpoint = <&adv7511_in>;
85                                 };
86                         };
87                 };
88         };
89
90         vga {
91                 compatible = "vga-connector";
92
93                 port {
94                         vga_in: endpoint {
95                                 remote-endpoint = <&adv7123_out>;
96                         };
97                 };
98         };
99
100         vga-encoder {
101                 compatible = "adi,adv7123";
102
103                 ports {
104                         #address-cells = <1>;
105                         #size-cells = <0>;
106
107                         port@0 {
108                                 reg = <0>;
109                                 adv7123_in: endpoint {
110                                         remote-endpoint = <&du_out_rgb>;
111                                 };
112                         };
113                         port@1 {
114                                 reg = <1>;
115                                 adv7123_out: endpoint {
116                                         remote-endpoint = <&vga_in>;
117                                 };
118                         };
119                 };
120         };
121
122         reg_3p3v: regulator1 {
123                 compatible = "regulator-fixed";
124                 regulator-name = "fixed-3.3V";
125                 regulator-min-microvolt = <3300000>;
126                 regulator-max-microvolt = <3300000>;
127                 regulator-boot-on;
128                 regulator-always-on;
129         };
130
131         x13_clk: x13 {
132                 compatible = "fixed-clock";
133                 #clock-cells = <0>;
134                 clock-frequency = <74250000>;
135         };
136 };
137
138 &avb {
139         pinctrl-0 = <&avb_pins>;
140         pinctrl-names = "default";
141         renesas,no-ether-link;
142         phy-handle = <&phy0>;
143         phy-mode = "rgmii-txid";
144         status = "okay";
145
146         phy0: ethernet-phy@0 {
147                 rxc-skew-ps = <1500>;
148                 reg = <0>;
149                 interrupt-parent = <&gpio2>;
150                 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
151                 reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
152         };
153 };
154
155 &csi40 {
156         status = "okay";
157
158         ports {
159                 port@0 {
160                         reg = <0>;
161
162                         csi40_in: endpoint {
163                                 clock-lanes = <0>;
164                                 data-lanes = <1 2>;
165                                 remote-endpoint = <&adv7482_txa>;
166                         };
167                 };
168         };
169 };
170
171 &du {
172         pinctrl-0 = <&du_pins>;
173         pinctrl-names = "default";
174         status = "okay";
175
176         clocks = <&cpg CPG_MOD 724>,
177                  <&cpg CPG_MOD 723>,
178                  <&x13_clk>;
179         clock-names = "du.0", "du.1", "dclkin.0";
180
181         ports {
182                 port@0 {
183                         endpoint {
184                                 remote-endpoint = <&adv7123_in>;
185                         };
186                 };
187         };
188 };
189
190 &ehci0 {
191         status = "okay";
192 };
193
194 &extal_clk {
195         clock-frequency = <48000000>;
196 };
197
198 &i2c0 {
199         status = "okay";
200
201         hdmi-encoder@39 {
202                 compatible = "adi,adv7511w";
203                 reg = <0x39>;
204                 interrupt-parent = <&gpio1>;
205                 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
206
207                 adi,input-depth = <8>;
208                 adi,input-colorspace = "rgb";
209                 adi,input-clock = "1x";
210                 adi,input-style = <1>;
211                 adi,input-justification = "evenly";
212
213                 ports {
214                         #address-cells = <1>;
215                         #size-cells = <0>;
216
217                         port@0 {
218                                 reg = <0>;
219                                 adv7511_in: endpoint {
220                                         remote-endpoint = <&thc63lvd1024_out>;
221                                 };
222                         };
223
224                         port@1 {
225                                 reg = <1>;
226                                 adv7511_out: endpoint {
227                                         remote-endpoint = <&hdmi_con_out>;
228                                 };
229                         };
230                 };
231         };
232
233         video-receiver@70 {
234                 compatible = "adi,adv7482";
235                 reg = <0x70>;
236
237                 #address-cells = <1>;
238                 #size-cells = <0>;
239
240                 interrupt-parent = <&gpio0>;
241                 interrupt-names = "intrq1", "intrq2";
242                 interrupts = <7 IRQ_TYPE_LEVEL_LOW>,
243                              <17 IRQ_TYPE_LEVEL_LOW>;
244
245                 port@7 {
246                         reg = <7>;
247
248                         adv7482_ain7: endpoint {
249                                 remote-endpoint = <&cvbs_con>;
250                         };
251                 };
252
253                 port@8 {
254                         reg = <8>;
255
256                         adv7482_hdmi: endpoint {
257                                 remote-endpoint = <&hdmi_in_con>;
258                         };
259                 };
260
261                 port@a {
262                         reg = <0xa>;
263
264                         adv7482_txa: endpoint {
265                                 clock-lanes = <0>;
266                                 data-lanes = <1 2>;
267                                 remote-endpoint = <&csi40_in>;
268                         };
269                 };
270         };
271 };
272
273 &lvds0 {
274         status = "okay";
275
276         clocks = <&cpg CPG_MOD 727>,
277                  <&x13_clk>,
278                  <&extal_clk>;
279         clock-names = "fck", "dclkin.0", "extal";
280
281         ports {
282                 port@1 {
283                         lvds0_out: endpoint {
284                                 remote-endpoint = <&thc63lvd1024_in>;
285                         };
286                 };
287         };
288 };
289
290 &lvds1 {
291         clocks = <&cpg CPG_MOD 727>,
292                  <&x13_clk>,
293                  <&extal_clk>;
294         clock-names = "fck", "dclkin.0", "extal";
295 };
296
297 &ohci0 {
298         status = "okay";
299 };
300
301 &pfc {
302         avb_pins: avb {
303                 mux {
304                         groups = "avb_link", "avb_mii";
305                         function = "avb";
306                 };
307         };
308
309         du_pins: du {
310                 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
311                 function = "du";
312         };
313
314         pwm3_pins: pwm3 {
315                 groups = "pwm3_b";
316                 function = "pwm3";
317         };
318
319         pwm5_pins: pwm5 {
320                 groups = "pwm5_a";
321                 function = "pwm5";
322         };
323
324         usb0_pins: usb {
325                 groups = "usb0_b";
326                 function = "usb0";
327         };
328
329         usb30_pins: usb30 {
330                 groups = "usb30";
331                 function = "usb30";
332         };
333 };
334
335 &pwm3 {
336         pinctrl-0 = <&pwm3_pins>;
337         pinctrl-names = "default";
338
339         status = "okay";
340 };
341
342 &pwm5 {
343         pinctrl-0 = <&pwm5_pins>;
344         pinctrl-names = "default";
345
346         status = "okay";
347 };
348
349 &rwdt {
350         timeout-sec = <60>;
351         status = "okay";
352 };
353
354 &scif2 {
355         status = "okay";
356 };
357
358 &usb2_phy0 {
359         pinctrl-0 = <&usb0_pins>;
360         pinctrl-names = "default";
361
362         status = "okay";
363 };
364
365 &vin4 {
366         status = "okay";
367 };
368
369 &xhci0 {
370         pinctrl-0 = <&usb30_pins>;
371         pinctrl-names = "default";
372
373         status = "okay";
374 };