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};
375