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	d1_8v: regulator-1v8 {
34		compatible = "regulator-fixed";
35		regulator-name = "D1.8V";
36		regulator-min-microvolt = <1800000>;
37		regulator-max-microvolt = <1800000>;
38		regulator-boot-on;
39		regulator-always-on;
40	};
41
42	d3_3v: regulator-3v3 {
43		compatible = "regulator-fixed";
44		regulator-name = "D3.3V";
45		regulator-min-microvolt = <3300000>;
46		regulator-max-microvolt = <3300000>;
47		regulator-boot-on;
48		regulator-always-on;
49	};
50
51	vga-encoder {
52		compatible = "adi,adv7123";
53
54		ports {
55			#address-cells = <1>;
56			#size-cells = <0>;
57
58			port@0 {
59				reg = <0>;
60				adv7123_in: endpoint {
61					remote-endpoint = <&du_out_rgb1>;
62				};
63			};
64			port@1 {
65				reg = <1>;
66				adv7123_out: endpoint {
67					remote-endpoint = <&vga_in>;
68				};
69			};
70		};
71	};
72
73	hdmi-out {
74		compatible = "hdmi-connector";
75		type = "a";
76
77		port {
78			hdmi_con: endpoint {
79				remote-endpoint = <&adv7511_out>;
80			};
81		};
82	};
83
84	vga {
85		compatible = "vga-connector";
86
87		port {
88			vga_in: endpoint {
89				remote-endpoint = <&adv7123_out>;
90			};
91		};
92	};
93
94	x1_clk: x1 {
95		compatible = "fixed-clock";
96		#clock-cells = <0>;
97		clock-frequency = <74250000>;
98	};
99
100	x2_clk: x2 {
101		compatible = "fixed-clock";
102		#clock-cells = <0>;
103		clock-frequency = <65000000>;
104	};
105
106	keyboard {
107		compatible = "gpio-keys";
108
109		pinctrl-0 = <&keyboard_pins>;
110		pinctrl-names = "default";
111
112		key-1 {
113			linux,code = <KEY_1>;
114			label = "SW2-1";
115			wakeup-source;
116			debounce-interval = <20>;
117			gpios = <&gpio3 10 GPIO_ACTIVE_LOW>;
118		};
119		key-2 {
120			linux,code = <KEY_2>;
121			label = "SW2-2";
122			wakeup-source;
123			debounce-interval = <20>;
124			gpios = <&gpio3 11 GPIO_ACTIVE_LOW>;
125		};
126		key-3 {
127			linux,code = <KEY_3>;
128			label = "SW2-3";
129			wakeup-source;
130			debounce-interval = <20>;
131			gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
132		};
133		key-4 {
134			linux,code = <KEY_4>;
135			label = "SW2-4";
136			wakeup-source;
137			debounce-interval = <20>;
138			gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
139		};
140		key-a {
141			linux,code = <KEY_A>;
142			label = "SW24";
143			wakeup-source;
144			debounce-interval = <20>;
145			gpios = <&gpio3 20 GPIO_ACTIVE_LOW>;
146		};
147		key-b {
148			linux,code = <KEY_B>;
149			label = "SW25";
150			wakeup-source;
151			debounce-interval = <20>;
152			gpios = <&gpio11 2 GPIO_ACTIVE_LOW>;
153		};
154	};
155
156	leds {
157		compatible = "gpio-leds";
158
159		led17 {
160			gpios = <&gpio10 10 GPIO_ACTIVE_HIGH>;
161		};
162		led18 {
163			gpios = <&gpio10 11 GPIO_ACTIVE_HIGH>;
164		};
165		led19 {
166			gpios = <&gpio10 12 GPIO_ACTIVE_HIGH>;
167		};
168		led20 {
169			gpios = <&gpio10 23 GPIO_ACTIVE_HIGH>;
170		};
171	};
172
173	vcc_sdhi0: regulator-vcc-sdhi0 {
174		compatible = "regulator-fixed";
175
176		regulator-name = "SDHI0 Vcc";
177		regulator-min-microvolt = <3300000>;
178		regulator-max-microvolt = <3300000>;
179
180		gpio = <&gpio11 12 GPIO_ACTIVE_HIGH>;
181		enable-active-high;
182	};
183};
184
185&extal_clk {
186	clock-frequency = <20000000>;
187};
188
189&can_clk {
190	clock-frequency = <48000000>;
191};
192
193&lbsc {
194	flash@0 {
195		compatible = "cfi-flash";
196		reg = <0x00000000 0x04000000>;
197		pinctrl-0 = <&flash_pins>;
198		pinctrl-names = "default";
199		bank-width = <2>;
200
201		partitions {
202			compatible = "fixed-partitions";
203			#address-cells = <1>;
204			#size-cells = <1>;
205
206			partition@0 {
207				label = "uboot";
208				reg = <0x00000000 0x00040000>;
209				read-only;
210			};
211			partition@40000 {
212				label = "uboot-env";
213				reg = <0x00040000 0x00040000>;
214				read-only;
215			};
216			partition@80000 {
217				label = "flash";
218				reg = <0x00080000 0x03f80000>;
219			};
220		};
221	};
222
223	ethernet@18000000 {
224		compatible = "smsc,lan89218", "smsc,lan9115";
225		reg = <0x18000000 0x100>;
226		phy-mode = "mii";
227		interrupt-parent = <&irqc>;
228		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
229		smsc,irq-push-pull;
230		reg-io-width = <4>;
231		vddvario-supply = <&d3_3v>;
232		vdd33a-supply = <&d3_3v>;
233
234		pinctrl-0 = <&lan89218_pins>;
235		pinctrl-names = "default";
236	};
237};
238
239&pfc {
240	scif0_pins: scif0 {
241		groups = "scif0_data";
242		function = "scif0";
243	};
244
245	scif3_pins: scif3 {
246		groups = "scif3_data";
247		function = "scif3";
248	};
249
250	lan89218_pins: lan89218 {
251		intc {
252			groups = "intc_irq0";
253			function = "intc";
254		};
255		lbsc {
256			groups = "lbsc_ex_cs0";
257			function = "lbsc";
258		};
259	};
260
261	can0_pins: can0 {
262		groups = "can0_data", "can_clk";
263		function = "can0";
264	};
265
266	sdhi0_pins: sdhi0 {
267		groups = "sdhi0_data4", "sdhi0_ctrl";
268		function = "sdhi0";
269	};
270
271	du0_pins: du0 {
272		groups = "du0_rgb888", "du0_sync", "du0_disp";
273		function = "du0";
274	};
275
276	du1_pins: du1 {
277		groups = "du1_rgb666", "du1_sync", "du1_disp";
278		function = "du1";
279	};
280
281	flash_pins: flash {
282		groups = "lbsc_cs0";
283		function = "lbsc";
284	};
285
286	keyboard_pins: keyboard {
287		pins = "GP_3_10", "GP_3_11", "GP_3_12", "GP_3_15", "GP_11_2";
288		bias-pull-up;
289	};
290
291	pmic_irq_pins: pmicirq {
292		groups = "intc_irq2";
293		function = "intc";
294	};
295};
296
297&rwdt {
298	timeout-sec = <60>;
299	status = "okay";
300};
301
302&scif0 {
303	pinctrl-0 = <&scif0_pins>;
304	pinctrl-names = "default";
305
306	status = "okay";
307};
308
309&scif3 {
310	pinctrl-0 = <&scif3_pins>;
311	pinctrl-names = "default";
312
313	status = "okay";
314};
315
316&can0 {
317	pinctrl-0 = <&can0_pins>;
318	pinctrl-names = "default";
319
320	status = "okay";
321};
322
323&sdhi0 {
324	pinctrl-0 = <&sdhi0_pins>;
325	pinctrl-names = "default";
326
327	vmmc-supply = <&vcc_sdhi0>;
328	cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
329	status = "okay";
330};
331
332&i2c1 {
333	status = "okay";
334	clock-frequency = <400000>;
335
336	hdmi@39 {
337		compatible = "adi,adv7511w";
338		reg = <0x39>;
339		interrupt-parent = <&irqc>;
340		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
341
342		avdd-supply = <&d1_8v>;
343		dvdd-supply = <&d1_8v>;
344		pvdd-supply = <&d1_8v>;
345		dvdd-3v-supply = <&d3_3v>;
346		bgvdd-supply = <&d1_8v>;
347
348		adi,input-depth = <8>;
349		adi,input-colorspace = "rgb";
350		adi,input-clock = "1x";
351
352		ports {
353			#address-cells = <1>;
354			#size-cells = <0>;
355
356			port@0 {
357				reg = <0>;
358				adv7511_in: endpoint {
359					remote-endpoint = <&du_out_rgb0>;
360				};
361			};
362
363			port@1 {
364				reg = <1>;
365				adv7511_out: endpoint {
366					remote-endpoint = <&hdmi_con>;
367				};
368			};
369		};
370	};
371};
372
373&iic3 {
374	status = "okay";
375
376	pmic@58 {
377		compatible = "dlg,da9063";
378		reg = <0x58>;
379		pinctrl-names = "default";
380		pinctrl-0 = <&pmic_irq_pins>;
381		interrupt-parent = <&irqc>;
382		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
383		interrupt-controller;
384		#interrupt-cells = <2>;
385
386		rtc {
387			compatible = "dlg,da9063-rtc";
388		};
389
390		watchdog {
391			compatible = "dlg,da9063-watchdog";
392		};
393	};
394};
395
396&du {
397	pinctrl-0 = <&du0_pins>, <&du1_pins>;
398	pinctrl-names = "default";
399
400	clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>, <&x1_clk>, <&x2_clk>;
401	clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
402	status = "okay";
403
404	ports {
405		port@0 {
406			endpoint {
407				remote-endpoint = <&adv7511_in>;
408			};
409		};
410		port@1 {
411			endpoint {
412				remote-endpoint = <&adv7123_in>;
413			};
414		};
415	};
416};
417