1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the Blanche board
4 *
5 * Copyright (C) 2014 Renesas Electronics Corporation
6 * Copyright (C) 2016 Cogent  Embedded, Inc.
7 */
8
9/dts-v1/;
10#include "r8a7792.dtsi"
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/input/input.h>
13
14/ {
15	model = "Blanche";
16	compatible = "renesas,blanche", "renesas,r8a7792";
17
18	aliases {
19		serial0 = &scif0;
20		serial1 = &scif3;
21	};
22
23	chosen {
24		bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
25		stdout-path = "serial0:115200n8";
26	};
27
28	memory@40000000 {
29		device_type = "memory";
30		reg = <0 0x40000000 0 0x40000000>;
31	};
32
33	d3_3v: regulator-3v3 {
34		compatible = "regulator-fixed";
35		regulator-name = "D3.3V";
36		regulator-min-microvolt = <3300000>;
37		regulator-max-microvolt = <3300000>;
38		regulator-boot-on;
39		regulator-always-on;
40	};
41
42	ethernet@18000000 {
43		compatible = "smsc,lan89218", "smsc,lan9115";
44		reg = <0 0x18000000 0 0x100>;
45		phy-mode = "mii";
46		interrupt-parent = <&irqc>;
47		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
48		smsc,irq-push-pull;
49		reg-io-width = <4>;
50		vddvario-supply = <&d3_3v>;
51		vdd33a-supply = <&d3_3v>;
52
53		pinctrl-0 = <&lan89218_pins>;
54		pinctrl-names = "default";
55	};
56
57	vga-encoder {
58		compatible = "adi,adv7123";
59
60		ports {
61			#address-cells = <1>;
62			#size-cells = <0>;
63
64			port@0 {
65				reg = <0>;
66				adv7123_in: endpoint {
67					remote-endpoint = <&du_out_rgb1>;
68				};
69			};
70			port@1 {
71				reg = <1>;
72				adv7123_out: endpoint {
73					remote-endpoint = <&vga_in>;
74				};
75			};
76		};
77	};
78
79	hdmi-out {
80		compatible = "hdmi-connector";
81		type = "a";
82
83		port {
84			hdmi_con: endpoint {
85				remote-endpoint = <&adv7511_out>;
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	x1_clk: x1 {
101		compatible = "fixed-clock";
102		#clock-cells = <0>;
103		clock-frequency = <74250000>;
104	};
105
106	x2_clk: x2 {
107		compatible = "fixed-clock";
108		#clock-cells = <0>;
109		clock-frequency = <65000000>;
110	};
111
112	keyboard {
113		compatible = "gpio-keys";
114
115		key-1 {
116			linux,code = <KEY_1>;
117			label = "SW2-1";
118			wakeup-source;
119			debounce-interval = <20>;
120			gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
121		};
122		key-2 {
123			linux,code = <KEY_2>;
124			label = "SW2-2";
125			wakeup-source;
126			debounce-interval = <20>;
127			gpios = <&gpio3 11 GPIO_ACTIVE_LOW>;
128		};
129		key-3 {
130			linux,code = <KEY_3>;
131			label = "SW2-3";
132			wakeup-source;
133			debounce-interval = <20>;
134			gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
135		};
136		key-4 {
137			linux,code = <KEY_4>;
138			label = "SW2-4";
139			wakeup-source;
140			debounce-interval = <20>;
141			gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
142		};
143		key-a {
144			linux,code = <KEY_A>;
145			label = "SW24";
146			wakeup-source;
147			debounce-interval = <20>;
148			gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
149		};
150		key-b {
151			linux,code = <KEY_B>;
152			label = "SW25";
153			wakeup-source;
154			debounce-interval = <20>;
155			gpios = <&gpio11 2 GPIO_ACTIVE_LOW>;
156		};
157	};
158
159	leds {
160		compatible = "gpio-leds";
161
162		led17 {
163			gpios = <&gpio10 10 GPIO_ACTIVE_HIGH>;
164		};
165		led18 {
166			gpios = <&gpio10 11 GPIO_ACTIVE_HIGH>;
167		};
168		led19 {
169			gpios = <&gpio10 12 GPIO_ACTIVE_HIGH>;
170		};
171		led20 {
172			gpios = <&gpio10 23 GPIO_ACTIVE_HIGH>;
173		};
174	};
175
176	vcc_sdhi0: regulator-vcc-sdhi0 {
177		compatible = "regulator-fixed";
178
179		regulator-name = "SDHI0 Vcc";
180		regulator-min-microvolt = <3300000>;
181		regulator-max-microvolt = <3300000>;
182
183		gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>;
184		enable-active-high;
185	};
186};
187
188&extal_clk {
189	clock-frequency = <20000000>;
190};
191
192&can_clk {
193	clock-frequency = <48000000>;
194};
195
196&pfc {
197	scif0_pins: scif0 {
198		groups = "scif0_data";
199		function = "scif0";
200	};
201
202	scif3_pins: scif3 {
203		groups = "scif3_data";
204		function = "scif3";
205	};
206
207	lan89218_pins: lan89218 {
208		intc {
209			groups = "intc_irq0";
210			function = "intc";
211		};
212		lbsc {
213			groups = "lbsc_ex_cs0";
214			function = "lbsc";
215		};
216	};
217
218	can0_pins: can0 {
219		groups = "can0_data", "can_clk";
220		function = "can0";
221	};
222
223	sdhi0_pins: sdhi0 {
224		groups = "sdhi0_data4", "sdhi0_ctrl";
225		function = "sdhi0";
226	};
227
228	du0_pins: du0 {
229		groups = "du0_rgb888", "du0_sync", "du0_disp";
230		function = "du0";
231	};
232
233	du1_pins: du1 {
234		groups = "du1_rgb666", "du1_sync", "du1_disp";
235		function = "du1";
236	};
237
238	pmic_irq_pins: pmicirq {
239		groups = "intc_irq2";
240		function = "intc";
241	};
242};
243
244&rwdt {
245	timeout-sec = <60>;
246	status = "okay";
247};
248
249&scif0 {
250	pinctrl-0 = <&scif0_pins>;
251	pinctrl-names = "default";
252
253	status = "okay";
254};
255
256&scif3 {
257	pinctrl-0 = <&scif3_pins>;
258	pinctrl-names = "default";
259
260	status = "okay";
261};
262
263&can0 {
264	pinctrl-0 = <&can0_pins>;
265	pinctrl-names = "default";
266
267	status = "okay";
268};
269
270&sdhi0 {
271	pinctrl-0 = <&sdhi0_pins>;
272	pinctrl-names = "default";
273
274	vmmc-supply = <&vcc_sdhi0>;
275	cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
276	status = "okay";
277};
278
279&i2c1 {
280	status = "okay";
281	clock-frequency = <400000>;
282
283	hdmi@39 {
284		compatible = "adi,adv7511w";
285		reg = <0x39>;
286		interrupt-parent = <&irqc>;
287		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
288
289		adi,input-depth = <8>;
290		adi,input-colorspace = "rgb";
291		adi,input-clock = "1x";
292		adi,input-style = <1>;
293		adi,input-justification = "evenly";
294
295		ports {
296			#address-cells = <1>;
297			#size-cells = <0>;
298
299			port@0 {
300				reg = <0>;
301				adv7511_in: endpoint {
302					remote-endpoint = <&du_out_rgb0>;
303				};
304			};
305
306			port@1 {
307				reg = <1>;
308				adv7511_out: endpoint {
309					remote-endpoint = <&hdmi_con>;
310				};
311			};
312		};
313	};
314};
315
316&iic3 {
317	status = "okay";
318
319	pmic@58 {
320		compatible = "dlg,da9063";
321		reg = <0x58>;
322		pinctrl-names = "default";
323		pinctrl-0 = <&pmic_irq_pins>;
324		interrupt-parent = <&irqc>;
325		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
326		interrupt-controller;
327
328		rtc {
329			compatible = "dlg,da9063-rtc";
330		};
331
332		wdt {
333			compatible = "dlg,da9063-watchdog";
334		};
335	};
336};
337
338&du {
339	pinctrl-0 = <&du0_pins &du1_pins>;
340	pinctrl-names = "default";
341
342	clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&x1_clk>, <&x2_clk>;
343	clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
344	status = "okay";
345
346	ports {
347		port@0 {
348			endpoint {
349				remote-endpoint = <&adv7511_in>;
350			};
351		};
352		port@1 {
353			endpoint {
354				remote-endpoint = <&adv7123_in>;
355			};
356		};
357	};
358};
359