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		pinctrl-0 = <&keyboard_pins>;
116		pinctrl-names = "default";
117
118		key-1 {
119			linux,code = <KEY_1>;
120			label = "SW2-1";
121			wakeup-source;
122			debounce-interval = <20>;
123			gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
124		};
125		key-2 {
126			linux,code = <KEY_2>;
127			label = "SW2-2";
128			wakeup-source;
129			debounce-interval = <20>;
130			gpios = <&gpio3 11 GPIO_ACTIVE_LOW>;
131		};
132		key-3 {
133			linux,code = <KEY_3>;
134			label = "SW2-3";
135			wakeup-source;
136			debounce-interval = <20>;
137			gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
138		};
139		key-4 {
140			linux,code = <KEY_4>;
141			label = "SW2-4";
142			wakeup-source;
143			debounce-interval = <20>;
144			gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
145		};
146		key-a {
147			linux,code = <KEY_A>;
148			label = "SW24";
149			wakeup-source;
150			debounce-interval = <20>;
151			gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
152		};
153		key-b {
154			linux,code = <KEY_B>;
155			label = "SW25";
156			wakeup-source;
157			debounce-interval = <20>;
158			gpios = <&gpio11 2 GPIO_ACTIVE_LOW>;
159		};
160	};
161
162	leds {
163		compatible = "gpio-leds";
164
165		led17 {
166			gpios = <&gpio10 10 GPIO_ACTIVE_HIGH>;
167		};
168		led18 {
169			gpios = <&gpio10 11 GPIO_ACTIVE_HIGH>;
170		};
171		led19 {
172			gpios = <&gpio10 12 GPIO_ACTIVE_HIGH>;
173		};
174		led20 {
175			gpios = <&gpio10 23 GPIO_ACTIVE_HIGH>;
176		};
177	};
178
179	vcc_sdhi0: regulator-vcc-sdhi0 {
180		compatible = "regulator-fixed";
181
182		regulator-name = "SDHI0 Vcc";
183		regulator-min-microvolt = <3300000>;
184		regulator-max-microvolt = <3300000>;
185
186		gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>;
187		enable-active-high;
188	};
189};
190
191&extal_clk {
192	clock-frequency = <20000000>;
193};
194
195&can_clk {
196	clock-frequency = <48000000>;
197};
198
199&pfc {
200	scif0_pins: scif0 {
201		groups = "scif0_data";
202		function = "scif0";
203	};
204
205	scif3_pins: scif3 {
206		groups = "scif3_data";
207		function = "scif3";
208	};
209
210	lan89218_pins: lan89218 {
211		intc {
212			groups = "intc_irq0";
213			function = "intc";
214		};
215		lbsc {
216			groups = "lbsc_ex_cs0";
217			function = "lbsc";
218		};
219	};
220
221	can0_pins: can0 {
222		groups = "can0_data", "can_clk";
223		function = "can0";
224	};
225
226	sdhi0_pins: sdhi0 {
227		groups = "sdhi0_data4", "sdhi0_ctrl";
228		function = "sdhi0";
229	};
230
231	du0_pins: du0 {
232		groups = "du0_rgb888", "du0_sync", "du0_disp";
233		function = "du0";
234	};
235
236	du1_pins: du1 {
237		groups = "du1_rgb666", "du1_sync", "du1_disp";
238		function = "du1";
239	};
240
241	keyboard_pins: keyboard {
242		pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_2";
243		bias-pull-up;
244	};
245
246	pmic_irq_pins: pmicirq {
247		groups = "intc_irq2";
248		function = "intc";
249	};
250};
251
252&rwdt {
253	timeout-sec = <60>;
254	status = "okay";
255};
256
257&scif0 {
258	pinctrl-0 = <&scif0_pins>;
259	pinctrl-names = "default";
260
261	status = "okay";
262};
263
264&scif3 {
265	pinctrl-0 = <&scif3_pins>;
266	pinctrl-names = "default";
267
268	status = "okay";
269};
270
271&can0 {
272	pinctrl-0 = <&can0_pins>;
273	pinctrl-names = "default";
274
275	status = "okay";
276};
277
278&sdhi0 {
279	pinctrl-0 = <&sdhi0_pins>;
280	pinctrl-names = "default";
281
282	vmmc-supply = <&vcc_sdhi0>;
283	cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
284	status = "okay";
285};
286
287&i2c1 {
288	status = "okay";
289	clock-frequency = <400000>;
290
291	hdmi@39 {
292		compatible = "adi,adv7511w";
293		reg = <0x39>;
294		interrupt-parent = <&irqc>;
295		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
296
297		adi,input-depth = <8>;
298		adi,input-colorspace = "rgb";
299		adi,input-clock = "1x";
300
301		ports {
302			#address-cells = <1>;
303			#size-cells = <0>;
304
305			port@0 {
306				reg = <0>;
307				adv7511_in: endpoint {
308					remote-endpoint = <&du_out_rgb0>;
309				};
310			};
311
312			port@1 {
313				reg = <1>;
314				adv7511_out: endpoint {
315					remote-endpoint = <&hdmi_con>;
316				};
317			};
318		};
319	};
320};
321
322&iic3 {
323	status = "okay";
324
325	pmic@58 {
326		compatible = "dlg,da9063";
327		reg = <0x58>;
328		pinctrl-names = "default";
329		pinctrl-0 = <&pmic_irq_pins>;
330		interrupt-parent = <&irqc>;
331		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
332		interrupt-controller;
333		#interrupt-cells = <2>;
334
335		rtc {
336			compatible = "dlg,da9063-rtc";
337		};
338
339		watchdog {
340			compatible = "dlg,da9063-watchdog";
341		};
342	};
343};
344
345&du {
346	pinctrl-0 = <&du0_pins>, <&du1_pins>;
347	pinctrl-names = "default";
348
349	clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&x1_clk>, <&x2_clk>;
350	clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
351	status = "okay";
352
353	ports {
354		port@0 {
355			endpoint {
356				remote-endpoint = <&adv7511_in>;
357			};
358		};
359		port@1 {
360			endpoint {
361				remote-endpoint = <&adv7123_in>;
362			};
363		};
364	};
365};
366