xref: /linux/scripts/dtc/include-prefixes/mips/ingenic/ci20.dts (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0
20752f929SPaul Burton/dts-v1/;
30752f929SPaul Burton
40752f929SPaul Burton#include "jz4780.dtsi"
5157c887aSPaul Cercueil#include <dt-bindings/clock/ingenic,tcu.h>
68fec5539SHarvey Hunt#include <dt-bindings/gpio/gpio.h>
7fa894a8fSH. Nikolaus Schaller#include <dt-bindings/input/input.h>
8130ab881SH. Nikolaus Schaller#include <dt-bindings/interrupt-controller/irq.h>
9e8d87a0bSH. Nikolaus Schaller#include <dt-bindings/regulator/active-semi,8865-regulator.h>
100752f929SPaul Burton
110752f929SPaul Burton/ {
120752f929SPaul Burton	compatible = "img,ci20", "ingenic,jz4780";
130752f929SPaul Burton
140752f929SPaul Burton	aliases {
150752f929SPaul Burton		serial0 = &uart0;
160752f929SPaul Burton		serial1 = &uart1;
170752f929SPaul Burton		serial3 = &uart3;
180752f929SPaul Burton		serial4 = &uart4;
190752f929SPaul Burton	};
200752f929SPaul Burton
210752f929SPaul Burton	chosen {
220752f929SPaul Burton		stdout-path = &uart4;
230752f929SPaul Burton	};
240752f929SPaul Burton
250752f929SPaul Burton	memory {
260752f929SPaul Burton		device_type = "memory";
270752f929SPaul Burton		reg = <0x0 0x10000000
280752f929SPaul Burton		       0x30000000 0x30000000>;
290752f929SPaul Burton	};
308fec5539SHarvey Hunt
31fa894a8fSH. Nikolaus Schaller	gpio-keys {
32fa894a8fSH. Nikolaus Schaller		compatible = "gpio-keys";
33fa894a8fSH. Nikolaus Schaller
3462fb295cSKrzysztof Kozlowski		switch {
35fa894a8fSH. Nikolaus Schaller			label = "ci20:sw1";
36fa894a8fSH. Nikolaus Schaller			linux,code = <KEY_F13>;
37fa894a8fSH. Nikolaus Schaller			gpios = <&gpd 17 GPIO_ACTIVE_HIGH>;
38fa894a8fSH. Nikolaus Schaller			wakeup-source;
39fa894a8fSH. Nikolaus Schaller		};
40fa894a8fSH. Nikolaus Schaller	};
41fa894a8fSH. Nikolaus Schaller
4224b0cb4fSAlexandre GRIVEAUX	leds {
4324b0cb4fSAlexandre GRIVEAUX		compatible = "gpio-leds";
4424b0cb4fSAlexandre GRIVEAUX
4509e61efdSArınç ÜNAL		led-0 {
4624b0cb4fSAlexandre GRIVEAUX			label = "ci20:red:led0";
4724b0cb4fSAlexandre GRIVEAUX			gpios = <&gpc 3 GPIO_ACTIVE_HIGH>;
4824b0cb4fSAlexandre GRIVEAUX			linux,default-trigger = "none";
4924b0cb4fSAlexandre GRIVEAUX		};
5024b0cb4fSAlexandre GRIVEAUX
5109e61efdSArınç ÜNAL		led-1 {
5224b0cb4fSAlexandre GRIVEAUX			label = "ci20:red:led1";
5324b0cb4fSAlexandre GRIVEAUX			gpios = <&gpc 2 GPIO_ACTIVE_HIGH>;
5424b0cb4fSAlexandre GRIVEAUX			linux,default-trigger = "nand-disk";
5524b0cb4fSAlexandre GRIVEAUX		};
5624b0cb4fSAlexandre GRIVEAUX
5709e61efdSArınç ÜNAL		led-2 {
5824b0cb4fSAlexandre GRIVEAUX			label = "ci20:red:led2";
5924b0cb4fSAlexandre GRIVEAUX			gpios = <&gpc 1 GPIO_ACTIVE_HIGH>;
6024b0cb4fSAlexandre GRIVEAUX			linux,default-trigger = "cpu1";
6124b0cb4fSAlexandre GRIVEAUX		};
6224b0cb4fSAlexandre GRIVEAUX
6309e61efdSArınç ÜNAL		led-3 {
6424b0cb4fSAlexandre GRIVEAUX			label = "ci20:red:led3";
6524b0cb4fSAlexandre GRIVEAUX			gpios = <&gpc 0 GPIO_ACTIVE_HIGH>;
6624b0cb4fSAlexandre GRIVEAUX			linux,default-trigger = "cpu0";
6724b0cb4fSAlexandre GRIVEAUX		};
6824b0cb4fSAlexandre GRIVEAUX	};
6924b0cb4fSAlexandre GRIVEAUX
70ea1ccdc6SPaul Cercueil	eth0_power: fixedregulator-0 {
718fec5539SHarvey Hunt		compatible = "regulator-fixed";
72158c774dS周琰杰 (Zhou Yanjie)
738fec5539SHarvey Hunt		regulator-name = "eth0_power";
74fa894a8fSH. Nikolaus Schaller		regulator-min-microvolt = <3300000>;
75fa894a8fSH. Nikolaus Schaller		regulator-max-microvolt = <3300000>;
76158c774dS周琰杰 (Zhou Yanjie)
77ea1ccdc6SPaul Cercueil		gpio = <&gpb 25 0>;
788fec5539SHarvey Hunt		enable-active-high;
798fec5539SHarvey Hunt	};
80948f2708SAlexandre GRIVEAUX
81ae1b8d2cSPaul Boddie	hdmi_out: connector {
82ae1b8d2cSPaul Boddie		compatible = "hdmi-connector";
83ae1b8d2cSPaul Boddie		label = "HDMI OUT";
84ae1b8d2cSPaul Boddie		type = "a";
85ae1b8d2cSPaul Boddie
86d9565bf4SH. Nikolaus Schaller		ddc-en-gpios = <&gpa 25 GPIO_ACTIVE_HIGH>;
87d9565bf4SH. Nikolaus Schaller
88ae1b8d2cSPaul Boddie		port {
89ae1b8d2cSPaul Boddie			hdmi_con: endpoint {
90ae1b8d2cSPaul Boddie				remote-endpoint = <&dw_hdmi_out>;
91ae1b8d2cSPaul Boddie			};
92ae1b8d2cSPaul Boddie		};
93ae1b8d2cSPaul Boddie	};
94ae1b8d2cSPaul Boddie
95f5e8fcf8SAlex Smith	ir: ir {
96f5e8fcf8SAlex Smith		compatible = "gpio-ir-receiver";
97f5e8fcf8SAlex Smith		gpios = <&gpe 3 GPIO_ACTIVE_LOW>;
98f5e8fcf8SAlex Smith	};
99f5e8fcf8SAlex Smith
100c9f4b252SPaul Cercueil	bt_power: fixedregulator-1 {
101948f2708SAlexandre GRIVEAUX		compatible = "regulator-fixed";
102158c774dS周琰杰 (Zhou Yanjie)
103c9f4b252SPaul Cercueil		regulator-name = "bt_power";
104c9f4b252SPaul Cercueil		regulator-min-microvolt = <3300000>;
105c9f4b252SPaul Cercueil		regulator-max-microvolt = <3300000>;
106c9f4b252SPaul Cercueil		regulator-settling-time-us = <1400>;
107c9f4b252SPaul Cercueil
108c9f4b252SPaul Cercueil		vin-supply = <&vcc_50>;
109158c774dS周琰杰 (Zhou Yanjie)
110ea1ccdc6SPaul Cercueil		gpio = <&gpb 19 0>;
111948f2708SAlexandre GRIVEAUX		enable-active-high;
112948f2708SAlexandre GRIVEAUX	};
113158c774dS周琰杰 (Zhou Yanjie)
114ea1ccdc6SPaul Cercueil	otg_power: fixedregulator-2 {
115158c774dS周琰杰 (Zhou Yanjie)		compatible = "regulator-fixed";
116158c774dS周琰杰 (Zhou Yanjie)
117158c774dS周琰杰 (Zhou Yanjie)		regulator-name = "otg_power";
118158c774dS周琰杰 (Zhou Yanjie)		regulator-min-microvolt = <5000000>;
119158c774dS周琰杰 (Zhou Yanjie)		regulator-max-microvolt = <5000000>;
120158c774dS周琰杰 (Zhou Yanjie)
121ea1ccdc6SPaul Cercueil		gpio = <&gpf 15 0>;
122158c774dS周琰杰 (Zhou Yanjie)		enable-active-high;
123158c774dS周琰杰 (Zhou Yanjie)	};
124c9f4b252SPaul Cercueil
125c9f4b252SPaul Cercueil	wifi_power: fixedregulator-4 {
126c9f4b252SPaul Cercueil		compatible = "regulator-fixed";
127c9f4b252SPaul Cercueil
128c9f4b252SPaul Cercueil		regulator-name = "wifi_power";
129c9f4b252SPaul Cercueil
130c9f4b252SPaul Cercueil		/*
131c9f4b252SPaul Cercueil		 * Technically it's 5V, the WiFi chip has its own internal
132c9f4b252SPaul Cercueil		 * regulators; but the MMC/SD subsystem won't accept such a
133c9f4b252SPaul Cercueil		 * value.
134c9f4b252SPaul Cercueil		 */
135c9f4b252SPaul Cercueil		regulator-min-microvolt = <3300000>;
136c9f4b252SPaul Cercueil		regulator-max-microvolt = <3300000>;
137c9f4b252SPaul Cercueil		regulator-settling-time-us = <150000>;
138c9f4b252SPaul Cercueil
139c9f4b252SPaul Cercueil		vin-supply = <&bt_power>;
140c9f4b252SPaul Cercueil	};
141c9f4b252SPaul Cercueil
142c9f4b252SPaul Cercueil	vcc_33v: fixedregulator-5 {
143c9f4b252SPaul Cercueil		compatible = "regulator-fixed";
144c9f4b252SPaul Cercueil
145c9f4b252SPaul Cercueil		regulator-name = "vcc_33v";
146c9f4b252SPaul Cercueil		regulator-min-microvolt = <3300000>;
147c9f4b252SPaul Cercueil		regulator-max-microvolt = <3300000>;
148c9f4b252SPaul Cercueil		regulator-always-on;
149c9f4b252SPaul Cercueil	};
150c9f4b252SPaul Cercueil
151c9f4b252SPaul Cercueil	wifi_pwrseq: pwrseq {
152c9f4b252SPaul Cercueil		compatible = "mmc-pwrseq-simple";
153c9f4b252SPaul Cercueil		reset-gpios = <&gpf 7 GPIO_ACTIVE_LOW>;
154c9f4b252SPaul Cercueil
155c9f4b252SPaul Cercueil		clocks = <&rtc_dev>;
156c9f4b252SPaul Cercueil		clock-names = "ext_clock";
157c9f4b252SPaul Cercueil	};
1580752f929SPaul Burton};
1590752f929SPaul Burton
1600752f929SPaul Burton&ext {
1610752f929SPaul Burton	clock-frequency = <48000000>;
1620752f929SPaul Burton};
1630752f929SPaul Burton
164158c774dS周琰杰 (Zhou Yanjie)&cgu {
165158c774dS周琰杰 (Zhou Yanjie)	/*
166158c774dS周琰杰 (Zhou Yanjie)	 * Use the 32.768 kHz oscillator as the parent of the RTC for a higher
167158c774dS周琰杰 (Zhou Yanjie)	 * precision.
168158c774dS周琰杰 (Zhou Yanjie)	 */
1697b3fd810SArtur Rojek	assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>,
170ae1b8d2cSPaul Boddie			  <&cgu JZ4780_CLK_SSIPLL>, <&cgu JZ4780_CLK_SSI>,
171868b70b9SPaul Cercueil			  <&cgu JZ4780_CLK_HDMI>, <&cgu JZ4780_CLK_MSCMUX>;
1727b3fd810SArtur Rojek	assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>,
1737b3fd810SArtur Rojek				 <&cgu JZ4780_CLK_MPLL>,
174868b70b9SPaul Cercueil				 <&cgu JZ4780_CLK_SSIPLL>,
175868b70b9SPaul Cercueil				 <0>, <&cgu JZ4780_CLK_MPLL>;
176ae1b8d2cSPaul Boddie	assigned-clock-rates = <48000000>, <0>, <54000000>, <0>, <27000000>;
177158c774dS周琰杰 (Zhou Yanjie)};
178158c774dS周琰杰 (Zhou Yanjie)
17934c522a0S周琰杰 (Zhou Yanjie)&tcu {
18034c522a0S周琰杰 (Zhou Yanjie)	/*
18134c522a0S周琰杰 (Zhou Yanjie)	 * 750 kHz for the system timers and clocksource,
18234c522a0S周琰杰 (Zhou Yanjie)	 * use channel #0 and #1 for the per cpu system timers,
18334c522a0S周琰杰 (Zhou Yanjie)	 * and use channel #2 for the clocksource.
18434c522a0S周琰杰 (Zhou Yanjie)	 *
18534c522a0S周琰杰 (Zhou Yanjie)	 * 3000 kHz for the OST timer to provide a higher
18634c522a0S周琰杰 (Zhou Yanjie)	 * precision clocksource.
18734c522a0S周琰杰 (Zhou Yanjie)	 */
18834c522a0S周琰杰 (Zhou Yanjie)	assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
18934c522a0S周琰杰 (Zhou Yanjie)					  <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_OST>;
19034c522a0S周琰杰 (Zhou Yanjie)	assigned-clock-rates = <750000>, <750000>, <750000>, <3000000>;
19134c522a0S周琰杰 (Zhou Yanjie)};
19234c522a0S周琰杰 (Zhou Yanjie)
193671963bbSEzequiel Garcia&mmc0 {
194671963bbSEzequiel Garcia	status = "okay";
195671963bbSEzequiel Garcia
196671963bbSEzequiel Garcia	bus-width = <4>;
197671963bbSEzequiel Garcia	max-frequency = <50000000>;
198671963bbSEzequiel Garcia
199671963bbSEzequiel Garcia	pinctrl-names = "default";
200671963bbSEzequiel Garcia	pinctrl-0 = <&pins_mmc0>;
201671963bbSEzequiel Garcia
202671963bbSEzequiel Garcia	cd-gpios = <&gpf 20 GPIO_ACTIVE_LOW>;
203c9f4b252SPaul Cercueil	vmmc-supply = <&vcc_33v>;
204c9f4b252SPaul Cercueil	vqmmc-supply = <&vcc_33v>;
205671963bbSEzequiel Garcia};
206671963bbSEzequiel Garcia
207671963bbSEzequiel Garcia&mmc1 {
208671963bbSEzequiel Garcia	status = "okay";
209671963bbSEzequiel Garcia
210671963bbSEzequiel Garcia	bus-width = <4>;
211c9f4b252SPaul Cercueil	max-frequency = <25000000>;
212c9f4b252SPaul Cercueil	mmc-pwrseq = <&wifi_pwrseq>;
213c9f4b252SPaul Cercueil	vmmc-supply = <&wifi_power>;
214c9f4b252SPaul Cercueil	vqmmc-supply = <&wifi_io>;
215948f2708SAlexandre GRIVEAUX	non-removable;
216671963bbSEzequiel Garcia
217671963bbSEzequiel Garcia	pinctrl-names = "default";
218671963bbSEzequiel Garcia	pinctrl-0 = <&pins_mmc1>;
219948f2708SAlexandre GRIVEAUX
220c9f4b252SPaul Cercueil	#address-cells = <1>;
221c9f4b252SPaul Cercueil	#size-cells = <0>;
222c9f4b252SPaul Cercueil
223c9f4b252SPaul Cercueil	wifi@1 {
224c9f4b252SPaul Cercueil		compatible = "brcm,bcm4329-fmac";
225c9f4b252SPaul Cercueil		reg = <1>;
226c9f4b252SPaul Cercueil
227c9f4b252SPaul Cercueil		interrupt-parent = <&gpd>;
228c9f4b252SPaul Cercueil		interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
229c9f4b252SPaul Cercueil		interrupt-names = "host-wake";
230948f2708SAlexandre GRIVEAUX	};
231671963bbSEzequiel Garcia};
232671963bbSEzequiel Garcia
2330752f929SPaul Burton&uart0 {
2340752f929SPaul Burton	status = "okay";
23589a6139cSPaul Cercueil
23689a6139cSPaul Cercueil	pinctrl-names = "default";
23789a6139cSPaul Cercueil	pinctrl-0 = <&pins_uart0>;
2380752f929SPaul Burton};
2390752f929SPaul Burton
2400752f929SPaul Burton&uart1 {
2410752f929SPaul Burton	status = "okay";
24289a6139cSPaul Cercueil
24389a6139cSPaul Cercueil	pinctrl-names = "default";
24489a6139cSPaul Cercueil	pinctrl-0 = <&pins_uart1>;
2450752f929SPaul Burton};
2460752f929SPaul Burton
247948f2708SAlexandre GRIVEAUX&uart2 {
248948f2708SAlexandre GRIVEAUX	status = "okay";
249948f2708SAlexandre GRIVEAUX
250948f2708SAlexandre GRIVEAUX	pinctrl-names = "default";
251948f2708SAlexandre GRIVEAUX	pinctrl-0 = <&pins_uart2>;
252948f2708SAlexandre GRIVEAUX	uart-has-rtscts;
253948f2708SAlexandre GRIVEAUX
254948f2708SAlexandre GRIVEAUX	bluetooth {
255948f2708SAlexandre GRIVEAUX		compatible = "brcm,bcm4330-bt";
256c9f4b252SPaul Cercueil
257c9f4b252SPaul Cercueil		vbat-supply = <&bt_power>;
258c9f4b252SPaul Cercueil		vddio-supply = <&wifi_io>;
259c9f4b252SPaul Cercueil
260c9f4b252SPaul Cercueil		interrupt-parent = <&gpf>;
261c9f4b252SPaul Cercueil		interrupts = <6 IRQ_TYPE_EDGE_RISING>;
262c9f4b252SPaul Cercueil		interrupt-names = "host-wakeup";
263c9f4b252SPaul Cercueil
264c9f4b252SPaul Cercueil		clocks = <&rtc_dev>;
265c9f4b252SPaul Cercueil		clock-names = "lpo";
266c9f4b252SPaul Cercueil
267c9f4b252SPaul Cercueil		reset-gpios = <&gpf 8 GPIO_ACTIVE_LOW>;
268948f2708SAlexandre GRIVEAUX		device-wakeup-gpios = <&gpf 5 GPIO_ACTIVE_HIGH>;
269c9f4b252SPaul Cercueil		shutdown-gpios = <&gpf 4 GPIO_ACTIVE_HIGH>;
270948f2708SAlexandre GRIVEAUX	};
271948f2708SAlexandre GRIVEAUX};
272948f2708SAlexandre GRIVEAUX
2730752f929SPaul Burton&uart3 {
2740752f929SPaul Burton	status = "okay";
27589a6139cSPaul Cercueil
27689a6139cSPaul Cercueil	pinctrl-names = "default";
2771ca1c87fSZhou Yanjie	pinctrl-0 = <&pins_uart3>;
2780752f929SPaul Burton};
2790752f929SPaul Burton
2800752f929SPaul Burton&uart4 {
2810752f929SPaul Burton	status = "okay";
28289a6139cSPaul Cercueil
28389a6139cSPaul Cercueil	pinctrl-names = "default";
28489a6139cSPaul Cercueil	pinctrl-0 = <&pins_uart4>;
2850752f929SPaul Burton};
28678800558SAlex Smith
28773f2b940SAlexandre GRIVEAUX&i2c0 {
28873f2b940SAlexandre GRIVEAUX	status = "okay";
28973f2b940SAlexandre GRIVEAUX
29073f2b940SAlexandre GRIVEAUX	pinctrl-names = "default";
29173f2b940SAlexandre GRIVEAUX	pinctrl-0 = <&pins_i2c0>;
29273f2b940SAlexandre GRIVEAUX
29373f2b940SAlexandre GRIVEAUX	clock-frequency = <400000>;
29473f2b940SAlexandre GRIVEAUX
29573f2b940SAlexandre GRIVEAUX	act8600: act8600@5a {
29673f2b940SAlexandre GRIVEAUX		compatible = "active-semi,act8600";
29773f2b940SAlexandre GRIVEAUX		reg = <0x5a>;
29873f2b940SAlexandre GRIVEAUX
29973f2b940SAlexandre GRIVEAUX		regulators {
30008384e80SPaul Cercueil			vddcore: DCDC1 {
301*944520f8SPaul Cercueil				regulator-min-microvolt = <1125000>;
302*944520f8SPaul Cercueil				regulator-max-microvolt = <1125000>;
303fbf1e420SPaul Cercueil				vp1-supply = <&vcc_33v>;
30473f2b940SAlexandre GRIVEAUX				regulator-always-on;
30573f2b940SAlexandre GRIVEAUX			};
30608384e80SPaul Cercueil			vddmem: DCDC2 {
30773f2b940SAlexandre GRIVEAUX				regulator-min-microvolt = <1500000>;
30873f2b940SAlexandre GRIVEAUX				regulator-max-microvolt = <1500000>;
309fbf1e420SPaul Cercueil				vp2-supply = <&vcc_33v>;
31073f2b940SAlexandre GRIVEAUX				regulator-always-on;
31173f2b940SAlexandre GRIVEAUX			};
31208384e80SPaul Cercueil			vcc_33: DCDC3 {
31373f2b940SAlexandre GRIVEAUX				regulator-min-microvolt = <3300000>;
31473f2b940SAlexandre GRIVEAUX				regulator-max-microvolt = <3300000>;
315fbf1e420SPaul Cercueil				vp3-supply = <&vcc_33v>;
31673f2b940SAlexandre GRIVEAUX				regulator-always-on;
31773f2b940SAlexandre GRIVEAUX			};
31808384e80SPaul Cercueil			vcc_50: SUDCDC_REG4 {
31973f2b940SAlexandre GRIVEAUX				regulator-min-microvolt = <5000000>;
32073f2b940SAlexandre GRIVEAUX				regulator-max-microvolt = <5000000>;
32173f2b940SAlexandre GRIVEAUX				regulator-always-on;
32273f2b940SAlexandre GRIVEAUX			};
32308384e80SPaul Cercueil			vcc_25: LDO5 {
32473f2b940SAlexandre GRIVEAUX				regulator-min-microvolt = <2500000>;
32573f2b940SAlexandre GRIVEAUX				regulator-max-microvolt = <2500000>;
326fbf1e420SPaul Cercueil				inl-supply = <&vcc_33v>;
32773f2b940SAlexandre GRIVEAUX				regulator-always-on;
32873f2b940SAlexandre GRIVEAUX			};
32908384e80SPaul Cercueil			wifi_io: LDO6 {
330c9f4b252SPaul Cercueil				regulator-min-microvolt = <1800000>;
331c9f4b252SPaul Cercueil				regulator-max-microvolt = <1800000>;
332c9f4b252SPaul Cercueil				regulator-settling-time-us = <150000>;
333fbf1e420SPaul Cercueil				inl-supply = <&vcc_33v>;
33473f2b940SAlexandre GRIVEAUX			};
33508384e80SPaul Cercueil			cim_io_28: LDO7 {
33673f2b940SAlexandre GRIVEAUX				regulator-min-microvolt = <2800000>;
33773f2b940SAlexandre GRIVEAUX				regulator-max-microvolt = <2800000>;
338fbf1e420SPaul Cercueil				inl-supply = <&vcc_33v>;
33973f2b940SAlexandre GRIVEAUX			};
34008384e80SPaul Cercueil			cim_io_15: LDO8 {
34173f2b940SAlexandre GRIVEAUX				regulator-min-microvolt = <1500000>;
34273f2b940SAlexandre GRIVEAUX				regulator-max-microvolt = <1500000>;
343fbf1e420SPaul Cercueil				inl-supply = <&vcc_33v>;
34473f2b940SAlexandre GRIVEAUX			};
345e8d87a0bSH. Nikolaus Schaller			vrtc_18: LDO_REG9 {
346e8d87a0bSH. Nikolaus Schaller				/* Despite the datasheet stating 3.3V
347e8d87a0bSH. Nikolaus Schaller				 * for REG9 and the driver expecting that,
348e8d87a0bSH. Nikolaus Schaller				 * REG9 outputs 1.8V.
349e8d87a0bSH. Nikolaus Schaller				 * Likely the CI20 uses a proprietary
350e8d87a0bSH. Nikolaus Schaller				 * factory programmed chip variant.
351e8d87a0bSH. Nikolaus Schaller				 * Since this is a simple on/off LDO the
352e8d87a0bSH. Nikolaus Schaller				 * exact values do not matter.
353e8d87a0bSH. Nikolaus Schaller				 */
354e8d87a0bSH. Nikolaus Schaller				regulator-min-microvolt = <3300000>;
355e8d87a0bSH. Nikolaus Schaller				regulator-max-microvolt = <3300000>;
35673f2b940SAlexandre GRIVEAUX				regulator-always-on;
35773f2b940SAlexandre GRIVEAUX			};
35873f2b940SAlexandre GRIVEAUX			vcc_11: LDO_REG10 {
359e8d87a0bSH. Nikolaus Schaller				regulator-min-microvolt = <1200000>;
360e8d87a0bSH. Nikolaus Schaller				regulator-max-microvolt = <1200000>;
36173f2b940SAlexandre GRIVEAUX				regulator-always-on;
36273f2b940SAlexandre GRIVEAUX			};
36373f2b940SAlexandre GRIVEAUX		};
36473f2b940SAlexandre GRIVEAUX	};
36573f2b940SAlexandre GRIVEAUX};
36673f2b940SAlexandre GRIVEAUX
36773f2b940SAlexandre GRIVEAUX&i2c1 {
36873f2b940SAlexandre GRIVEAUX	status = "okay";
36973f2b940SAlexandre GRIVEAUX
37073f2b940SAlexandre GRIVEAUX	pinctrl-names = "default";
37173f2b940SAlexandre GRIVEAUX	pinctrl-0 = <&pins_i2c1>;
37273f2b940SAlexandre GRIVEAUX
37373f2b940SAlexandre GRIVEAUX};
37473f2b940SAlexandre GRIVEAUX
37573f2b940SAlexandre GRIVEAUX&i2c2 {
37673f2b940SAlexandre GRIVEAUX	status = "okay";
37773f2b940SAlexandre GRIVEAUX
37873f2b940SAlexandre GRIVEAUX	pinctrl-names = "default";
37973f2b940SAlexandre GRIVEAUX	pinctrl-0 = <&pins_i2c2>;
38073f2b940SAlexandre GRIVEAUX
38173f2b940SAlexandre GRIVEAUX};
38273f2b940SAlexandre GRIVEAUX
38373f2b940SAlexandre GRIVEAUX&i2c3 {
38473f2b940SAlexandre GRIVEAUX	status = "okay";
38573f2b940SAlexandre GRIVEAUX
38673f2b940SAlexandre GRIVEAUX	pinctrl-names = "default";
38773f2b940SAlexandre GRIVEAUX	pinctrl-0 = <&pins_i2c3>;
38873f2b940SAlexandre GRIVEAUX
38973f2b940SAlexandre GRIVEAUX};
39073f2b940SAlexandre GRIVEAUX
39173f2b940SAlexandre GRIVEAUX&i2c4 {
39273f2b940SAlexandre GRIVEAUX	status = "okay";
39373f2b940SAlexandre GRIVEAUX
39473f2b940SAlexandre GRIVEAUX	pinctrl-names = "default";
39573f2b940SAlexandre GRIVEAUX	pinctrl-0 = <&pins_i2c4>;
39673f2b940SAlexandre GRIVEAUX
39773f2b940SAlexandre GRIVEAUX	clock-frequency = <400000>;
39873f2b940SAlexandre GRIVEAUX
39973f2b940SAlexandre GRIVEAUX		rtc@51 {
40073f2b940SAlexandre GRIVEAUX			compatible = "nxp,pcf8563";
40173f2b940SAlexandre GRIVEAUX			reg = <0x51>;
402130ab881SH. Nikolaus Schaller
403130ab881SH. Nikolaus Schaller			interrupt-parent = <&gpf>;
404130ab881SH. Nikolaus Schaller			interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
40573f2b940SAlexandre GRIVEAUX		};
40673f2b940SAlexandre GRIVEAUX};
40773f2b940SAlexandre GRIVEAUX
40878800558SAlex Smith&nemc {
40978800558SAlex Smith	status = "okay";
41078800558SAlex Smith
41178800558SAlex Smith	nandc: nand-controller@1 {
41278800558SAlex Smith		compatible = "ingenic,jz4780-nand";
41378800558SAlex Smith		reg = <1 0 0x1000000>;
41478800558SAlex Smith
41578800558SAlex Smith		#address-cells = <1>;
41678800558SAlex Smith		#size-cells = <0>;
41778800558SAlex Smith
4185fe60d3bSPaul Cercueil		ecc-engine = <&bch>;
41978800558SAlex Smith
42078800558SAlex Smith		ingenic,nemc-tAS = <10>;
42178800558SAlex Smith		ingenic,nemc-tAH = <5>;
42278800558SAlex Smith		ingenic,nemc-tBP = <10>;
42378800558SAlex Smith		ingenic,nemc-tAW = <15>;
42478800558SAlex Smith		ingenic,nemc-tSTRV = <100>;
42578800558SAlex Smith
42689a6139cSPaul Cercueil		/*
42789a6139cSPaul Cercueil		 * Only CLE/ALE are needed for the devices that are connected, rather
42889a6139cSPaul Cercueil		 * than the full address line set.
42989a6139cSPaul Cercueil		 */
43089a6139cSPaul Cercueil		pinctrl-names = "default";
43189a6139cSPaul Cercueil		pinctrl-0 = <&pins_nemc>;
43289a6139cSPaul Cercueil
43378800558SAlex Smith		nand@1 {
43478800558SAlex Smith			reg = <1>;
43578800558SAlex Smith
43678800558SAlex Smith			nand-ecc-step-size = <1024>;
43778800558SAlex Smith			nand-ecc-strength = <24>;
43878800558SAlex Smith			nand-ecc-mode = "hw";
43978800558SAlex Smith			nand-on-flash-bbt;
44078800558SAlex Smith
44189a6139cSPaul Cercueil			pinctrl-names = "default";
44289a6139cSPaul Cercueil			pinctrl-0 = <&pins_nemc_cs1>;
44389a6139cSPaul Cercueil
44478800558SAlex Smith			partitions {
44578800558SAlex Smith				compatible = "fixed-partitions";
44678800558SAlex Smith				#address-cells = <2>;
44778800558SAlex Smith				#size-cells = <2>;
44878800558SAlex Smith
44978800558SAlex Smith				partition@0 {
45078800558SAlex Smith					label = "u-boot-spl";
45178800558SAlex Smith					reg = <0x0 0x0 0x0 0x800000>;
45278800558SAlex Smith				};
45378800558SAlex Smith
454c7685190SMathieu Malaterre				partition@800000 {
45578800558SAlex Smith					label = "u-boot";
45678800558SAlex Smith					reg = <0x0 0x800000 0x0 0x200000>;
45778800558SAlex Smith				};
45878800558SAlex Smith
459c7685190SMathieu Malaterre				partition@a00000 {
46078800558SAlex Smith					label = "u-boot-env";
46178800558SAlex Smith					reg = <0x0 0xa00000 0x0 0x200000>;
46278800558SAlex Smith				};
46378800558SAlex Smith
464c7685190SMathieu Malaterre				partition@c00000 {
46578800558SAlex Smith					label = "boot";
46678800558SAlex Smith					reg = <0x0 0xc00000 0x0 0x4000000>;
46778800558SAlex Smith				};
46878800558SAlex Smith
469018eab88SMathieu Malaterre				partition@4c00000 {
47078800558SAlex Smith					label = "system";
47178800558SAlex Smith					reg = <0x0 0x4c00000 0x1 0xfb400000>;
47278800558SAlex Smith				};
47378800558SAlex Smith			};
47478800558SAlex Smith		};
47578800558SAlex Smith	};
4768fec5539SHarvey Hunt
4778fec5539SHarvey Hunt	dm9000@6 {
4788fec5539SHarvey Hunt		compatible = "davicom,dm9000";
4798fec5539SHarvey Hunt		davicom,no-eeprom;
4808fec5539SHarvey Hunt
4818fec5539SHarvey Hunt		pinctrl-names = "default";
4828fec5539SHarvey Hunt		pinctrl-0 = <&pins_nemc_cs6>;
4838fec5539SHarvey Hunt
4845fe60d3bSPaul Cercueil		reg = <6 0 1>, /* addr */
4855fe60d3bSPaul Cercueil		      <6 2 1>; /* data */
4868fec5539SHarvey Hunt
4878fec5539SHarvey Hunt		ingenic,nemc-tAS = <15>;
4888fec5539SHarvey Hunt		ingenic,nemc-tAH = <10>;
4898fec5539SHarvey Hunt		ingenic,nemc-tBP = <20>;
4908fec5539SHarvey Hunt		ingenic,nemc-tAW = <50>;
4918fec5539SHarvey Hunt		ingenic,nemc-tSTRV = <100>;
4928fec5539SHarvey Hunt
493ca637c0eSDmitry Torokhov		reset-gpios = <&gpf 12 GPIO_ACTIVE_LOW>;
4948fec5539SHarvey Hunt		vcc-supply = <&eth0_power>;
4958fec5539SHarvey Hunt
4968fec5539SHarvey Hunt		interrupt-parent = <&gpe>;
4975fe60d3bSPaul Cercueil		interrupts = <19 IRQ_TYPE_EDGE_RISING>;
49819c96822SH. Nikolaus Schaller
49919c96822SH. Nikolaus Schaller		nvmem-cells = <&eth0_addr>;
50019c96822SH. Nikolaus Schaller		nvmem-cell-names = "mac-address";
5018fec5539SHarvey Hunt	};
50278800558SAlex Smith};
50378800558SAlex Smith
50478800558SAlex Smith&bch {
50578800558SAlex Smith	status = "okay";
50678800558SAlex Smith};
50789a6139cSPaul Cercueil
508158c774dS周琰杰 (Zhou Yanjie)&otg_phy {
509158c774dS周琰杰 (Zhou Yanjie)	status = "okay";
510158c774dS周琰杰 (Zhou Yanjie)
511158c774dS周琰杰 (Zhou Yanjie)	vcc-supply = <&otg_power>;
512158c774dS周琰杰 (Zhou Yanjie)};
513158c774dS周琰杰 (Zhou Yanjie)
514158c774dS周琰杰 (Zhou Yanjie)&otg {
515158c774dS周琰杰 (Zhou Yanjie)	status = "okay";
516158c774dS周琰杰 (Zhou Yanjie)};
517158c774dS周琰杰 (Zhou Yanjie)
51889a6139cSPaul Cercueil&pinctrl {
51989a6139cSPaul Cercueil	pins_uart0: uart0 {
52089a6139cSPaul Cercueil		function = "uart0";
52189a6139cSPaul Cercueil		groups = "uart0-data";
52289a6139cSPaul Cercueil		bias-disable;
52389a6139cSPaul Cercueil	};
52489a6139cSPaul Cercueil
52589a6139cSPaul Cercueil	pins_uart1: uart1 {
52689a6139cSPaul Cercueil		function = "uart1";
52789a6139cSPaul Cercueil		groups = "uart1-data";
52889a6139cSPaul Cercueil		bias-disable;
52989a6139cSPaul Cercueil	};
53089a6139cSPaul Cercueil
531948f2708SAlexandre GRIVEAUX	pins_uart2: uart2 {
532948f2708SAlexandre GRIVEAUX		function = "uart2";
533948f2708SAlexandre GRIVEAUX		groups = "uart2-data", "uart2-hwflow";
534948f2708SAlexandre GRIVEAUX		bias-disable;
535948f2708SAlexandre GRIVEAUX	};
536948f2708SAlexandre GRIVEAUX
5371ca1c87fSZhou Yanjie	pins_uart3: uart3 {
5381ca1c87fSZhou Yanjie		function = "uart3";
5391ca1c87fSZhou Yanjie		groups = "uart3-data", "uart3-hwflow";
54089a6139cSPaul Cercueil		bias-disable;
54189a6139cSPaul Cercueil	};
54289a6139cSPaul Cercueil
54389a6139cSPaul Cercueil	pins_uart4: uart4 {
54489a6139cSPaul Cercueil		function = "uart4";
54589a6139cSPaul Cercueil		groups = "uart4-data";
54689a6139cSPaul Cercueil		bias-disable;
54789a6139cSPaul Cercueil	};
54889a6139cSPaul Cercueil
54973f2b940SAlexandre GRIVEAUX	pins_i2c0: i2c0 {
55073f2b940SAlexandre GRIVEAUX		function = "i2c0";
55173f2b940SAlexandre GRIVEAUX		groups = "i2c0-data";
55273f2b940SAlexandre GRIVEAUX		bias-disable;
55373f2b940SAlexandre GRIVEAUX	};
55473f2b940SAlexandre GRIVEAUX
55573f2b940SAlexandre GRIVEAUX	pins_i2c1: i2c1 {
55673f2b940SAlexandre GRIVEAUX		function = "i2c1";
55773f2b940SAlexandre GRIVEAUX		groups = "i2c1-data";
55873f2b940SAlexandre GRIVEAUX		bias-disable;
55973f2b940SAlexandre GRIVEAUX	};
56073f2b940SAlexandre GRIVEAUX
56173f2b940SAlexandre GRIVEAUX	pins_i2c2: i2c2 {
56273f2b940SAlexandre GRIVEAUX		function = "i2c2";
56373f2b940SAlexandre GRIVEAUX		groups = "i2c2-data";
56473f2b940SAlexandre GRIVEAUX		bias-disable;
56573f2b940SAlexandre GRIVEAUX	};
56673f2b940SAlexandre GRIVEAUX
56773f2b940SAlexandre GRIVEAUX	pins_i2c3: i2c3 {
56873f2b940SAlexandre GRIVEAUX		function = "i2c3";
56973f2b940SAlexandre GRIVEAUX		groups = "i2c3-data";
57073f2b940SAlexandre GRIVEAUX		bias-disable;
57173f2b940SAlexandre GRIVEAUX	};
57273f2b940SAlexandre GRIVEAUX
57373f2b940SAlexandre GRIVEAUX	pins_i2c4: i2c4 {
57473f2b940SAlexandre GRIVEAUX		function = "i2c4";
57573f2b940SAlexandre GRIVEAUX		groups = "i2c4-data-e";
57673f2b940SAlexandre GRIVEAUX		bias-disable;
57773f2b940SAlexandre GRIVEAUX	};
57873f2b940SAlexandre GRIVEAUX
579ae1b8d2cSPaul Boddie	pins_hdmi_ddc: hdmi_ddc {
580ae1b8d2cSPaul Boddie		function = "hdmi-ddc";
581ae1b8d2cSPaul Boddie		groups = "hdmi-ddc";
582ae1b8d2cSPaul Boddie		bias-disable;
583ae1b8d2cSPaul Boddie	};
584ae1b8d2cSPaul Boddie
58589a6139cSPaul Cercueil	pins_nemc: nemc {
58689a6139cSPaul Cercueil		function = "nemc";
58789a6139cSPaul Cercueil		groups = "nemc-data", "nemc-cle-ale", "nemc-rd-we", "nemc-frd-fwe";
58889a6139cSPaul Cercueil		bias-disable;
58989a6139cSPaul Cercueil	};
59089a6139cSPaul Cercueil
59189a6139cSPaul Cercueil	pins_nemc_cs1: nemc-cs1 {
59289a6139cSPaul Cercueil		function = "nemc-cs1";
59389a6139cSPaul Cercueil		groups = "nemc-cs1";
59489a6139cSPaul Cercueil		bias-disable;
59589a6139cSPaul Cercueil	};
5968fec5539SHarvey Hunt
5978fec5539SHarvey Hunt	pins_nemc_cs6: nemc-cs6 {
5988fec5539SHarvey Hunt		function = "nemc-cs6";
5998fec5539SHarvey Hunt		groups = "nemc-cs6";
6008fec5539SHarvey Hunt		bias-disable;
6018fec5539SHarvey Hunt	};
602671963bbSEzequiel Garcia
603671963bbSEzequiel Garcia	pins_mmc0: mmc0 {
604671963bbSEzequiel Garcia		function = "mmc0";
605671963bbSEzequiel Garcia		groups = "mmc0-1bit-e", "mmc0-4bit-e";
606671963bbSEzequiel Garcia		bias-disable;
607671963bbSEzequiel Garcia	};
608671963bbSEzequiel Garcia
609671963bbSEzequiel Garcia	pins_mmc1: mmc1 {
610671963bbSEzequiel Garcia		function = "mmc1";
611671963bbSEzequiel Garcia		groups = "mmc1-1bit-d", "mmc1-4bit-d";
612671963bbSEzequiel Garcia		bias-disable;
613671963bbSEzequiel Garcia	};
61489a6139cSPaul Cercueil};
615ae1b8d2cSPaul Boddie
616ae1b8d2cSPaul Boddie&hdmi {
617ae1b8d2cSPaul Boddie	status = "okay";
618ae1b8d2cSPaul Boddie
619ae1b8d2cSPaul Boddie	pinctrl-names = "default";
620ae1b8d2cSPaul Boddie	pinctrl-0 = <&pins_hdmi_ddc>;
621ae1b8d2cSPaul Boddie
622ae1b8d2cSPaul Boddie	ports {
623ae1b8d2cSPaul Boddie		#address-cells = <1>;
624ae1b8d2cSPaul Boddie		#size-cells = <0>;
625ae1b8d2cSPaul Boddie
626ae1b8d2cSPaul Boddie		port@0 {
627ae1b8d2cSPaul Boddie			reg = <0>;
628ae1b8d2cSPaul Boddie			dw_hdmi_in: endpoint {
629ae1b8d2cSPaul Boddie				remote-endpoint = <&lcd_out>;
630ae1b8d2cSPaul Boddie			};
631ae1b8d2cSPaul Boddie		};
632ae1b8d2cSPaul Boddie
633ae1b8d2cSPaul Boddie		port@1 {
634ae1b8d2cSPaul Boddie			reg = <1>;
635ae1b8d2cSPaul Boddie			dw_hdmi_out: endpoint {
636ae1b8d2cSPaul Boddie				remote-endpoint = <&hdmi_con>;
637ae1b8d2cSPaul Boddie			};
638ae1b8d2cSPaul Boddie		};
639ae1b8d2cSPaul Boddie	};
640ae1b8d2cSPaul Boddie};
641ae1b8d2cSPaul Boddie
642ae1b8d2cSPaul Boddie&lcdc0 {
643ae1b8d2cSPaul Boddie	status = "okay";
644ae1b8d2cSPaul Boddie
645ae1b8d2cSPaul Boddie	port {
646ae1b8d2cSPaul Boddie		lcd_out: endpoint {
647ae1b8d2cSPaul Boddie			remote-endpoint = <&dw_hdmi_in>;
648ae1b8d2cSPaul Boddie		};
649ae1b8d2cSPaul Boddie	};
650ae1b8d2cSPaul Boddie};
651