xref: /freebsd-src/sys/contrib/device-tree/src/mips/ingenic/ci20.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot/dts-v1/;
3c66ec88fSEmmanuel Vadot
4c66ec88fSEmmanuel Vadot#include "jz4780.dtsi"
5c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/ingenic,tcu.h>
6c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
7c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h>
8c66ec88fSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
9c66ec88fSEmmanuel Vadot#include <dt-bindings/regulator/active-semi,8865-regulator.h>
10c66ec88fSEmmanuel Vadot
11c66ec88fSEmmanuel Vadot/ {
12c66ec88fSEmmanuel Vadot	compatible = "img,ci20", "ingenic,jz4780";
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot	aliases {
15c66ec88fSEmmanuel Vadot		serial0 = &uart0;
16c66ec88fSEmmanuel Vadot		serial1 = &uart1;
17c66ec88fSEmmanuel Vadot		serial3 = &uart3;
18c66ec88fSEmmanuel Vadot		serial4 = &uart4;
19c66ec88fSEmmanuel Vadot	};
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot	chosen {
22c66ec88fSEmmanuel Vadot		stdout-path = &uart4;
23c66ec88fSEmmanuel Vadot	};
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot	memory {
26c66ec88fSEmmanuel Vadot		device_type = "memory";
27c66ec88fSEmmanuel Vadot		reg = <0x0 0x10000000
28c66ec88fSEmmanuel Vadot		       0x30000000 0x30000000>;
29c66ec88fSEmmanuel Vadot	};
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot	gpio-keys {
32c66ec88fSEmmanuel Vadot		compatible = "gpio-keys";
33c66ec88fSEmmanuel Vadot
34b97ee269SEmmanuel Vadot		switch {
35c66ec88fSEmmanuel Vadot			label = "ci20:sw1";
36c66ec88fSEmmanuel Vadot			linux,code = <KEY_F13>;
37c66ec88fSEmmanuel Vadot			gpios = <&gpd 17 GPIO_ACTIVE_HIGH>;
38c66ec88fSEmmanuel Vadot			wakeup-source;
39c66ec88fSEmmanuel Vadot		};
40c66ec88fSEmmanuel Vadot	};
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot	leds {
43c66ec88fSEmmanuel Vadot		compatible = "gpio-leds";
44c66ec88fSEmmanuel Vadot
45cb7aa33aSEmmanuel Vadot		led-0 {
46c66ec88fSEmmanuel Vadot			label = "ci20:red:led0";
47c66ec88fSEmmanuel Vadot			gpios = <&gpc 3 GPIO_ACTIVE_HIGH>;
48c66ec88fSEmmanuel Vadot			linux,default-trigger = "none";
49c66ec88fSEmmanuel Vadot		};
50c66ec88fSEmmanuel Vadot
51cb7aa33aSEmmanuel Vadot		led-1 {
52c66ec88fSEmmanuel Vadot			label = "ci20:red:led1";
53c66ec88fSEmmanuel Vadot			gpios = <&gpc 2 GPIO_ACTIVE_HIGH>;
54c66ec88fSEmmanuel Vadot			linux,default-trigger = "nand-disk";
55c66ec88fSEmmanuel Vadot		};
56c66ec88fSEmmanuel Vadot
57cb7aa33aSEmmanuel Vadot		led-2 {
58c66ec88fSEmmanuel Vadot			label = "ci20:red:led2";
59c66ec88fSEmmanuel Vadot			gpios = <&gpc 1 GPIO_ACTIVE_HIGH>;
60c66ec88fSEmmanuel Vadot			linux,default-trigger = "cpu1";
61c66ec88fSEmmanuel Vadot		};
62c66ec88fSEmmanuel Vadot
63cb7aa33aSEmmanuel Vadot		led-3 {
64c66ec88fSEmmanuel Vadot			label = "ci20:red:led3";
65c66ec88fSEmmanuel Vadot			gpios = <&gpc 0 GPIO_ACTIVE_HIGH>;
66c66ec88fSEmmanuel Vadot			linux,default-trigger = "cpu0";
67c66ec88fSEmmanuel Vadot		};
68c66ec88fSEmmanuel Vadot	};
69c66ec88fSEmmanuel Vadot
70*f126890aSEmmanuel Vadot	eth0_power: fixedregulator-0 {
71c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
725def4c47SEmmanuel Vadot
73c66ec88fSEmmanuel Vadot		regulator-name = "eth0_power";
74c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
75c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
765def4c47SEmmanuel Vadot
77*f126890aSEmmanuel Vadot		gpio = <&gpb 25 0>;
78c66ec88fSEmmanuel Vadot		enable-active-high;
79c66ec88fSEmmanuel Vadot	};
80c66ec88fSEmmanuel Vadot
81e67e8565SEmmanuel Vadot	hdmi_out: connector {
82e67e8565SEmmanuel Vadot		compatible = "hdmi-connector";
83e67e8565SEmmanuel Vadot		label = "HDMI OUT";
84e67e8565SEmmanuel Vadot		type = "a";
85e67e8565SEmmanuel Vadot
86e67e8565SEmmanuel Vadot		ddc-en-gpios = <&gpa 25 GPIO_ACTIVE_HIGH>;
87e67e8565SEmmanuel Vadot
88e67e8565SEmmanuel Vadot		port {
89e67e8565SEmmanuel Vadot			hdmi_con: endpoint {
90e67e8565SEmmanuel Vadot				remote-endpoint = <&dw_hdmi_out>;
91e67e8565SEmmanuel Vadot			};
92e67e8565SEmmanuel Vadot		};
93e67e8565SEmmanuel Vadot	};
94e67e8565SEmmanuel Vadot
95c66ec88fSEmmanuel Vadot	ir: ir {
96c66ec88fSEmmanuel Vadot		compatible = "gpio-ir-receiver";
97c66ec88fSEmmanuel Vadot		gpios = <&gpe 3 GPIO_ACTIVE_LOW>;
98c66ec88fSEmmanuel Vadot	};
99c66ec88fSEmmanuel Vadot
100*f126890aSEmmanuel Vadot	bt_power: fixedregulator-1 {
101c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
1025def4c47SEmmanuel Vadot
103*f126890aSEmmanuel Vadot		regulator-name = "bt_power";
104*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
105*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
106*f126890aSEmmanuel Vadot		regulator-settling-time-us = <1400>;
1075def4c47SEmmanuel Vadot
108*f126890aSEmmanuel Vadot		vin-supply = <&vcc_50>;
109*f126890aSEmmanuel Vadot
110*f126890aSEmmanuel Vadot		gpio = <&gpb 19 0>;
111c66ec88fSEmmanuel Vadot		enable-active-high;
112c66ec88fSEmmanuel Vadot	};
1135def4c47SEmmanuel Vadot
114*f126890aSEmmanuel Vadot	otg_power: fixedregulator-2 {
1155def4c47SEmmanuel Vadot		compatible = "regulator-fixed";
1165def4c47SEmmanuel Vadot
1175def4c47SEmmanuel Vadot		regulator-name = "otg_power";
1185def4c47SEmmanuel Vadot		regulator-min-microvolt = <5000000>;
1195def4c47SEmmanuel Vadot		regulator-max-microvolt = <5000000>;
1205def4c47SEmmanuel Vadot
121*f126890aSEmmanuel Vadot		gpio = <&gpf 15 0>;
1225def4c47SEmmanuel Vadot		enable-active-high;
1235def4c47SEmmanuel Vadot	};
124*f126890aSEmmanuel Vadot
125*f126890aSEmmanuel Vadot	wifi_power: fixedregulator-4 {
126*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
127*f126890aSEmmanuel Vadot
128*f126890aSEmmanuel Vadot		regulator-name = "wifi_power";
129*f126890aSEmmanuel Vadot
130*f126890aSEmmanuel Vadot		/*
131*f126890aSEmmanuel Vadot		 * Technically it's 5V, the WiFi chip has its own internal
132*f126890aSEmmanuel Vadot		 * regulators; but the MMC/SD subsystem won't accept such a
133*f126890aSEmmanuel Vadot		 * value.
134*f126890aSEmmanuel Vadot		 */
135*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
136*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
137*f126890aSEmmanuel Vadot		regulator-settling-time-us = <150000>;
138*f126890aSEmmanuel Vadot
139*f126890aSEmmanuel Vadot		vin-supply = <&bt_power>;
140*f126890aSEmmanuel Vadot	};
141*f126890aSEmmanuel Vadot
142*f126890aSEmmanuel Vadot	vcc_33v: fixedregulator-5 {
143*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
144*f126890aSEmmanuel Vadot
145*f126890aSEmmanuel Vadot		regulator-name = "vcc_33v";
146*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
147*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
148*f126890aSEmmanuel Vadot		regulator-always-on;
149*f126890aSEmmanuel Vadot	};
150*f126890aSEmmanuel Vadot
151*f126890aSEmmanuel Vadot	wifi_pwrseq: pwrseq {
152*f126890aSEmmanuel Vadot		compatible = "mmc-pwrseq-simple";
153*f126890aSEmmanuel Vadot		reset-gpios = <&gpf 7 GPIO_ACTIVE_LOW>;
154*f126890aSEmmanuel Vadot
155*f126890aSEmmanuel Vadot		clocks = <&rtc_dev>;
156*f126890aSEmmanuel Vadot		clock-names = "ext_clock";
157*f126890aSEmmanuel Vadot	};
158c66ec88fSEmmanuel Vadot};
159c66ec88fSEmmanuel Vadot
160c66ec88fSEmmanuel Vadot&ext {
161c66ec88fSEmmanuel Vadot	clock-frequency = <48000000>;
162c66ec88fSEmmanuel Vadot};
163c66ec88fSEmmanuel Vadot
1645def4c47SEmmanuel Vadot&cgu {
1655def4c47SEmmanuel Vadot	/*
1665def4c47SEmmanuel Vadot	 * Use the 32.768 kHz oscillator as the parent of the RTC for a higher
1675def4c47SEmmanuel Vadot	 * precision.
1685def4c47SEmmanuel Vadot	 */
1698cc087a1SEmmanuel Vadot	assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>,
170e67e8565SEmmanuel Vadot			  <&cgu JZ4780_CLK_SSIPLL>, <&cgu JZ4780_CLK_SSI>,
171*f126890aSEmmanuel Vadot			  <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_MSCMUX>;
1728cc087a1SEmmanuel Vadot	assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>,
1738cc087a1SEmmanuel Vadot				 <&cgu JZ4780_CLK_MPLL>,
174*f126890aSEmmanuel Vadot				 <&cgu JZ4780_CLK_SSIPLL>,
175*f126890aSEmmanuel Vadot				 <0>, <&cgu JZ4780_CLK_MPLL>;
176e67e8565SEmmanuel Vadot	assigned-clock-rates = <48000000>, <0>, <54000000>, <0>, <27000000>;
1775def4c47SEmmanuel Vadot};
1785def4c47SEmmanuel Vadot
1795956d97fSEmmanuel Vadot&tcu {
1805956d97fSEmmanuel Vadot	/*
1815956d97fSEmmanuel Vadot	 * 750 kHz for the system timers and clocksource,
1825956d97fSEmmanuel Vadot	 * use channel #0 and #1 for the per cpu system timers,
1835956d97fSEmmanuel Vadot	 * and use channel #2 for the clocksource.
1845956d97fSEmmanuel Vadot	 *
1855956d97fSEmmanuel Vadot	 * 3000 kHz for the OST timer to provide a higher
1865956d97fSEmmanuel Vadot	 * precision clocksource.
1875956d97fSEmmanuel Vadot	 */
1885956d97fSEmmanuel Vadot	assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
1895956d97fSEmmanuel Vadot					  <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_OST>;
1905956d97fSEmmanuel Vadot	assigned-clock-rates = <750000>, <750000>, <750000>, <3000000>;
1915956d97fSEmmanuel Vadot};
1925956d97fSEmmanuel Vadot
193c66ec88fSEmmanuel Vadot&mmc0 {
194c66ec88fSEmmanuel Vadot	status = "okay";
195c66ec88fSEmmanuel Vadot
196c66ec88fSEmmanuel Vadot	bus-width = <4>;
197c66ec88fSEmmanuel Vadot	max-frequency = <50000000>;
198c66ec88fSEmmanuel Vadot
199c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
200c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_mmc0>;
201c66ec88fSEmmanuel Vadot
202c66ec88fSEmmanuel Vadot	cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>;
203*f126890aSEmmanuel Vadot	vmmc-supply = <&vcc_33v>;
204*f126890aSEmmanuel Vadot	vqmmc-supply = <&vcc_33v>;
205c66ec88fSEmmanuel Vadot};
206c66ec88fSEmmanuel Vadot
207c66ec88fSEmmanuel Vadot&mmc1 {
208c66ec88fSEmmanuel Vadot	status = "okay";
209c66ec88fSEmmanuel Vadot
210c66ec88fSEmmanuel Vadot	bus-width = <4>;
211*f126890aSEmmanuel Vadot	max-frequency = <25000000>;
212*f126890aSEmmanuel Vadot	mmc-pwrseq = <&wifi_pwrseq>;
213*f126890aSEmmanuel Vadot	vmmc-supply = <&wifi_power>;
214*f126890aSEmmanuel Vadot	vqmmc-supply = <&wifi_io>;
215c66ec88fSEmmanuel Vadot	non-removable;
216c66ec88fSEmmanuel Vadot
217c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
218c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_mmc1>;
219c66ec88fSEmmanuel Vadot
220*f126890aSEmmanuel Vadot	#address-cells = <1>;
221*f126890aSEmmanuel Vadot	#size-cells = <0>;
222*f126890aSEmmanuel Vadot
223*f126890aSEmmanuel Vadot	wifi@1 {
224*f126890aSEmmanuel Vadot		compatible = "brcm,bcm4329-fmac";
225*f126890aSEmmanuel Vadot		reg = <1>;
226*f126890aSEmmanuel Vadot
227*f126890aSEmmanuel Vadot		interrupt-parent = <&gpd>;
228*f126890aSEmmanuel Vadot		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
229*f126890aSEmmanuel Vadot		interrupt-names = "host-wake";
230c66ec88fSEmmanuel Vadot	};
231c66ec88fSEmmanuel Vadot};
232c66ec88fSEmmanuel Vadot
233c66ec88fSEmmanuel Vadot&uart0 {
234c66ec88fSEmmanuel Vadot	status = "okay";
235c66ec88fSEmmanuel Vadot
236c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
237c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_uart0>;
238c66ec88fSEmmanuel Vadot};
239c66ec88fSEmmanuel Vadot
240c66ec88fSEmmanuel Vadot&uart1 {
241c66ec88fSEmmanuel Vadot	status = "okay";
242c66ec88fSEmmanuel Vadot
243c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
244c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_uart1>;
245c66ec88fSEmmanuel Vadot};
246c66ec88fSEmmanuel Vadot
247c66ec88fSEmmanuel Vadot&uart2 {
248c66ec88fSEmmanuel Vadot	status = "okay";
249c66ec88fSEmmanuel Vadot
250c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
251c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_uart2>;
252c66ec88fSEmmanuel Vadot	uart-has-rtscts;
253c66ec88fSEmmanuel Vadot
254c66ec88fSEmmanuel Vadot	bluetooth {
255c66ec88fSEmmanuel Vadot		compatible = "brcm,bcm4330-bt";
256*f126890aSEmmanuel Vadot
257*f126890aSEmmanuel Vadot		vbat-supply = <&bt_power>;
258*f126890aSEmmanuel Vadot		vddio-supply = <&wifi_io>;
259*f126890aSEmmanuel Vadot
260*f126890aSEmmanuel Vadot		interrupt-parent = <&gpf>;
261*f126890aSEmmanuel Vadot		interrupts = <6 IRQ_TYPE_EDGE_RISING>;
262*f126890aSEmmanuel Vadot		interrupt-names = "host-wakeup";
263*f126890aSEmmanuel Vadot
264*f126890aSEmmanuel Vadot		clocks = <&rtc_dev>;
265*f126890aSEmmanuel Vadot		clock-names = "lpo";
266*f126890aSEmmanuel Vadot
267*f126890aSEmmanuel Vadot		reset-gpios = <&gpf 8 GPIO_ACTIVE_LOW>;
268c66ec88fSEmmanuel Vadot		device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>;
269*f126890aSEmmanuel Vadot		shutdown-gpios = <&gpf 4 GPIO_ACTIVE_HIGH>;
270c66ec88fSEmmanuel Vadot	};
271c66ec88fSEmmanuel Vadot};
272c66ec88fSEmmanuel Vadot
273c66ec88fSEmmanuel Vadot&uart3 {
274c66ec88fSEmmanuel Vadot	status = "okay";
275c66ec88fSEmmanuel Vadot
276c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
277c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_uart3>;
278c66ec88fSEmmanuel Vadot};
279c66ec88fSEmmanuel Vadot
280c66ec88fSEmmanuel Vadot&uart4 {
281c66ec88fSEmmanuel Vadot	status = "okay";
282c66ec88fSEmmanuel Vadot
283c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
284c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_uart4>;
285c66ec88fSEmmanuel Vadot};
286c66ec88fSEmmanuel Vadot
287c66ec88fSEmmanuel Vadot&i2c0 {
288c66ec88fSEmmanuel Vadot	status = "okay";
289c66ec88fSEmmanuel Vadot
290c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
291c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_i2c0>;
292c66ec88fSEmmanuel Vadot
293c66ec88fSEmmanuel Vadot	clock-frequency = <400000>;
294c66ec88fSEmmanuel Vadot
295c66ec88fSEmmanuel Vadot	act8600: act8600@5a {
296c66ec88fSEmmanuel Vadot		compatible = "active-semi,act8600";
297c66ec88fSEmmanuel Vadot		reg = <0x5a>;
298c66ec88fSEmmanuel Vadot
299c66ec88fSEmmanuel Vadot		regulators {
300*f126890aSEmmanuel Vadot			vddcore: DCDC1 {
301*f126890aSEmmanuel Vadot				regulator-min-microvolt = <1125000>;
302*f126890aSEmmanuel Vadot				regulator-max-microvolt = <1125000>;
303*f126890aSEmmanuel Vadot				vp1-supply = <&vcc_33v>;
304c66ec88fSEmmanuel Vadot				regulator-always-on;
305c66ec88fSEmmanuel Vadot			};
306*f126890aSEmmanuel Vadot			vddmem: DCDC2 {
307c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
308c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1500000>;
309*f126890aSEmmanuel Vadot				vp2-supply = <&vcc_33v>;
310c66ec88fSEmmanuel Vadot				regulator-always-on;
311c66ec88fSEmmanuel Vadot			};
312*f126890aSEmmanuel Vadot			vcc_33: DCDC3 {
313c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
314c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
315*f126890aSEmmanuel Vadot				vp3-supply = <&vcc_33v>;
316c66ec88fSEmmanuel Vadot				regulator-always-on;
317c66ec88fSEmmanuel Vadot			};
318*f126890aSEmmanuel Vadot			vcc_50: SUDCDC_REG4 {
319c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <5000000>;
320c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <5000000>;
321c66ec88fSEmmanuel Vadot				regulator-always-on;
322c66ec88fSEmmanuel Vadot			};
323*f126890aSEmmanuel Vadot			vcc_25: LDO5 {
324c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <2500000>;
325c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <2500000>;
326*f126890aSEmmanuel Vadot				inl-supply = <&vcc_33v>;
327c66ec88fSEmmanuel Vadot				regulator-always-on;
328c66ec88fSEmmanuel Vadot			};
329*f126890aSEmmanuel Vadot			wifi_io: LDO6 {
330*f126890aSEmmanuel Vadot				regulator-min-microvolt = <1800000>;
331*f126890aSEmmanuel Vadot				regulator-max-microvolt = <1800000>;
332*f126890aSEmmanuel Vadot				regulator-settling-time-us = <150000>;
333*f126890aSEmmanuel Vadot				inl-supply = <&vcc_33v>;
334c66ec88fSEmmanuel Vadot			};
335*f126890aSEmmanuel Vadot			cim_io_28: LDO7 {
336c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <2800000>;
337c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <2800000>;
338*f126890aSEmmanuel Vadot				inl-supply = <&vcc_33v>;
339c66ec88fSEmmanuel Vadot			};
340*f126890aSEmmanuel Vadot			cim_io_15: LDO8 {
341c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1500000>;
342c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1500000>;
343*f126890aSEmmanuel Vadot				inl-supply = <&vcc_33v>;
344c66ec88fSEmmanuel Vadot			};
345c66ec88fSEmmanuel Vadot			vrtc_18: LDO_REG9 {
346c66ec88fSEmmanuel Vadot				/* Despite the datasheet stating 3.3V
347c66ec88fSEmmanuel Vadot				 * for REG9 and the driver expecting that,
348c66ec88fSEmmanuel Vadot				 * REG9 outputs 1.8V.
349c66ec88fSEmmanuel Vadot				 * Likely the CI20 uses a proprietary
350c66ec88fSEmmanuel Vadot				 * factory programmed chip variant.
351c66ec88fSEmmanuel Vadot				 * Since this is a simple on/off LDO the
352c66ec88fSEmmanuel Vadot				 * exact values do not matter.
353c66ec88fSEmmanuel Vadot				 */
354c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <3300000>;
355c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <3300000>;
356c66ec88fSEmmanuel Vadot				regulator-always-on;
357c66ec88fSEmmanuel Vadot			};
358c66ec88fSEmmanuel Vadot			vcc_11: LDO_REG10 {
359c66ec88fSEmmanuel Vadot				regulator-min-microvolt = <1200000>;
360c66ec88fSEmmanuel Vadot				regulator-max-microvolt = <1200000>;
361c66ec88fSEmmanuel Vadot				regulator-always-on;
362c66ec88fSEmmanuel Vadot			};
363c66ec88fSEmmanuel Vadot		};
364c66ec88fSEmmanuel Vadot	};
365c66ec88fSEmmanuel Vadot};
366c66ec88fSEmmanuel Vadot
367c66ec88fSEmmanuel Vadot&i2c1 {
368c66ec88fSEmmanuel Vadot	status = "okay";
369c66ec88fSEmmanuel Vadot
370c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
371c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_i2c1>;
372c66ec88fSEmmanuel Vadot
373c66ec88fSEmmanuel Vadot};
374c66ec88fSEmmanuel Vadot
375c66ec88fSEmmanuel Vadot&i2c2 {
376c66ec88fSEmmanuel Vadot	status = "okay";
377c66ec88fSEmmanuel Vadot
378c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
379c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_i2c2>;
380c66ec88fSEmmanuel Vadot
381c66ec88fSEmmanuel Vadot};
382c66ec88fSEmmanuel Vadot
383c66ec88fSEmmanuel Vadot&i2c3 {
384c66ec88fSEmmanuel Vadot	status = "okay";
385c66ec88fSEmmanuel Vadot
386c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
387c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_i2c3>;
388c66ec88fSEmmanuel Vadot
389c66ec88fSEmmanuel Vadot};
390c66ec88fSEmmanuel Vadot
391c66ec88fSEmmanuel Vadot&i2c4 {
392c66ec88fSEmmanuel Vadot	status = "okay";
393c66ec88fSEmmanuel Vadot
394c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
395c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pins_i2c4>;
396c66ec88fSEmmanuel Vadot
397c66ec88fSEmmanuel Vadot	clock-frequency = <400000>;
398c66ec88fSEmmanuel Vadot
399c66ec88fSEmmanuel Vadot		rtc@51 {
400c66ec88fSEmmanuel Vadot			compatible = "nxp,pcf8563";
401c66ec88fSEmmanuel Vadot			reg = <0x51>;
402c66ec88fSEmmanuel Vadot
403c66ec88fSEmmanuel Vadot			interrupt-parent = <&gpf>;
404c66ec88fSEmmanuel Vadot			interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
405c66ec88fSEmmanuel Vadot		};
406c66ec88fSEmmanuel Vadot};
407c66ec88fSEmmanuel Vadot
408c66ec88fSEmmanuel Vadot&nemc {
409c66ec88fSEmmanuel Vadot	status = "okay";
410c66ec88fSEmmanuel Vadot
411c66ec88fSEmmanuel Vadot	nandc: nand-controller@1 {
412c66ec88fSEmmanuel Vadot		compatible = "ingenic,jz4780-nand";
413c66ec88fSEmmanuel Vadot		reg = <1 0 0x1000000>;
414c66ec88fSEmmanuel Vadot
415c66ec88fSEmmanuel Vadot		#address-cells = <1>;
416c66ec88fSEmmanuel Vadot		#size-cells = <0>;
417c66ec88fSEmmanuel Vadot
418*f126890aSEmmanuel Vadot		ecc-engine = <&bch>;
419c66ec88fSEmmanuel Vadot
420c66ec88fSEmmanuel Vadot		ingenic,nemc-tAS = <10>;
421c66ec88fSEmmanuel Vadot		ingenic,nemc-tAH = <5>;
422c66ec88fSEmmanuel Vadot		ingenic,nemc-tBP = <10>;
423c66ec88fSEmmanuel Vadot		ingenic,nemc-tAW = <15>;
424c66ec88fSEmmanuel Vadot		ingenic,nemc-tSTRV = <100>;
425c66ec88fSEmmanuel Vadot
426c66ec88fSEmmanuel Vadot		/*
427c66ec88fSEmmanuel Vadot		 * Only CLE/ALE are needed for the devices that are connected, rather
428c66ec88fSEmmanuel Vadot		 * than the full address line set.
429c66ec88fSEmmanuel Vadot		 */
430c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
431c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pins_nemc>;
432c66ec88fSEmmanuel Vadot
433c66ec88fSEmmanuel Vadot		nand@1 {
434c66ec88fSEmmanuel Vadot			reg = <1>;
435c66ec88fSEmmanuel Vadot
436c66ec88fSEmmanuel Vadot			nand-ecc-step-size = <1024>;
437c66ec88fSEmmanuel Vadot			nand-ecc-strength = <24>;
438c66ec88fSEmmanuel Vadot			nand-ecc-mode = "hw";
439c66ec88fSEmmanuel Vadot			nand-on-flash-bbt;
440c66ec88fSEmmanuel Vadot
441c66ec88fSEmmanuel Vadot			pinctrl-names = "default";
442c66ec88fSEmmanuel Vadot			pinctrl-0 = <&pins_nemc_cs1>;
443c66ec88fSEmmanuel Vadot
444c66ec88fSEmmanuel Vadot			partitions {
445c66ec88fSEmmanuel Vadot				compatible = "fixed-partitions";
446c66ec88fSEmmanuel Vadot				#address-cells = <2>;
447c66ec88fSEmmanuel Vadot				#size-cells = <2>;
448c66ec88fSEmmanuel Vadot
449c66ec88fSEmmanuel Vadot				partition@0 {
450c66ec88fSEmmanuel Vadot					label = "u-boot-spl";
451c66ec88fSEmmanuel Vadot					reg = <0x0 0x0 0x0 0x800000>;
452c66ec88fSEmmanuel Vadot				};
453c66ec88fSEmmanuel Vadot
454c66ec88fSEmmanuel Vadot				partition@800000 {
455c66ec88fSEmmanuel Vadot					label = "u-boot";
456c66ec88fSEmmanuel Vadot					reg = <0x0 0x800000 0x0 0x200000>;
457c66ec88fSEmmanuel Vadot				};
458c66ec88fSEmmanuel Vadot
459c66ec88fSEmmanuel Vadot				partition@a00000 {
460c66ec88fSEmmanuel Vadot					label = "u-boot-env";
461c66ec88fSEmmanuel Vadot					reg = <0x0 0xa00000 0x0 0x200000>;
462c66ec88fSEmmanuel Vadot				};
463c66ec88fSEmmanuel Vadot
464c66ec88fSEmmanuel Vadot				partition@c00000 {
465c66ec88fSEmmanuel Vadot					label = "boot";
466c66ec88fSEmmanuel Vadot					reg = <0x0 0xc00000 0x0 0x4000000>;
467c66ec88fSEmmanuel Vadot				};
468c66ec88fSEmmanuel Vadot
469c66ec88fSEmmanuel Vadot				partition@4c00000 {
470c66ec88fSEmmanuel Vadot					label = "system";
471c66ec88fSEmmanuel Vadot					reg = <0x0 0x4c00000 0x1 0xfb400000>;
472c66ec88fSEmmanuel Vadot				};
473c66ec88fSEmmanuel Vadot			};
474c66ec88fSEmmanuel Vadot		};
475c66ec88fSEmmanuel Vadot	};
476c66ec88fSEmmanuel Vadot
477c66ec88fSEmmanuel Vadot	dm9000@6 {
478c66ec88fSEmmanuel Vadot		compatible = "davicom,dm9000";
479c66ec88fSEmmanuel Vadot		davicom,no-eeprom;
480c66ec88fSEmmanuel Vadot
481c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
482c66ec88fSEmmanuel Vadot		pinctrl-0 = <&pins_nemc_cs6>;
483c66ec88fSEmmanuel Vadot
484*f126890aSEmmanuel Vadot		reg = <6 0 1>, /* addr */
485*f126890aSEmmanuel Vadot		      <6 2 1>; /* data */
486c66ec88fSEmmanuel Vadot
487c66ec88fSEmmanuel Vadot		ingenic,nemc-tAS = <15>;
488c66ec88fSEmmanuel Vadot		ingenic,nemc-tAH = <10>;
489c66ec88fSEmmanuel Vadot		ingenic,nemc-tBP = <20>;
490c66ec88fSEmmanuel Vadot		ingenic,nemc-tAW = <50>;
491c66ec88fSEmmanuel Vadot		ingenic,nemc-tSTRV = <100>;
492c66ec88fSEmmanuel Vadot
4938bab661aSEmmanuel Vadot		reset-gpios = <&gpf 12 GPIO_ACTIVE_LOW>;
494c66ec88fSEmmanuel Vadot		vcc-supply = <&eth0_power>;
495c66ec88fSEmmanuel Vadot
496c66ec88fSEmmanuel Vadot		interrupt-parent = <&gpe>;
497*f126890aSEmmanuel Vadot		interrupts = <19 IRQ_TYPE_EDGE_RISING>;
498c66ec88fSEmmanuel Vadot
499c66ec88fSEmmanuel Vadot		nvmem-cells = <&eth0_addr>;
500c66ec88fSEmmanuel Vadot		nvmem-cell-names = "mac-address";
501c66ec88fSEmmanuel Vadot	};
502c66ec88fSEmmanuel Vadot};
503c66ec88fSEmmanuel Vadot
504c66ec88fSEmmanuel Vadot&bch {
505c66ec88fSEmmanuel Vadot	status = "okay";
506c66ec88fSEmmanuel Vadot};
507c66ec88fSEmmanuel Vadot
5085def4c47SEmmanuel Vadot&otg_phy {
5095def4c47SEmmanuel Vadot	status = "okay";
5105def4c47SEmmanuel Vadot
5115def4c47SEmmanuel Vadot	vcc-supply = <&otg_power>;
5125def4c47SEmmanuel Vadot};
5135def4c47SEmmanuel Vadot
5145def4c47SEmmanuel Vadot&otg {
5155def4c47SEmmanuel Vadot	status = "okay";
5165def4c47SEmmanuel Vadot};
5175def4c47SEmmanuel Vadot
518c66ec88fSEmmanuel Vadot&pinctrl {
519c66ec88fSEmmanuel Vadot	pins_uart0: uart0 {
520c66ec88fSEmmanuel Vadot		function = "uart0";
521c66ec88fSEmmanuel Vadot		groups = "uart0-data";
522c66ec88fSEmmanuel Vadot		bias-disable;
523c66ec88fSEmmanuel Vadot	};
524c66ec88fSEmmanuel Vadot
525c66ec88fSEmmanuel Vadot	pins_uart1: uart1 {
526c66ec88fSEmmanuel Vadot		function = "uart1";
527c66ec88fSEmmanuel Vadot		groups = "uart1-data";
528c66ec88fSEmmanuel Vadot		bias-disable;
529c66ec88fSEmmanuel Vadot	};
530c66ec88fSEmmanuel Vadot
531c66ec88fSEmmanuel Vadot	pins_uart2: uart2 {
532c66ec88fSEmmanuel Vadot		function = "uart2";
533c66ec88fSEmmanuel Vadot		groups = "uart2-data", "uart2-hwflow";
534c66ec88fSEmmanuel Vadot		bias-disable;
535c66ec88fSEmmanuel Vadot	};
536c66ec88fSEmmanuel Vadot
537c66ec88fSEmmanuel Vadot	pins_uart3: uart3 {
538c66ec88fSEmmanuel Vadot		function = "uart3";
539c66ec88fSEmmanuel Vadot		groups = "uart3-data", "uart3-hwflow";
540c66ec88fSEmmanuel Vadot		bias-disable;
541c66ec88fSEmmanuel Vadot	};
542c66ec88fSEmmanuel Vadot
543c66ec88fSEmmanuel Vadot	pins_uart4: uart4 {
544c66ec88fSEmmanuel Vadot		function = "uart4";
545c66ec88fSEmmanuel Vadot		groups = "uart4-data";
546c66ec88fSEmmanuel Vadot		bias-disable;
547c66ec88fSEmmanuel Vadot	};
548c66ec88fSEmmanuel Vadot
549c66ec88fSEmmanuel Vadot	pins_i2c0: i2c0 {
550c66ec88fSEmmanuel Vadot		function = "i2c0";
551c66ec88fSEmmanuel Vadot		groups = "i2c0-data";
552c66ec88fSEmmanuel Vadot		bias-disable;
553c66ec88fSEmmanuel Vadot	};
554c66ec88fSEmmanuel Vadot
555c66ec88fSEmmanuel Vadot	pins_i2c1: i2c1 {
556c66ec88fSEmmanuel Vadot		function = "i2c1";
557c66ec88fSEmmanuel Vadot		groups = "i2c1-data";
558c66ec88fSEmmanuel Vadot		bias-disable;
559c66ec88fSEmmanuel Vadot	};
560c66ec88fSEmmanuel Vadot
561c66ec88fSEmmanuel Vadot	pins_i2c2: i2c2 {
562c66ec88fSEmmanuel Vadot		function = "i2c2";
563c66ec88fSEmmanuel Vadot		groups = "i2c2-data";
564c66ec88fSEmmanuel Vadot		bias-disable;
565c66ec88fSEmmanuel Vadot	};
566c66ec88fSEmmanuel Vadot
567c66ec88fSEmmanuel Vadot	pins_i2c3: i2c3 {
568c66ec88fSEmmanuel Vadot		function = "i2c3";
569c66ec88fSEmmanuel Vadot		groups = "i2c3-data";
570c66ec88fSEmmanuel Vadot		bias-disable;
571c66ec88fSEmmanuel Vadot	};
572c66ec88fSEmmanuel Vadot
573c66ec88fSEmmanuel Vadot	pins_i2c4: i2c4 {
574c66ec88fSEmmanuel Vadot		function = "i2c4";
575c66ec88fSEmmanuel Vadot		groups = "i2c4-data-e";
576c66ec88fSEmmanuel Vadot		bias-disable;
577c66ec88fSEmmanuel Vadot	};
578c66ec88fSEmmanuel Vadot
579e67e8565SEmmanuel Vadot	pins_hdmi_ddc: hdmi_ddc {
580e67e8565SEmmanuel Vadot		function = "hdmi-ddc";
581e67e8565SEmmanuel Vadot		groups = "hdmi-ddc";
582e67e8565SEmmanuel Vadot		bias-disable;
583e67e8565SEmmanuel Vadot	};
584e67e8565SEmmanuel Vadot
585c66ec88fSEmmanuel Vadot	pins_nemc: nemc {
586c66ec88fSEmmanuel Vadot		function = "nemc";
587c66ec88fSEmmanuel Vadot		groups = "nemc-data", "nemc-cle-ale", "nemc-rd-we", "nemc-frd-fwe";
588c66ec88fSEmmanuel Vadot		bias-disable;
589c66ec88fSEmmanuel Vadot	};
590c66ec88fSEmmanuel Vadot
591c66ec88fSEmmanuel Vadot	pins_nemc_cs1: nemc-cs1 {
592c66ec88fSEmmanuel Vadot		function = "nemc-cs1";
593c66ec88fSEmmanuel Vadot		groups = "nemc-cs1";
594c66ec88fSEmmanuel Vadot		bias-disable;
595c66ec88fSEmmanuel Vadot	};
596c66ec88fSEmmanuel Vadot
597c66ec88fSEmmanuel Vadot	pins_nemc_cs6: nemc-cs6 {
598c66ec88fSEmmanuel Vadot		function = "nemc-cs6";
599c66ec88fSEmmanuel Vadot		groups = "nemc-cs6";
600c66ec88fSEmmanuel Vadot		bias-disable;
601c66ec88fSEmmanuel Vadot	};
602c66ec88fSEmmanuel Vadot
603c66ec88fSEmmanuel Vadot	pins_mmc0: mmc0 {
604c66ec88fSEmmanuel Vadot		function = "mmc0";
605c66ec88fSEmmanuel Vadot		groups = "mmc0-1bit-e", "mmc0-4bit-e";
606c66ec88fSEmmanuel Vadot		bias-disable;
607c66ec88fSEmmanuel Vadot	};
608c66ec88fSEmmanuel Vadot
609c66ec88fSEmmanuel Vadot	pins_mmc1: mmc1 {
610c66ec88fSEmmanuel Vadot		function = "mmc1";
611c66ec88fSEmmanuel Vadot		groups = "mmc1-1bit-d", "mmc1-4bit-d";
612c66ec88fSEmmanuel Vadot		bias-disable;
613c66ec88fSEmmanuel Vadot	};
614c66ec88fSEmmanuel Vadot};
615e67e8565SEmmanuel Vadot
616e67e8565SEmmanuel Vadot&hdmi {
617e67e8565SEmmanuel Vadot	status = "okay";
618e67e8565SEmmanuel Vadot
619e67e8565SEmmanuel Vadot	pinctrl-names = "default";
620e67e8565SEmmanuel Vadot	pinctrl-0 = <&pins_hdmi_ddc>;
621e67e8565SEmmanuel Vadot
622e67e8565SEmmanuel Vadot	ports {
623e67e8565SEmmanuel Vadot		#address-cells = <1>;
624e67e8565SEmmanuel Vadot		#size-cells = <0>;
625e67e8565SEmmanuel Vadot
626e67e8565SEmmanuel Vadot		port@0 {
627e67e8565SEmmanuel Vadot			reg = <0>;
628e67e8565SEmmanuel Vadot			dw_hdmi_in: endpoint {
629e67e8565SEmmanuel Vadot				remote-endpoint = <&lcd_out>;
630e67e8565SEmmanuel Vadot			};
631e67e8565SEmmanuel Vadot		};
632e67e8565SEmmanuel Vadot
633e67e8565SEmmanuel Vadot		port@1 {
634e67e8565SEmmanuel Vadot			reg = <1>;
635e67e8565SEmmanuel Vadot			dw_hdmi_out: endpoint {
636e67e8565SEmmanuel Vadot				remote-endpoint = <&hdmi_con>;
637e67e8565SEmmanuel Vadot			};
638e67e8565SEmmanuel Vadot		};
639e67e8565SEmmanuel Vadot	};
640e67e8565SEmmanuel Vadot};
641e67e8565SEmmanuel Vadot
642e67e8565SEmmanuel Vadot&lcdc0 {
643e67e8565SEmmanuel Vadot	status = "okay";
644e67e8565SEmmanuel Vadot
645e67e8565SEmmanuel Vadot	port {
646e67e8565SEmmanuel Vadot		lcd_out: endpoint {
647e67e8565SEmmanuel Vadot			remote-endpoint = <&dw_hdmi_in>;
648e67e8565SEmmanuel Vadot		};
649e67e8565SEmmanuel Vadot	};
650e67e8565SEmmanuel Vadot};
651