1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the Eagle board with R-Car V3M
4 *
5 * Copyright (C) 2016-2017 Renesas Electronics Corp.
6 * Copyright (C) 2017 Cogent Embedded, Inc.
7 */
8
9/dts-v1/;
10#include "r8a77970.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12
13/ {
14	model = "Renesas Eagle board based on r8a77970";
15	compatible = "renesas,eagle", "renesas,r8a77970";
16
17	aliases {
18		i2c0 = &i2c0;
19		i2c1 = &i2c1;
20		i2c2 = &i2c2;
21		i2c3 = &i2c3;
22		i2c4 = &i2c4;
23		serial0 = &scif0;
24		ethernet0 = &avb;
25	};
26
27	chosen {
28		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
29		stdout-path = "serial0:115200n8";
30	};
31
32	d3p3: regulator-fixed {
33		compatible = "regulator-fixed";
34		regulator-name = "fixed-3.3V";
35		regulator-min-microvolt = <3300000>;
36		regulator-max-microvolt = <3300000>;
37		regulator-boot-on;
38		regulator-always-on;
39	};
40
41	hdmi-out {
42		compatible = "hdmi-connector";
43		type = "a";
44
45		port {
46			hdmi_con_out: endpoint {
47				remote-endpoint = <&adv7511_out>;
48			};
49		};
50	};
51
52	lvds-decoder {
53		compatible = "thine,thc63lvd1024";
54
55		vcc-supply = <&d3p3>;
56
57		ports {
58			#address-cells = <1>;
59			#size-cells = <0>;
60
61			port@0 {
62				reg = <0>;
63				thc63lvd1024_in: endpoint {
64					remote-endpoint = <&lvds0_out>;
65				};
66			};
67
68			port@2 {
69				reg = <2>;
70				thc63lvd1024_out: endpoint {
71					remote-endpoint = <&adv7511_in>;
72				};
73			};
74		};
75	};
76
77	memory@48000000 {
78		device_type = "memory";
79		/* first 128MB is reserved for secure area. */
80		reg = <0x0 0x48000000 0x0 0x38000000>;
81	};
82
83	x1_clk: x1-clock {
84		compatible = "fixed-clock";
85		#clock-cells = <0>;
86		clock-frequency = <148500000>;
87	};
88};
89
90&avb {
91	pinctrl-0 = <&avb_pins>;
92	pinctrl-names = "default";
93
94	renesas,no-ether-link;
95	phy-handle = <&phy0>;
96	rx-internal-delay-ps = <1800>;
97	tx-internal-delay-ps = <2000>;
98	status = "okay";
99
100	phy0: ethernet-phy@0 {
101		compatible = "ethernet-phy-id0022.1622",
102			     "ethernet-phy-ieee802.3-c22";
103		rxc-skew-ps = <1500>;
104		reg = <0>;
105		interrupt-parent = <&gpio1>;
106		interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
107		reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
108	};
109};
110
111&canfd {
112	pinctrl-0 = <&canfd0_pins>;
113	pinctrl-names = "default";
114	status = "okay";
115
116	channel0 {
117		status = "okay";
118	};
119};
120
121&csi40 {
122	status = "okay";
123
124	ports {
125		port@0 {
126			csi40_in: endpoint {
127				clock-lanes = <0>;
128				data-lanes = <1 2 3 4>;
129				remote-endpoint = <&max9286_out0>;
130			};
131		};
132	};
133};
134
135&du {
136	clocks = <&cpg CPG_MOD 724>, <&x1_clk>;
137	clock-names = "du.0", "dclkin.0";
138	status = "okay";
139};
140
141&extal_clk {
142	clock-frequency = <16666666>;
143};
144
145&extalr_clk {
146	clock-frequency = <32768>;
147};
148
149&i2c0 {
150	pinctrl-0 = <&i2c0_pins>;
151	pinctrl-names = "default";
152
153	status = "okay";
154	clock-frequency = <400000>;
155
156	io_expander: gpio@20 {
157		compatible = "onnn,pca9654";
158		reg = <0x20>;
159		gpio-controller;
160		#gpio-cells = <2>;
161	};
162
163	hdmi@39 {
164		compatible = "adi,adv7511w";
165		reg = <0x39>;
166		interrupt-parent = <&gpio1>;
167		interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
168
169		adi,input-depth = <8>;
170		adi,input-colorspace = "rgb";
171		adi,input-clock = "1x";
172
173		ports {
174			#address-cells = <1>;
175			#size-cells = <0>;
176
177			port@0 {
178				reg = <0>;
179				adv7511_in: endpoint {
180					remote-endpoint = <&thc63lvd1024_out>;
181				};
182			};
183
184			port@1 {
185				reg = <1>;
186				adv7511_out: endpoint {
187					remote-endpoint = <&hdmi_con_out>;
188				};
189			};
190		};
191	};
192};
193
194&i2c3 {
195	pinctrl-0 = <&i2c3_pins>;
196	pinctrl-names = "default";
197
198	status = "okay";
199	clock-frequency = <400000>;
200
201	gmsl0: gmsl-deserializer@48 {
202		compatible = "maxim,max9286";
203		reg = <0x48>;
204
205		maxim,gpio-poc = <0 GPIO_ACTIVE_LOW>;
206		enable-gpios = <&io_expander 0 GPIO_ACTIVE_HIGH>;
207
208		ports {
209			#address-cells = <1>;
210			#size-cells = <0>;
211
212			port@0 {
213				reg = <0>;
214			};
215
216			port@1 {
217				reg = <1>;
218			};
219
220			port@2 {
221				reg = <2>;
222			};
223
224			port@3 {
225				reg = <3>;
226			};
227
228			port@4 {
229				reg = <4>;
230				max9286_out0: endpoint {
231					clock-lanes = <0>;
232					data-lanes = <1 2 3 4>;
233					remote-endpoint = <&csi40_in>;
234				};
235			};
236		};
237
238		i2c-mux {
239			#address-cells = <1>;
240			#size-cells = <0>;
241
242			i2c@0 {
243				#address-cells = <1>;
244				#size-cells = <0>;
245				reg = <0>;
246
247				status = "disabled";
248			};
249
250			i2c@1 {
251				#address-cells = <1>;
252				#size-cells = <0>;
253				reg = <1>;
254
255				status = "disabled";
256			};
257
258			i2c@2 {
259				#address-cells = <1>;
260				#size-cells = <0>;
261				reg = <2>;
262
263				status = "disabled";
264			};
265
266			i2c@3 {
267				#address-cells = <1>;
268				#size-cells = <0>;
269				reg = <3>;
270
271				status = "disabled";
272			};
273		};
274	};
275};
276
277&lvds0 {
278	status = "okay";
279
280	ports {
281		port@1 {
282			lvds0_out: endpoint {
283				remote-endpoint = <&thc63lvd1024_in>;
284			};
285		};
286	};
287};
288
289&pfc {
290	pinctrl-0 = <&scif_clk_pins>;
291	pinctrl-names = "default";
292
293	avb_pins: avb0 {
294		groups = "avb0_mdio", "avb0_rgmii", "avb0_txcrefclk";
295		function = "avb0";
296	};
297
298	canfd0_pins: canfd0 {
299		groups = "canfd0_data_a";
300		function = "canfd0";
301	};
302
303	i2c0_pins: i2c0 {
304		groups = "i2c0";
305		function = "i2c0";
306	};
307
308	i2c3_pins: i2c3 {
309		groups = "i2c3_a";
310		function = "i2c3";
311	};
312
313	qspi0_pins: qspi0 {
314		groups = "qspi0_ctrl", "qspi0_data4";
315		function = "qspi0";
316	};
317
318	scif0_pins: scif0 {
319		groups = "scif0_data";
320		function = "scif0";
321	};
322
323	scif_clk_pins: scif_clk {
324		groups = "scif_clk_b";
325		function = "scif_clk";
326	};
327};
328
329&rpc {
330	pinctrl-0 = <&qspi0_pins>;
331	pinctrl-names = "default";
332
333	status = "okay";
334
335	flash@0 {
336		compatible = "spansion,s25fs512s", "jedec,spi-nor";
337		reg = <0>;
338		spi-max-frequency = <50000000>;
339		spi-rx-bus-width = <4>;
340
341		partitions {
342			compatible = "fixed-partitions";
343			#address-cells = <1>;
344			#size-cells = <1>;
345
346			bootparam@0 {
347				reg = <0x00000000 0x040000>;
348				read-only;
349			};
350			cr7@40000 {
351				reg = <0x00040000 0x080000>;
352				read-only;
353			};
354			cert_header_sa3@c0000 {
355				reg = <0x000c0000 0x080000>;
356				read-only;
357			};
358			bl2@140000 {
359				reg = <0x00140000 0x040000>;
360				read-only;
361			};
362			cert_header_sa6@180000 {
363				reg = <0x00180000 0x040000>;
364				read-only;
365			};
366			bl31@1c0000 {
367				reg = <0x001c0000 0x460000>;
368				read-only;
369			};
370			uboot@640000 {
371				reg = <0x00640000 0x0c0000>;
372				read-only;
373			};
374			uboot-env@700000 {
375				reg = <0x00700000 0x040000>;
376				read-only;
377			};
378			dtb@740000 {
379				reg = <0x00740000 0x080000>;
380			};
381			kernel@7c0000 {
382				reg = <0x007c0000 0x1400000>;
383			};
384			user@1bc0000 {
385				reg = <0x01bc0000 0x2440000>;
386			};
387		};
388	};
389};
390
391&rwdt {
392	timeout-sec = <60>;
393	status = "okay";
394};
395
396&scif0 {
397	pinctrl-0 = <&scif0_pins>;
398	pinctrl-names = "default";
399
400	status = "okay";
401};
402
403&scif_clk {
404	clock-frequency = <14745600>;
405};
406