xref: /linux/scripts/dtc/include-prefixes/arm64/renesas/draak.dtsi (revision 732e8ee0351c59ded4d88106437a7ad1cff4cb83)
1f5335aa6SGeert Uytterhoeven// SPDX-License-Identifier: GPL-2.0
2f5335aa6SGeert Uytterhoeven/*
3f5335aa6SGeert Uytterhoeven * Device Tree Source for the Draak board
4f5335aa6SGeert Uytterhoeven *
5f5335aa6SGeert Uytterhoeven * Copyright (C) 2016-2018 Renesas Electronics Corp.
6f5335aa6SGeert Uytterhoeven * Copyright (C) 2017 Glider bvba
7f5335aa6SGeert Uytterhoeven */
8f5335aa6SGeert Uytterhoeven
9f5335aa6SGeert Uytterhoeven#include <dt-bindings/gpio/gpio.h>
10f5335aa6SGeert Uytterhoeven#include <dt-bindings/input/input.h>
11f5335aa6SGeert Uytterhoeven
12f5335aa6SGeert Uytterhoeven/ {
13f5335aa6SGeert Uytterhoeven	model = "Renesas Draak board";
14f5335aa6SGeert Uytterhoeven	compatible = "renesas,draak";
15f5335aa6SGeert Uytterhoeven
16f5335aa6SGeert Uytterhoeven	aliases {
17f5335aa6SGeert Uytterhoeven		serial0 = &scif2;
18f5335aa6SGeert Uytterhoeven		ethernet0 = &avb;
19f5335aa6SGeert Uytterhoeven	};
20f5335aa6SGeert Uytterhoeven
21f5335aa6SGeert Uytterhoeven	audio_clkout: audio-clkout {
22f5335aa6SGeert Uytterhoeven		/*
23f5335aa6SGeert Uytterhoeven		 * This is same as <&rcar_sound 0>
24f5335aa6SGeert Uytterhoeven		 * but needed to avoid cs2000/rcar_sound probe dead-lock
25f5335aa6SGeert Uytterhoeven		 */
26f5335aa6SGeert Uytterhoeven		compatible = "fixed-clock";
27f5335aa6SGeert Uytterhoeven		#clock-cells = <0>;
28f5335aa6SGeert Uytterhoeven		clock-frequency = <12288000>;
29f5335aa6SGeert Uytterhoeven	};
30f5335aa6SGeert Uytterhoeven
31f5335aa6SGeert Uytterhoeven	backlight: backlight {
32f5335aa6SGeert Uytterhoeven		compatible = "pwm-backlight";
33f5335aa6SGeert Uytterhoeven		pwms = <&pwm1 0 50000>;
34f5335aa6SGeert Uytterhoeven
35f5335aa6SGeert Uytterhoeven		brightness-levels = <512 511 505 494 473 440 392 327 241 133 0>;
36f5335aa6SGeert Uytterhoeven		default-brightness-level = <10>;
37f5335aa6SGeert Uytterhoeven
38f5335aa6SGeert Uytterhoeven		power-supply = <&reg_12p0v>;
39f5335aa6SGeert Uytterhoeven		enable-gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
40f5335aa6SGeert Uytterhoeven	};
41f5335aa6SGeert Uytterhoeven
42f5335aa6SGeert Uytterhoeven	chosen {
43f5335aa6SGeert Uytterhoeven		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
44f5335aa6SGeert Uytterhoeven		stdout-path = "serial0:115200n8";
45f5335aa6SGeert Uytterhoeven	};
46f5335aa6SGeert Uytterhoeven
47f5335aa6SGeert Uytterhoeven	composite-in {
48f5335aa6SGeert Uytterhoeven		compatible = "composite-video-connector";
49f5335aa6SGeert Uytterhoeven
50f5335aa6SGeert Uytterhoeven		port {
51f5335aa6SGeert Uytterhoeven			composite_con_in: endpoint {
52f5335aa6SGeert Uytterhoeven				remote-endpoint = <&adv7180_in>;
53f5335aa6SGeert Uytterhoeven			};
54f5335aa6SGeert Uytterhoeven		};
55f5335aa6SGeert Uytterhoeven	};
56f5335aa6SGeert Uytterhoeven
57f5335aa6SGeert Uytterhoeven	hdmi-in {
58f5335aa6SGeert Uytterhoeven		compatible = "hdmi-connector";
59f5335aa6SGeert Uytterhoeven		type = "a";
60f5335aa6SGeert Uytterhoeven
61f5335aa6SGeert Uytterhoeven		port {
62f5335aa6SGeert Uytterhoeven			hdmi_con_in: endpoint {
63f5335aa6SGeert Uytterhoeven				remote-endpoint = <&adv7612_in>;
64f5335aa6SGeert Uytterhoeven			};
65f5335aa6SGeert Uytterhoeven		};
66f5335aa6SGeert Uytterhoeven	};
67f5335aa6SGeert Uytterhoeven
68f5335aa6SGeert Uytterhoeven	hdmi-out {
69f5335aa6SGeert Uytterhoeven		compatible = "hdmi-connector";
70f5335aa6SGeert Uytterhoeven		type = "a";
71f5335aa6SGeert Uytterhoeven
72f5335aa6SGeert Uytterhoeven		port {
73f5335aa6SGeert Uytterhoeven			hdmi_con_out: endpoint {
74f5335aa6SGeert Uytterhoeven				remote-endpoint = <&adv7511_out>;
75f5335aa6SGeert Uytterhoeven			};
76f5335aa6SGeert Uytterhoeven		};
77f5335aa6SGeert Uytterhoeven	};
78f5335aa6SGeert Uytterhoeven
79f5335aa6SGeert Uytterhoeven	keys {
80f5335aa6SGeert Uytterhoeven		compatible = "gpio-keys";
81f5335aa6SGeert Uytterhoeven
82f5335aa6SGeert Uytterhoeven		pinctrl-0 = <&keys_pins>;
83f5335aa6SGeert Uytterhoeven		pinctrl-names = "default";
84f5335aa6SGeert Uytterhoeven
85f5335aa6SGeert Uytterhoeven		key-1 {
86f5335aa6SGeert Uytterhoeven			gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
87f5335aa6SGeert Uytterhoeven			linux,code = <KEY_1>;
88f5335aa6SGeert Uytterhoeven			label = "SW56-1";
89f5335aa6SGeert Uytterhoeven			wakeup-source;
90f5335aa6SGeert Uytterhoeven			debounce-interval = <20>;
91f5335aa6SGeert Uytterhoeven		};
92f5335aa6SGeert Uytterhoeven		key-2 {
93f5335aa6SGeert Uytterhoeven			gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;
94f5335aa6SGeert Uytterhoeven			linux,code = <KEY_2>;
95f5335aa6SGeert Uytterhoeven			label = "SW56-2";
96f5335aa6SGeert Uytterhoeven			wakeup-source;
97f5335aa6SGeert Uytterhoeven			debounce-interval = <20>;
98f5335aa6SGeert Uytterhoeven		};
99f5335aa6SGeert Uytterhoeven		key-3 {
100f5335aa6SGeert Uytterhoeven			gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;
101f5335aa6SGeert Uytterhoeven			linux,code = <KEY_3>;
102f5335aa6SGeert Uytterhoeven			label = "SW56-3";
103f5335aa6SGeert Uytterhoeven			wakeup-source;
104f5335aa6SGeert Uytterhoeven			debounce-interval = <20>;
105f5335aa6SGeert Uytterhoeven		};
106f5335aa6SGeert Uytterhoeven		key-4 {
107f5335aa6SGeert Uytterhoeven			gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
108f5335aa6SGeert Uytterhoeven			linux,code = <KEY_4>;
109f5335aa6SGeert Uytterhoeven			label = "SW56-4";
110f5335aa6SGeert Uytterhoeven			wakeup-source;
111f5335aa6SGeert Uytterhoeven			debounce-interval = <20>;
112f5335aa6SGeert Uytterhoeven		};
113f5335aa6SGeert Uytterhoeven	};
114f5335aa6SGeert Uytterhoeven
115f5335aa6SGeert Uytterhoeven	lvds-decoder {
116f5335aa6SGeert Uytterhoeven		compatible = "thine,thc63lvd1024";
117f5335aa6SGeert Uytterhoeven		vcc-supply = <&reg_3p3v>;
118f5335aa6SGeert Uytterhoeven
119f5335aa6SGeert Uytterhoeven		ports {
120f5335aa6SGeert Uytterhoeven			#address-cells = <1>;
121f5335aa6SGeert Uytterhoeven			#size-cells = <0>;
122f5335aa6SGeert Uytterhoeven
123f5335aa6SGeert Uytterhoeven			port@0 {
124f5335aa6SGeert Uytterhoeven				reg = <0>;
125f5335aa6SGeert Uytterhoeven				thc63lvd1024_in: endpoint {
126f5335aa6SGeert Uytterhoeven					remote-endpoint = <&lvds0_out>;
127f5335aa6SGeert Uytterhoeven				};
128f5335aa6SGeert Uytterhoeven			};
129f5335aa6SGeert Uytterhoeven
130f5335aa6SGeert Uytterhoeven			port@2 {
131f5335aa6SGeert Uytterhoeven				reg = <2>;
132f5335aa6SGeert Uytterhoeven				thc63lvd1024_out: endpoint {
133f5335aa6SGeert Uytterhoeven					remote-endpoint = <&adv7511_in>;
134f5335aa6SGeert Uytterhoeven				};
135f5335aa6SGeert Uytterhoeven			};
136f5335aa6SGeert Uytterhoeven		};
137f5335aa6SGeert Uytterhoeven	};
138f5335aa6SGeert Uytterhoeven
139f5335aa6SGeert Uytterhoeven	memory@48000000 {
140f5335aa6SGeert Uytterhoeven		device_type = "memory";
141f5335aa6SGeert Uytterhoeven		/* first 128MB is reserved for secure area. */
142f5335aa6SGeert Uytterhoeven		reg = <0x0 0x48000000 0x0 0x18000000>;
143f5335aa6SGeert Uytterhoeven	};
144f5335aa6SGeert Uytterhoeven
145f5335aa6SGeert Uytterhoeven	reg_1p8v: regulator-1p8v {
146f5335aa6SGeert Uytterhoeven		compatible = "regulator-fixed";
147f5335aa6SGeert Uytterhoeven		regulator-name = "fixed-1.8V";
148f5335aa6SGeert Uytterhoeven		regulator-min-microvolt = <1800000>;
149f5335aa6SGeert Uytterhoeven		regulator-max-microvolt = <1800000>;
150f5335aa6SGeert Uytterhoeven		regulator-boot-on;
151f5335aa6SGeert Uytterhoeven		regulator-always-on;
152f5335aa6SGeert Uytterhoeven	};
153f5335aa6SGeert Uytterhoeven
154f5335aa6SGeert Uytterhoeven	reg_3p3v: regulator-3p3v {
155f5335aa6SGeert Uytterhoeven		compatible = "regulator-fixed";
156f5335aa6SGeert Uytterhoeven		regulator-name = "fixed-3.3V";
157f5335aa6SGeert Uytterhoeven		regulator-min-microvolt = <3300000>;
158f5335aa6SGeert Uytterhoeven		regulator-max-microvolt = <3300000>;
159f5335aa6SGeert Uytterhoeven		regulator-boot-on;
160f5335aa6SGeert Uytterhoeven		regulator-always-on;
161f5335aa6SGeert Uytterhoeven	};
162f5335aa6SGeert Uytterhoeven
163f5335aa6SGeert Uytterhoeven	reg_12p0v: regulator-12p0v {
164f5335aa6SGeert Uytterhoeven		compatible = "regulator-fixed";
165f5335aa6SGeert Uytterhoeven		regulator-name = "D12.0V";
166f5335aa6SGeert Uytterhoeven		regulator-min-microvolt = <12000000>;
167f5335aa6SGeert Uytterhoeven		regulator-max-microvolt = <12000000>;
168f5335aa6SGeert Uytterhoeven		regulator-boot-on;
169f5335aa6SGeert Uytterhoeven		regulator-always-on;
170f5335aa6SGeert Uytterhoeven	};
171f5335aa6SGeert Uytterhoeven
172f5335aa6SGeert Uytterhoeven	sound_card: sound {
173f5335aa6SGeert Uytterhoeven		compatible = "audio-graph-card";
174f5335aa6SGeert Uytterhoeven
175f5335aa6SGeert Uytterhoeven		dais = <&rsnd_port0	/* ak4613 */
176f5335aa6SGeert Uytterhoeven			/* HDMI is not yet supported */
177f5335aa6SGeert Uytterhoeven		>;
178f5335aa6SGeert Uytterhoeven	};
179f5335aa6SGeert Uytterhoeven
180f5335aa6SGeert Uytterhoeven	vga {
181f5335aa6SGeert Uytterhoeven		compatible = "vga-connector";
182f5335aa6SGeert Uytterhoeven
183f5335aa6SGeert Uytterhoeven		port {
184f5335aa6SGeert Uytterhoeven			vga_in: endpoint {
185f5335aa6SGeert Uytterhoeven				remote-endpoint = <&adv7123_out>;
186f5335aa6SGeert Uytterhoeven			};
187f5335aa6SGeert Uytterhoeven		};
188f5335aa6SGeert Uytterhoeven	};
189f5335aa6SGeert Uytterhoeven
190f5335aa6SGeert Uytterhoeven	vga-encoder {
191f5335aa6SGeert Uytterhoeven		compatible = "adi,adv7123";
192f5335aa6SGeert Uytterhoeven
193f5335aa6SGeert Uytterhoeven		ports {
194f5335aa6SGeert Uytterhoeven			#address-cells = <1>;
195f5335aa6SGeert Uytterhoeven			#size-cells = <0>;
196f5335aa6SGeert Uytterhoeven
197f5335aa6SGeert Uytterhoeven			port@0 {
198f5335aa6SGeert Uytterhoeven				reg = <0>;
199f5335aa6SGeert Uytterhoeven				adv7123_in: endpoint {
200f5335aa6SGeert Uytterhoeven					remote-endpoint = <&du_out_rgb>;
201f5335aa6SGeert Uytterhoeven				};
202f5335aa6SGeert Uytterhoeven			};
203f5335aa6SGeert Uytterhoeven			port@1 {
204f5335aa6SGeert Uytterhoeven				reg = <1>;
205f5335aa6SGeert Uytterhoeven				adv7123_out: endpoint {
206f5335aa6SGeert Uytterhoeven					remote-endpoint = <&vga_in>;
207f5335aa6SGeert Uytterhoeven				};
208f5335aa6SGeert Uytterhoeven			};
209f5335aa6SGeert Uytterhoeven		};
210f5335aa6SGeert Uytterhoeven	};
211f5335aa6SGeert Uytterhoeven
212f5335aa6SGeert Uytterhoeven	x12_clk: x12 {
213f5335aa6SGeert Uytterhoeven		compatible = "fixed-clock";
214f5335aa6SGeert Uytterhoeven		#clock-cells = <0>;
215f5335aa6SGeert Uytterhoeven		clock-frequency = <74250000>;
216f5335aa6SGeert Uytterhoeven	};
217f5335aa6SGeert Uytterhoeven
218f5335aa6SGeert Uytterhoeven	x19_clk: x19 {
219f5335aa6SGeert Uytterhoeven		compatible = "fixed-clock";
220f5335aa6SGeert Uytterhoeven		#clock-cells = <0>;
221f5335aa6SGeert Uytterhoeven		clock-frequency = <24576000>;
222f5335aa6SGeert Uytterhoeven	};
223f5335aa6SGeert Uytterhoeven};
224f5335aa6SGeert Uytterhoeven
225f5335aa6SGeert Uytterhoeven&audio_clk_b {
226f5335aa6SGeert Uytterhoeven	/*
227f5335aa6SGeert Uytterhoeven	 * X11 is connected to VI4_FIELD/SCIF_CLK/AUDIO_CLKB,
228f5335aa6SGeert Uytterhoeven	 * and R-Car Sound uses AUDIO_CLKB.
229f5335aa6SGeert Uytterhoeven	 * Note is that schematic indicates VI4_FIELD conection only
230f5335aa6SGeert Uytterhoeven	 * not AUDIO_CLKB at SoC page.
231f5335aa6SGeert Uytterhoeven	 * And this VI4_FIELD/SCIF_CLK/AUDIO_CLKB is connected to SW60.
232f5335aa6SGeert Uytterhoeven	 * SW60 should be 1-2.
233f5335aa6SGeert Uytterhoeven	 */
234f5335aa6SGeert Uytterhoeven
235f5335aa6SGeert Uytterhoeven	clock-frequency = <22579200>;
236f5335aa6SGeert Uytterhoeven};
237f5335aa6SGeert Uytterhoeven
238f5335aa6SGeert Uytterhoeven&avb {
239f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&avb0_pins>;
240f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
241f5335aa6SGeert Uytterhoeven	renesas,no-ether-link;
242f5335aa6SGeert Uytterhoeven	phy-handle = <&phy0>;
243f5335aa6SGeert Uytterhoeven	status = "okay";
244f5335aa6SGeert Uytterhoeven
245f5335aa6SGeert Uytterhoeven	phy0: ethernet-phy@0 {
246722d55f3SGeert Uytterhoeven		compatible = "ethernet-phy-id0022.1622",
247722d55f3SGeert Uytterhoeven			     "ethernet-phy-ieee802.3-c22";
248f5335aa6SGeert Uytterhoeven		rxc-skew-ps = <1500>;
249f5335aa6SGeert Uytterhoeven		reg = <0>;
250f5335aa6SGeert Uytterhoeven		interrupt-parent = <&gpio5>;
251f5335aa6SGeert Uytterhoeven		interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
252*732e8ee0SGeert Uytterhoeven		reset-gpios = <&gpio5 18 GPIO_ACTIVE_LOW>;
253f5335aa6SGeert Uytterhoeven		/*
254f5335aa6SGeert Uytterhoeven		 * TX clock internal delay mode is required for reliable
255f5335aa6SGeert Uytterhoeven		 * 1Gbps communication using the KSZ9031RNX phy present on
256f5335aa6SGeert Uytterhoeven		 * the Draak board, however, TX clock internal delay mode
257f5335aa6SGeert Uytterhoeven		 * isn't supported on R-Car D3(e).  Thus, limit speed to
258f5335aa6SGeert Uytterhoeven		 * 100Mbps for reliable communication.
259f5335aa6SGeert Uytterhoeven		 */
260f5335aa6SGeert Uytterhoeven		max-speed = <100>;
261f5335aa6SGeert Uytterhoeven	};
262f5335aa6SGeert Uytterhoeven};
263f5335aa6SGeert Uytterhoeven
264f5335aa6SGeert Uytterhoeven&can0 {
265f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&can0_pins>;
266f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
267f5335aa6SGeert Uytterhoeven	status = "okay";
268f5335aa6SGeert Uytterhoeven};
269f5335aa6SGeert Uytterhoeven
270f5335aa6SGeert Uytterhoeven&can1 {
271f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&can1_pins>;
272f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
273f5335aa6SGeert Uytterhoeven	status = "okay";
274f5335aa6SGeert Uytterhoeven};
275f5335aa6SGeert Uytterhoeven
276f5335aa6SGeert Uytterhoeven&du {
277f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&du_pins>;
278f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
279f5335aa6SGeert Uytterhoeven	status = "okay";
280f5335aa6SGeert Uytterhoeven
281f5335aa6SGeert Uytterhoeven	clocks = <&cpg CPG_MOD 724>,
282f5335aa6SGeert Uytterhoeven		 <&cpg CPG_MOD 723>,
283f5335aa6SGeert Uytterhoeven		 <&x12_clk>;
284f5335aa6SGeert Uytterhoeven	clock-names = "du.0", "du.1", "dclkin.0";
285f5335aa6SGeert Uytterhoeven
286f5335aa6SGeert Uytterhoeven	ports {
287f5335aa6SGeert Uytterhoeven		port@0 {
288f5335aa6SGeert Uytterhoeven			endpoint {
289f5335aa6SGeert Uytterhoeven				remote-endpoint = <&adv7123_in>;
290f5335aa6SGeert Uytterhoeven			};
291f5335aa6SGeert Uytterhoeven		};
292f5335aa6SGeert Uytterhoeven	};
293f5335aa6SGeert Uytterhoeven};
294f5335aa6SGeert Uytterhoeven
295f5335aa6SGeert Uytterhoeven&ehci0 {
296f5335aa6SGeert Uytterhoeven	dr_mode = "host";
297f5335aa6SGeert Uytterhoeven	status = "okay";
298f5335aa6SGeert Uytterhoeven};
299f5335aa6SGeert Uytterhoeven
300f5335aa6SGeert Uytterhoeven&extal_clk {
301f5335aa6SGeert Uytterhoeven	clock-frequency = <48000000>;
302f5335aa6SGeert Uytterhoeven};
303f5335aa6SGeert Uytterhoeven
304f5335aa6SGeert Uytterhoeven&hsusb {
305f5335aa6SGeert Uytterhoeven	dr_mode = "host";
306f5335aa6SGeert Uytterhoeven	status = "okay";
307f5335aa6SGeert Uytterhoeven};
308f5335aa6SGeert Uytterhoeven
309f5335aa6SGeert Uytterhoeven&i2c0 {
310f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&i2c0_pins>;
311f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
312f5335aa6SGeert Uytterhoeven	status = "okay";
313f5335aa6SGeert Uytterhoeven
314f5335aa6SGeert Uytterhoeven	ak4613: codec@10 {
315f5335aa6SGeert Uytterhoeven		compatible = "asahi-kasei,ak4613";
316f5335aa6SGeert Uytterhoeven		#sound-dai-cells = <0>;
317f5335aa6SGeert Uytterhoeven		reg = <0x10>;
318f5335aa6SGeert Uytterhoeven		clocks = <&rcar_sound 0>; /* audio_clkout */
319f5335aa6SGeert Uytterhoeven
320f5335aa6SGeert Uytterhoeven		asahi-kasei,in1-single-end;
321f5335aa6SGeert Uytterhoeven		asahi-kasei,in2-single-end;
322f5335aa6SGeert Uytterhoeven		asahi-kasei,out1-single-end;
323f5335aa6SGeert Uytterhoeven		asahi-kasei,out2-single-end;
324f5335aa6SGeert Uytterhoeven		asahi-kasei,out3-single-end;
325f5335aa6SGeert Uytterhoeven		asahi-kasei,out4-single-end;
326f5335aa6SGeert Uytterhoeven		asahi-kasei,out5-single-end;
327f5335aa6SGeert Uytterhoeven		asahi-kasei,out6-single-end;
328f5335aa6SGeert Uytterhoeven
329f5335aa6SGeert Uytterhoeven		port {
330f5335aa6SGeert Uytterhoeven			ak4613_endpoint: endpoint {
331f5335aa6SGeert Uytterhoeven				remote-endpoint = <&rsnd_for_ak4613>;
332f5335aa6SGeert Uytterhoeven			};
333f5335aa6SGeert Uytterhoeven		};
334f5335aa6SGeert Uytterhoeven	};
335f5335aa6SGeert Uytterhoeven
336f5335aa6SGeert Uytterhoeven	composite-in@20 {
337f5335aa6SGeert Uytterhoeven		compatible = "adi,adv7180cp";
338f5335aa6SGeert Uytterhoeven		reg = <0x20>;
339f5335aa6SGeert Uytterhoeven
340f5335aa6SGeert Uytterhoeven		ports {
341f5335aa6SGeert Uytterhoeven			#address-cells = <1>;
342f5335aa6SGeert Uytterhoeven			#size-cells = <0>;
343f5335aa6SGeert Uytterhoeven
344f5335aa6SGeert Uytterhoeven			port@0 {
345f5335aa6SGeert Uytterhoeven				reg = <0>;
346f5335aa6SGeert Uytterhoeven				adv7180_in: endpoint {
347f5335aa6SGeert Uytterhoeven					remote-endpoint = <&composite_con_in>;
348f5335aa6SGeert Uytterhoeven				};
349f5335aa6SGeert Uytterhoeven			};
350f5335aa6SGeert Uytterhoeven
351f5335aa6SGeert Uytterhoeven			port@3 {
352f5335aa6SGeert Uytterhoeven				reg = <3>;
353f5335aa6SGeert Uytterhoeven
354f5335aa6SGeert Uytterhoeven				/*
355f5335aa6SGeert Uytterhoeven				 * The VIN4 video input path is shared between
356f5335aa6SGeert Uytterhoeven				 * CVBS and HDMI inputs through SW[49-53]
357f5335aa6SGeert Uytterhoeven				 * switches.
358f5335aa6SGeert Uytterhoeven				 *
359f5335aa6SGeert Uytterhoeven				 * CVBS is the default selection, link it to
360f5335aa6SGeert Uytterhoeven				 * VIN4 here.
361f5335aa6SGeert Uytterhoeven				 */
362f5335aa6SGeert Uytterhoeven				adv7180_out: endpoint {
363f5335aa6SGeert Uytterhoeven					remote-endpoint = <&vin4_in>;
364f5335aa6SGeert Uytterhoeven				};
365f5335aa6SGeert Uytterhoeven			};
366f5335aa6SGeert Uytterhoeven		};
367f5335aa6SGeert Uytterhoeven
368f5335aa6SGeert Uytterhoeven	};
369f5335aa6SGeert Uytterhoeven
370f5335aa6SGeert Uytterhoeven	hdmi-encoder@39 {
371f5335aa6SGeert Uytterhoeven		compatible = "adi,adv7511w";
372f5335aa6SGeert Uytterhoeven		reg = <0x39>, <0x3f>, <0x3c>, <0x38>;
373f5335aa6SGeert Uytterhoeven		reg-names = "main", "edid", "cec", "packet";
374f5335aa6SGeert Uytterhoeven		interrupt-parent = <&gpio1>;
375f5335aa6SGeert Uytterhoeven		interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
376f5335aa6SGeert Uytterhoeven
377f5335aa6SGeert Uytterhoeven		adi,input-depth = <8>;
378f5335aa6SGeert Uytterhoeven		adi,input-colorspace = "rgb";
379f5335aa6SGeert Uytterhoeven		adi,input-clock = "1x";
380f5335aa6SGeert Uytterhoeven
381f5335aa6SGeert Uytterhoeven		ports {
382f5335aa6SGeert Uytterhoeven			#address-cells = <1>;
383f5335aa6SGeert Uytterhoeven			#size-cells = <0>;
384f5335aa6SGeert Uytterhoeven
385f5335aa6SGeert Uytterhoeven			port@0 {
386f5335aa6SGeert Uytterhoeven				reg = <0>;
387f5335aa6SGeert Uytterhoeven				adv7511_in: endpoint {
388f5335aa6SGeert Uytterhoeven					remote-endpoint = <&thc63lvd1024_out>;
389f5335aa6SGeert Uytterhoeven				};
390f5335aa6SGeert Uytterhoeven			};
391f5335aa6SGeert Uytterhoeven
392f5335aa6SGeert Uytterhoeven			port@1 {
393f5335aa6SGeert Uytterhoeven				reg = <1>;
394f5335aa6SGeert Uytterhoeven				adv7511_out: endpoint {
395f5335aa6SGeert Uytterhoeven					remote-endpoint = <&hdmi_con_out>;
396f5335aa6SGeert Uytterhoeven				};
397f5335aa6SGeert Uytterhoeven			};
398f5335aa6SGeert Uytterhoeven		};
399f5335aa6SGeert Uytterhoeven	};
400f5335aa6SGeert Uytterhoeven
401f5335aa6SGeert Uytterhoeven	hdmi-decoder@4c {
402f5335aa6SGeert Uytterhoeven		compatible = "adi,adv7612";
403f5335aa6SGeert Uytterhoeven		reg = <0x4c>;
404f5335aa6SGeert Uytterhoeven		default-input = <0>;
405f5335aa6SGeert Uytterhoeven
406f5335aa6SGeert Uytterhoeven		ports {
407f5335aa6SGeert Uytterhoeven			#address-cells = <1>;
408f5335aa6SGeert Uytterhoeven			#size-cells = <0>;
409f5335aa6SGeert Uytterhoeven
410f5335aa6SGeert Uytterhoeven			port@0 {
411f5335aa6SGeert Uytterhoeven				reg = <0>;
412f5335aa6SGeert Uytterhoeven
413f5335aa6SGeert Uytterhoeven				adv7612_in: endpoint {
414f5335aa6SGeert Uytterhoeven					remote-endpoint = <&hdmi_con_in>;
415f5335aa6SGeert Uytterhoeven				};
416f5335aa6SGeert Uytterhoeven			};
417f5335aa6SGeert Uytterhoeven
418f5335aa6SGeert Uytterhoeven			port@2 {
419f5335aa6SGeert Uytterhoeven				reg = <2>;
420f5335aa6SGeert Uytterhoeven
421f5335aa6SGeert Uytterhoeven				/*
422f5335aa6SGeert Uytterhoeven				 * The VIN4 video input path is shared between
423f5335aa6SGeert Uytterhoeven				 * CVBS and HDMI inputs through SW[49-53]
424f5335aa6SGeert Uytterhoeven				 * switches.
425f5335aa6SGeert Uytterhoeven				 *
426f5335aa6SGeert Uytterhoeven				 * CVBS is the default selection, leave HDMI
427f5335aa6SGeert Uytterhoeven				 * not connected here.
428f5335aa6SGeert Uytterhoeven				 */
429f5335aa6SGeert Uytterhoeven				adv7612_out: endpoint {
430f5335aa6SGeert Uytterhoeven					pclk-sample = <0>;
431f5335aa6SGeert Uytterhoeven					hsync-active = <0>;
432f5335aa6SGeert Uytterhoeven					vsync-active = <0>;
433f5335aa6SGeert Uytterhoeven				};
434f5335aa6SGeert Uytterhoeven			};
435f5335aa6SGeert Uytterhoeven		};
436f5335aa6SGeert Uytterhoeven	};
437f5335aa6SGeert Uytterhoeven
438f5335aa6SGeert Uytterhoeven	cs2000: clk-multiplier@4f {
439f5335aa6SGeert Uytterhoeven		#clock-cells = <0>;
440f5335aa6SGeert Uytterhoeven		compatible = "cirrus,cs2000-cp";
441f5335aa6SGeert Uytterhoeven		reg = <0x4f>;
442f5335aa6SGeert Uytterhoeven		clocks = <&audio_clkout>, <&x19_clk>; /* audio_clkout_1, x19 */
443f5335aa6SGeert Uytterhoeven		clock-names = "clk_in", "ref_clk";
444f5335aa6SGeert Uytterhoeven
445f5335aa6SGeert Uytterhoeven		assigned-clocks = <&cs2000>;
446f5335aa6SGeert Uytterhoeven		assigned-clock-rates = <24576000>; /* 1/1 divide */
447f5335aa6SGeert Uytterhoeven	};
448f5335aa6SGeert Uytterhoeven
449f5335aa6SGeert Uytterhoeven	eeprom@50 {
450f5335aa6SGeert Uytterhoeven		compatible = "rohm,br24t01", "atmel,24c01";
451f5335aa6SGeert Uytterhoeven		reg = <0x50>;
452f5335aa6SGeert Uytterhoeven		pagesize = <8>;
453f5335aa6SGeert Uytterhoeven	};
454f5335aa6SGeert Uytterhoeven};
455f5335aa6SGeert Uytterhoeven
456f5335aa6SGeert Uytterhoeven&i2c1 {
457f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&i2c1_pins>;
458f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
459f5335aa6SGeert Uytterhoeven	status = "okay";
460f5335aa6SGeert Uytterhoeven};
461f5335aa6SGeert Uytterhoeven
462f5335aa6SGeert Uytterhoeven&lvds0 {
463f5335aa6SGeert Uytterhoeven	status = "okay";
464f5335aa6SGeert Uytterhoeven
465f5335aa6SGeert Uytterhoeven	clocks = <&cpg CPG_MOD 727>,
466f5335aa6SGeert Uytterhoeven		 <&x12_clk>,
467f5335aa6SGeert Uytterhoeven		 <&extal_clk>;
468f5335aa6SGeert Uytterhoeven	clock-names = "fck", "dclkin.0", "extal";
469f5335aa6SGeert Uytterhoeven
470f5335aa6SGeert Uytterhoeven	ports {
471f5335aa6SGeert Uytterhoeven		port@1 {
472f5335aa6SGeert Uytterhoeven			lvds0_out: endpoint {
473f5335aa6SGeert Uytterhoeven				remote-endpoint = <&thc63lvd1024_in>;
474f5335aa6SGeert Uytterhoeven			};
475f5335aa6SGeert Uytterhoeven		};
476f5335aa6SGeert Uytterhoeven	};
477f5335aa6SGeert Uytterhoeven};
478f5335aa6SGeert Uytterhoeven
479f5335aa6SGeert Uytterhoeven&lvds1 {
480f5335aa6SGeert Uytterhoeven	/*
481f5335aa6SGeert Uytterhoeven	 * Even though the LVDS1 output is not connected, the encoder must be
482f5335aa6SGeert Uytterhoeven	 * enabled to supply a pixel clock to the DU for the DPAD output when
483f5335aa6SGeert Uytterhoeven	 * LVDS0 is in use.
484f5335aa6SGeert Uytterhoeven	 */
485f5335aa6SGeert Uytterhoeven	status = "okay";
486f5335aa6SGeert Uytterhoeven
487f5335aa6SGeert Uytterhoeven	clocks = <&cpg CPG_MOD 727>,
488f5335aa6SGeert Uytterhoeven		 <&x12_clk>,
489f5335aa6SGeert Uytterhoeven		 <&extal_clk>;
490f5335aa6SGeert Uytterhoeven	clock-names = "fck", "dclkin.0", "extal";
491f5335aa6SGeert Uytterhoeven};
492f5335aa6SGeert Uytterhoeven
493f5335aa6SGeert Uytterhoeven&ohci0 {
494f5335aa6SGeert Uytterhoeven	dr_mode = "host";
495f5335aa6SGeert Uytterhoeven	status = "okay";
496f5335aa6SGeert Uytterhoeven};
497f5335aa6SGeert Uytterhoeven
498f5335aa6SGeert Uytterhoeven&pfc {
499f5335aa6SGeert Uytterhoeven	avb0_pins: avb {
500f5335aa6SGeert Uytterhoeven		groups = "avb0_link", "avb0_mdio", "avb0_mii";
501f5335aa6SGeert Uytterhoeven		function = "avb0";
502f5335aa6SGeert Uytterhoeven	};
503f5335aa6SGeert Uytterhoeven
504f5335aa6SGeert Uytterhoeven	can0_pins: can0 {
505f5335aa6SGeert Uytterhoeven		groups = "can0_data_a";
506f5335aa6SGeert Uytterhoeven		function = "can0";
507f5335aa6SGeert Uytterhoeven	};
508f5335aa6SGeert Uytterhoeven
509f5335aa6SGeert Uytterhoeven	can1_pins: can1 {
510f5335aa6SGeert Uytterhoeven		groups = "can1_data_a";
511f5335aa6SGeert Uytterhoeven		function = "can1";
512f5335aa6SGeert Uytterhoeven	};
513f5335aa6SGeert Uytterhoeven
514f5335aa6SGeert Uytterhoeven	du_pins: du {
515f5335aa6SGeert Uytterhoeven		groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
516f5335aa6SGeert Uytterhoeven		function = "du";
517f5335aa6SGeert Uytterhoeven	};
518f5335aa6SGeert Uytterhoeven
519f5335aa6SGeert Uytterhoeven	i2c0_pins: i2c0 {
520f5335aa6SGeert Uytterhoeven		groups = "i2c0";
521f5335aa6SGeert Uytterhoeven		function = "i2c0";
522f5335aa6SGeert Uytterhoeven	};
523f5335aa6SGeert Uytterhoeven
524f5335aa6SGeert Uytterhoeven	i2c1_pins: i2c1 {
525f5335aa6SGeert Uytterhoeven		groups = "i2c1";
526f5335aa6SGeert Uytterhoeven		function = "i2c1";
527f5335aa6SGeert Uytterhoeven	};
528f5335aa6SGeert Uytterhoeven
529f5335aa6SGeert Uytterhoeven	keys_pins: keys {
530f5335aa6SGeert Uytterhoeven		pins = "GP_4_12", "GP_4_13", "GP_4_14", "GP_4_15";
531f5335aa6SGeert Uytterhoeven		bias-pull-up;
532f5335aa6SGeert Uytterhoeven	};
533f5335aa6SGeert Uytterhoeven
534f5335aa6SGeert Uytterhoeven	pwm0_pins: pwm0 {
535f5335aa6SGeert Uytterhoeven		groups = "pwm0_c";
536f5335aa6SGeert Uytterhoeven		function = "pwm0";
537f5335aa6SGeert Uytterhoeven	};
538f5335aa6SGeert Uytterhoeven
539f5335aa6SGeert Uytterhoeven	pwm1_pins: pwm1 {
540f5335aa6SGeert Uytterhoeven		groups = "pwm1_c";
541f5335aa6SGeert Uytterhoeven		function = "pwm1";
542f5335aa6SGeert Uytterhoeven	};
543f5335aa6SGeert Uytterhoeven
544f5335aa6SGeert Uytterhoeven	scif2_pins: scif2 {
545f5335aa6SGeert Uytterhoeven		groups = "scif2_data";
546f5335aa6SGeert Uytterhoeven		function = "scif2";
547f5335aa6SGeert Uytterhoeven	};
548f5335aa6SGeert Uytterhoeven
549f5335aa6SGeert Uytterhoeven	sdhi2_pins: sd2 {
550f5335aa6SGeert Uytterhoeven		groups = "mmc_data8", "mmc_ctrl";
551f5335aa6SGeert Uytterhoeven		function = "mmc";
552f5335aa6SGeert Uytterhoeven		power-source = <1800>;
553f5335aa6SGeert Uytterhoeven	};
554f5335aa6SGeert Uytterhoeven
555f5335aa6SGeert Uytterhoeven	sdhi2_pins_uhs: sd2_uhs {
556f5335aa6SGeert Uytterhoeven		groups = "mmc_data8", "mmc_ctrl";
557f5335aa6SGeert Uytterhoeven		function = "mmc";
558f5335aa6SGeert Uytterhoeven		power-source = <1800>;
559f5335aa6SGeert Uytterhoeven	};
560f5335aa6SGeert Uytterhoeven
561f5335aa6SGeert Uytterhoeven	sound_pins: sound {
562f5335aa6SGeert Uytterhoeven		groups = "ssi34_ctrl", "ssi3_data", "ssi4_data_a";
563f5335aa6SGeert Uytterhoeven		function = "ssi";
564f5335aa6SGeert Uytterhoeven	};
565f5335aa6SGeert Uytterhoeven
566f5335aa6SGeert Uytterhoeven	sound_clk_pins: sound-clk {
567f5335aa6SGeert Uytterhoeven		groups = "audio_clk_a", "audio_clk_b",
568f5335aa6SGeert Uytterhoeven			 "audio_clkout", "audio_clkout1";
569f5335aa6SGeert Uytterhoeven		function = "audio_clk";
570f5335aa6SGeert Uytterhoeven	};
571f5335aa6SGeert Uytterhoeven
572f5335aa6SGeert Uytterhoeven	usb0_pins: usb0 {
573f5335aa6SGeert Uytterhoeven		groups = "usb0";
574f5335aa6SGeert Uytterhoeven		function = "usb0";
575f5335aa6SGeert Uytterhoeven	};
576f5335aa6SGeert Uytterhoeven
577f5335aa6SGeert Uytterhoeven	vin4_pins_cvbs: vin4 {
578f5335aa6SGeert Uytterhoeven		groups = "vin4_data8", "vin4_sync", "vin4_clk";
579f5335aa6SGeert Uytterhoeven		function = "vin4";
580f5335aa6SGeert Uytterhoeven	};
581f5335aa6SGeert Uytterhoeven};
582f5335aa6SGeert Uytterhoeven
583f5335aa6SGeert Uytterhoeven&pwm0 {
584f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&pwm0_pins>;
585f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
586f5335aa6SGeert Uytterhoeven
587f5335aa6SGeert Uytterhoeven	status = "okay";
588f5335aa6SGeert Uytterhoeven};
589f5335aa6SGeert Uytterhoeven
590f5335aa6SGeert Uytterhoeven&pwm1 {
591f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&pwm1_pins>;
592f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
593f5335aa6SGeert Uytterhoeven
594f5335aa6SGeert Uytterhoeven	status = "okay";
595f5335aa6SGeert Uytterhoeven};
596f5335aa6SGeert Uytterhoeven
597f5335aa6SGeert Uytterhoeven&rcar_sound {
598f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&sound_pins>, <&sound_clk_pins>;
599f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
600f5335aa6SGeert Uytterhoeven
601f5335aa6SGeert Uytterhoeven	/* Single DAI */
602f5335aa6SGeert Uytterhoeven	#sound-dai-cells = <0>;
603f5335aa6SGeert Uytterhoeven
604f5335aa6SGeert Uytterhoeven	/* audio_clkout0/1 */
605f5335aa6SGeert Uytterhoeven	#clock-cells = <1>;
606f5335aa6SGeert Uytterhoeven	clock-frequency = <12288000 11289600>;
607f5335aa6SGeert Uytterhoeven
608f5335aa6SGeert Uytterhoeven	status = "okay";
609f5335aa6SGeert Uytterhoeven
610f5335aa6SGeert Uytterhoeven	clocks = <&cpg CPG_MOD 1005>,
611f5335aa6SGeert Uytterhoeven		 <&cpg CPG_MOD 1011>, <&cpg CPG_MOD 1012>,
612f5335aa6SGeert Uytterhoeven		 <&cpg CPG_MOD 1025>, <&cpg CPG_MOD 1026>,
613f5335aa6SGeert Uytterhoeven		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
614f5335aa6SGeert Uytterhoeven		 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
615f5335aa6SGeert Uytterhoeven		 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
616f5335aa6SGeert Uytterhoeven		 <&cs2000>, <&audio_clk_b>,
617f5335aa6SGeert Uytterhoeven		 <&cpg CPG_CORE R8A77995_CLK_ZA2>;
618f5335aa6SGeert Uytterhoeven
619f5335aa6SGeert Uytterhoeven	ports {
620f5335aa6SGeert Uytterhoeven		rsnd_port0: port {
621f5335aa6SGeert Uytterhoeven			rsnd_for_ak4613: endpoint {
622f5335aa6SGeert Uytterhoeven				remote-endpoint = <&ak4613_endpoint>;
623f5335aa6SGeert Uytterhoeven				dai-format = "left_j";
624f5335aa6SGeert Uytterhoeven				bitclock-master = <&rsnd_for_ak4613>;
625f5335aa6SGeert Uytterhoeven				frame-master = <&rsnd_for_ak4613>;
626f5335aa6SGeert Uytterhoeven				playback = <&ssi3>, <&src5>, <&dvc0>;
627f5335aa6SGeert Uytterhoeven				capture  = <&ssi4>, <&src6>, <&dvc1>;
628f5335aa6SGeert Uytterhoeven			};
629f5335aa6SGeert Uytterhoeven		};
630f5335aa6SGeert Uytterhoeven	};
631f5335aa6SGeert Uytterhoeven};
632f5335aa6SGeert Uytterhoeven
633f5335aa6SGeert Uytterhoeven&rwdt {
634f5335aa6SGeert Uytterhoeven	timeout-sec = <60>;
635f5335aa6SGeert Uytterhoeven	status = "okay";
636f5335aa6SGeert Uytterhoeven};
637f5335aa6SGeert Uytterhoeven
638f5335aa6SGeert Uytterhoeven&scif2 {
639f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&scif2_pins>;
640f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
641f5335aa6SGeert Uytterhoeven
642f5335aa6SGeert Uytterhoeven	status = "okay";
643f5335aa6SGeert Uytterhoeven};
644f5335aa6SGeert Uytterhoeven
645f5335aa6SGeert Uytterhoeven&sdhi2 {
646f5335aa6SGeert Uytterhoeven	/* used for on-board eMMC */
647f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&sdhi2_pins>;
648f5335aa6SGeert Uytterhoeven	pinctrl-1 = <&sdhi2_pins_uhs>;
649f5335aa6SGeert Uytterhoeven	pinctrl-names = "default", "state_uhs";
650f5335aa6SGeert Uytterhoeven
651f5335aa6SGeert Uytterhoeven	vmmc-supply = <&reg_3p3v>;
652f5335aa6SGeert Uytterhoeven	vqmmc-supply = <&reg_1p8v>;
653f5335aa6SGeert Uytterhoeven	bus-width = <8>;
654f5335aa6SGeert Uytterhoeven	mmc-hs200-1_8v;
655f5335aa6SGeert Uytterhoeven	no-sd;
656f5335aa6SGeert Uytterhoeven	no-sdio;
657f5335aa6SGeert Uytterhoeven	non-removable;
658f5335aa6SGeert Uytterhoeven	status = "okay";
659f5335aa6SGeert Uytterhoeven};
660f5335aa6SGeert Uytterhoeven
661f5335aa6SGeert Uytterhoeven&ssi4 {
662f5335aa6SGeert Uytterhoeven	shared-pin;
663f5335aa6SGeert Uytterhoeven};
664f5335aa6SGeert Uytterhoeven
665f5335aa6SGeert Uytterhoeven&usb2_phy0 {
666f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&usb0_pins>;
667f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
668f5335aa6SGeert Uytterhoeven
669f5335aa6SGeert Uytterhoeven	renesas,no-otg-pins;
670f5335aa6SGeert Uytterhoeven	status = "okay";
671f5335aa6SGeert Uytterhoeven};
672f5335aa6SGeert Uytterhoeven
673f5335aa6SGeert Uytterhoeven&vin4 {
674f5335aa6SGeert Uytterhoeven	pinctrl-0 = <&vin4_pins_cvbs>;
675f5335aa6SGeert Uytterhoeven	pinctrl-names = "default";
676f5335aa6SGeert Uytterhoeven
677f5335aa6SGeert Uytterhoeven	status = "okay";
678f5335aa6SGeert Uytterhoeven
679f5335aa6SGeert Uytterhoeven	ports {
680f5335aa6SGeert Uytterhoeven		port {
681f5335aa6SGeert Uytterhoeven			vin4_in: endpoint {
682f5335aa6SGeert Uytterhoeven				remote-endpoint = <&adv7180_out>;
683f5335aa6SGeert Uytterhoeven			};
684f5335aa6SGeert Uytterhoeven		};
685f5335aa6SGeert Uytterhoeven	};
686f5335aa6SGeert Uytterhoeven};
687