xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm/rk3288-firefly.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
7*4882a593Smuzhiyun#include "rk3288.dtsi"
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/ {
10*4882a593Smuzhiyun	memory@0 {
11*4882a593Smuzhiyun		device_type = "memory";
12*4882a593Smuzhiyun		reg = <0x0 0x0 0x0 0x80000000>;
13*4882a593Smuzhiyun	};
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	adc-keys {
16*4882a593Smuzhiyun		compatible = "adc-keys";
17*4882a593Smuzhiyun		io-channels = <&saradc 1>;
18*4882a593Smuzhiyun		io-channel-names = "buttons";
19*4882a593Smuzhiyun		keyup-threshold-microvolt = <1800000>;
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun		button-recovery {
22*4882a593Smuzhiyun			label = "Recovery";
23*4882a593Smuzhiyun			linux,code = <KEY_VENDOR>;
24*4882a593Smuzhiyun			press-threshold-microvolt = <0>;
25*4882a593Smuzhiyun		};
26*4882a593Smuzhiyun	};
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	dovdd_1v8: dovdd-1v8-regulator {
29*4882a593Smuzhiyun		compatible = "regulator-fixed";
30*4882a593Smuzhiyun		regulator-name = "dovdd_1v8";
31*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
32*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
33*4882a593Smuzhiyun		vin-supply = <&vcc28_dvp>;
34*4882a593Smuzhiyun	};
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun	ext_gmac: external-gmac-clock {
37*4882a593Smuzhiyun		compatible = "fixed-clock";
38*4882a593Smuzhiyun		#clock-cells = <0>;
39*4882a593Smuzhiyun		clock-frequency = <125000000>;
40*4882a593Smuzhiyun		clock-output-names = "ext_gmac";
41*4882a593Smuzhiyun	};
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun	ir: ir-receiver {
44*4882a593Smuzhiyun		compatible = "gpio-ir-receiver";
45*4882a593Smuzhiyun		pinctrl-names = "default";
46*4882a593Smuzhiyun		pinctrl-0 = <&ir_int>;
47*4882a593Smuzhiyun	};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	keys: gpio-keys {
50*4882a593Smuzhiyun		compatible = "gpio-keys";
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun		power {
53*4882a593Smuzhiyun			wakeup-source;
54*4882a593Smuzhiyun			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
55*4882a593Smuzhiyun			label = "GPIO Power";
56*4882a593Smuzhiyun			linux,code = <KEY_POWER>;
57*4882a593Smuzhiyun			pinctrl-names = "default";
58*4882a593Smuzhiyun			pinctrl-0 = <&pwr_key>;
59*4882a593Smuzhiyun		};
60*4882a593Smuzhiyun	};
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun	leds {
63*4882a593Smuzhiyun		compatible = "gpio-leds";
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun		work_led: led-0 {
66*4882a593Smuzhiyun			gpios = <&gpio8 RK_PA1 GPIO_ACTIVE_LOW>;
67*4882a593Smuzhiyun			label = "firefly:blue:user";
68*4882a593Smuzhiyun			linux,default-trigger = "rc-feedback";
69*4882a593Smuzhiyun			pinctrl-names = "default";
70*4882a593Smuzhiyun			pinctrl-0 = <&work_led_pin>;
71*4882a593Smuzhiyun		};
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun		power_led: led-1 {
74*4882a593Smuzhiyun			gpios = <&gpio8 RK_PA2 GPIO_ACTIVE_LOW>;
75*4882a593Smuzhiyun			label = "firefly:green:power";
76*4882a593Smuzhiyun			linux,default-trigger = "default-on";
77*4882a593Smuzhiyun			pinctrl-names = "default";
78*4882a593Smuzhiyun			pinctrl-0 = <&power_led_pin>;
79*4882a593Smuzhiyun		};
80*4882a593Smuzhiyun	};
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun	vbat_wl: vcc_sys: vsys-regulator {
83*4882a593Smuzhiyun		compatible = "regulator-fixed";
84*4882a593Smuzhiyun		regulator-name = "vcc_sys";
85*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
86*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
87*4882a593Smuzhiyun		regulator-always-on;
88*4882a593Smuzhiyun		regulator-boot-on;
89*4882a593Smuzhiyun	};
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun	vcc_sd: sdmmc-regulator {
92*4882a593Smuzhiyun		compatible = "regulator-fixed";
93*4882a593Smuzhiyun		gpio = <&gpio7 RK_PB3 GPIO_ACTIVE_LOW>;
94*4882a593Smuzhiyun		pinctrl-names = "default";
95*4882a593Smuzhiyun		pinctrl-0 = <&sdmmc_pwr>;
96*4882a593Smuzhiyun		regulator-name = "vcc_sd";
97*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
98*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
99*4882a593Smuzhiyun		startup-delay-us = <100000>;
100*4882a593Smuzhiyun		vin-supply = <&vcc_io>;
101*4882a593Smuzhiyun	};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun	vcc_flash: flash-regulator {
104*4882a593Smuzhiyun		compatible = "regulator-fixed";
105*4882a593Smuzhiyun		regulator-name = "vcc_flash";
106*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
107*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
108*4882a593Smuzhiyun		vin-supply = <&vcc_io>;
109*4882a593Smuzhiyun	};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	vcc_5v: usb-regulator {
112*4882a593Smuzhiyun		compatible = "regulator-fixed";
113*4882a593Smuzhiyun		regulator-name = "vcc_5v";
114*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
115*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
116*4882a593Smuzhiyun		regulator-always-on;
117*4882a593Smuzhiyun		regulator-boot-on;
118*4882a593Smuzhiyun		vin-supply = <&vcc_sys>;
119*4882a593Smuzhiyun	};
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun	vcc_host_5v: usb-host-regulator {
122*4882a593Smuzhiyun		compatible = "regulator-fixed";
123*4882a593Smuzhiyun		enable-active-high;
124*4882a593Smuzhiyun		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
125*4882a593Smuzhiyun		pinctrl-names = "default";
126*4882a593Smuzhiyun		pinctrl-0 = <&host_vbus_drv>;
127*4882a593Smuzhiyun		regulator-name = "vcc_host_5v";
128*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
129*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
130*4882a593Smuzhiyun		regulator-always-on;
131*4882a593Smuzhiyun		vin-supply = <&vcc_5v>;
132*4882a593Smuzhiyun	};
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun	vcc_otg_5v: usb-otg-regulator {
135*4882a593Smuzhiyun		compatible = "regulator-fixed";
136*4882a593Smuzhiyun		enable-active-high;
137*4882a593Smuzhiyun		gpio = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
138*4882a593Smuzhiyun		pinctrl-names = "default";
139*4882a593Smuzhiyun		pinctrl-0 = <&otg_vbus_drv>;
140*4882a593Smuzhiyun		regulator-name = "vcc_otg_5v";
141*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
142*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
143*4882a593Smuzhiyun		regulator-always-on;
144*4882a593Smuzhiyun		vin-supply = <&vcc_5v>;
145*4882a593Smuzhiyun	};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	/*
148*4882a593Smuzhiyun	 * A TT8142 creates both dovdd_1v8 and vcc28_dvp, controlled
149*4882a593Smuzhiyun	 * by the dvp_pwr pin.
150*4882a593Smuzhiyun	 */
151*4882a593Smuzhiyun	vcc28_dvp: vcc28-dvp-regulator {
152*4882a593Smuzhiyun		compatible = "regulator-fixed";
153*4882a593Smuzhiyun		enable-active-high;
154*4882a593Smuzhiyun		gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
155*4882a593Smuzhiyun		pinctrl-names = "default";
156*4882a593Smuzhiyun		pinctrl-0 = <&dvp_pwr>;
157*4882a593Smuzhiyun		regulator-name = "vcc28_dvp";
158*4882a593Smuzhiyun		regulator-min-microvolt = <2800000>;
159*4882a593Smuzhiyun		regulator-max-microvolt = <2800000>;
160*4882a593Smuzhiyun		regulator-always-on;
161*4882a593Smuzhiyun		vin-supply = <&vcc_io>;
162*4882a593Smuzhiyun	};
163*4882a593Smuzhiyun};
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun&cpu0 {
166*4882a593Smuzhiyun	cpu0-supply = <&vdd_cpu>;
167*4882a593Smuzhiyun};
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun&emmc {
170*4882a593Smuzhiyun	bus-width = <8>;
171*4882a593Smuzhiyun	cap-mmc-highspeed;
172*4882a593Smuzhiyun	disable-wp;
173*4882a593Smuzhiyun	non-removable;
174*4882a593Smuzhiyun	pinctrl-names = "default";
175*4882a593Smuzhiyun	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
176*4882a593Smuzhiyun	vmmc-supply = <&vcc_io>;
177*4882a593Smuzhiyun	vqmmc-supply = <&vcc_flash>;
178*4882a593Smuzhiyun	status = "okay";
179*4882a593Smuzhiyun};
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun&gmac {
182*4882a593Smuzhiyun	assigned-clocks = <&cru SCLK_MAC>;
183*4882a593Smuzhiyun	assigned-clock-parents = <&ext_gmac>;
184*4882a593Smuzhiyun	clock_in_out = "input";
185*4882a593Smuzhiyun	pinctrl-names = "default";
186*4882a593Smuzhiyun	pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
187*4882a593Smuzhiyun	phy-supply = <&vcc_lan>;
188*4882a593Smuzhiyun	phy-mode = "rgmii";
189*4882a593Smuzhiyun	snps,reset-active-low;
190*4882a593Smuzhiyun	snps,reset-delays-us = <0 10000 1000000>;
191*4882a593Smuzhiyun	snps,reset-gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_LOW>;
192*4882a593Smuzhiyun	tx_delay = <0x30>;
193*4882a593Smuzhiyun	rx_delay = <0x10>;
194*4882a593Smuzhiyun	status = "okay";
195*4882a593Smuzhiyun};
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun&gpu {
198*4882a593Smuzhiyun	mali-supply = <&vdd_gpu>;
199*4882a593Smuzhiyun	status = "okay";
200*4882a593Smuzhiyun};
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun&hdmi {
203*4882a593Smuzhiyun	ddc-i2c-bus = <&i2c5>;
204*4882a593Smuzhiyun	status = "okay";
205*4882a593Smuzhiyun};
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun&i2c0 {
208*4882a593Smuzhiyun	clock-frequency = <400000>;
209*4882a593Smuzhiyun	status = "okay";
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun	vdd_cpu: syr827@40 {
212*4882a593Smuzhiyun		compatible = "silergy,syr827";
213*4882a593Smuzhiyun		fcs,suspend-voltage-selector = <1>;
214*4882a593Smuzhiyun		reg = <0x40>;
215*4882a593Smuzhiyun		regulator-name = "vdd_cpu";
216*4882a593Smuzhiyun		regulator-min-microvolt = <850000>;
217*4882a593Smuzhiyun		regulator-max-microvolt = <1350000>;
218*4882a593Smuzhiyun		regulator-always-on;
219*4882a593Smuzhiyun		regulator-boot-on;
220*4882a593Smuzhiyun		regulator-enable-ramp-delay = <300>;
221*4882a593Smuzhiyun		regulator-ramp-delay = <8000>;
222*4882a593Smuzhiyun		vin-supply = <&vcc_sys>;
223*4882a593Smuzhiyun	};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun	vdd_gpu: syr828@41 {
226*4882a593Smuzhiyun		compatible = "silergy,syr828";
227*4882a593Smuzhiyun		fcs,suspend-voltage-selector = <1>;
228*4882a593Smuzhiyun		reg = <0x41>;
229*4882a593Smuzhiyun		regulator-name = "vdd_gpu";
230*4882a593Smuzhiyun		regulator-min-microvolt = <850000>;
231*4882a593Smuzhiyun		regulator-max-microvolt = <1350000>;
232*4882a593Smuzhiyun		regulator-always-on;
233*4882a593Smuzhiyun		vin-supply = <&vcc_sys>;
234*4882a593Smuzhiyun	};
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun	hym8563: rtc@51 {
237*4882a593Smuzhiyun		compatible = "haoyu,hym8563";
238*4882a593Smuzhiyun		reg = <0x51>;
239*4882a593Smuzhiyun		#clock-cells = <0>;
240*4882a593Smuzhiyun		clock-frequency = <32768>;
241*4882a593Smuzhiyun		clock-output-names = "xin32k";
242*4882a593Smuzhiyun		interrupt-parent = <&gpio7>;
243*4882a593Smuzhiyun		interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
244*4882a593Smuzhiyun		pinctrl-names = "default";
245*4882a593Smuzhiyun		pinctrl-0 = <&rtc_int>;
246*4882a593Smuzhiyun	};
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun	act8846: act8846@5a {
249*4882a593Smuzhiyun		compatible = "active-semi,act8846";
250*4882a593Smuzhiyun		reg = <0x5a>;
251*4882a593Smuzhiyun		pinctrl-names = "default";
252*4882a593Smuzhiyun		pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
253*4882a593Smuzhiyun		system-power-controller;
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun		vp1-supply = <&vcc_sys>;
256*4882a593Smuzhiyun		vp2-supply = <&vcc_sys>;
257*4882a593Smuzhiyun		vp3-supply = <&vcc_sys>;
258*4882a593Smuzhiyun		vp4-supply = <&vcc_sys>;
259*4882a593Smuzhiyun		inl1-supply = <&vcc_sys>;
260*4882a593Smuzhiyun		inl2-supply = <&vcc_sys>;
261*4882a593Smuzhiyun		inl3-supply = <&vcc_20>;
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun		regulators {
264*4882a593Smuzhiyun			vcc_ddr: REG1 {
265*4882a593Smuzhiyun				regulator-name = "vcc_ddr";
266*4882a593Smuzhiyun				regulator-min-microvolt = <1200000>;
267*4882a593Smuzhiyun				regulator-max-microvolt = <1200000>;
268*4882a593Smuzhiyun				regulator-always-on;
269*4882a593Smuzhiyun			};
270*4882a593Smuzhiyun
271*4882a593Smuzhiyun			vcc_io: REG2 {
272*4882a593Smuzhiyun				regulator-name = "vcc_io";
273*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
274*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
275*4882a593Smuzhiyun				regulator-always-on;
276*4882a593Smuzhiyun			};
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun			vdd_log: REG3 {
279*4882a593Smuzhiyun				regulator-name = "vdd_log";
280*4882a593Smuzhiyun				regulator-min-microvolt = <1100000>;
281*4882a593Smuzhiyun				regulator-max-microvolt = <1100000>;
282*4882a593Smuzhiyun				regulator-always-on;
283*4882a593Smuzhiyun			};
284*4882a593Smuzhiyun
285*4882a593Smuzhiyun			vcc_20: REG4 {
286*4882a593Smuzhiyun				regulator-name = "vcc_20";
287*4882a593Smuzhiyun				regulator-min-microvolt = <2000000>;
288*4882a593Smuzhiyun				regulator-max-microvolt = <2000000>;
289*4882a593Smuzhiyun				regulator-always-on;
290*4882a593Smuzhiyun			};
291*4882a593Smuzhiyun
292*4882a593Smuzhiyun			vccio_sd: REG5 {
293*4882a593Smuzhiyun				regulator-name = "vccio_sd";
294*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
295*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
296*4882a593Smuzhiyun				regulator-always-on;
297*4882a593Smuzhiyun			};
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun			vdd10_lcd: REG6 {
300*4882a593Smuzhiyun				regulator-name = "vdd10_lcd";
301*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
302*4882a593Smuzhiyun				regulator-max-microvolt = <1000000>;
303*4882a593Smuzhiyun				regulator-always-on;
304*4882a593Smuzhiyun			};
305*4882a593Smuzhiyun
306*4882a593Smuzhiyun			vcca_18: REG7 {
307*4882a593Smuzhiyun				regulator-name = "vcca_18";
308*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
309*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
310*4882a593Smuzhiyun			};
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun			vcca_33: REG8 {
313*4882a593Smuzhiyun				regulator-name = "vcca_33";
314*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
315*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
316*4882a593Smuzhiyun			};
317*4882a593Smuzhiyun
318*4882a593Smuzhiyun			vcc_lan: REG9 {
319*4882a593Smuzhiyun				regulator-name = "vcc_lan";
320*4882a593Smuzhiyun				regulator-min-microvolt = <3300000>;
321*4882a593Smuzhiyun				regulator-max-microvolt = <3300000>;
322*4882a593Smuzhiyun			};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun			vdd_10: REG10 {
325*4882a593Smuzhiyun				regulator-name = "vdd_10";
326*4882a593Smuzhiyun				regulator-min-microvolt = <1000000>;
327*4882a593Smuzhiyun				regulator-max-microvolt = <1000000>;
328*4882a593Smuzhiyun				regulator-always-on;
329*4882a593Smuzhiyun			};
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun			vccio_wl: vcc_18: REG11 {
332*4882a593Smuzhiyun				regulator-name = "vcc_18";
333*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
334*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
335*4882a593Smuzhiyun				regulator-always-on;
336*4882a593Smuzhiyun			};
337*4882a593Smuzhiyun
338*4882a593Smuzhiyun			vcc18_lcd: REG12 {
339*4882a593Smuzhiyun				regulator-name = "vcc18_lcd";
340*4882a593Smuzhiyun				regulator-min-microvolt = <1800000>;
341*4882a593Smuzhiyun				regulator-max-microvolt = <1800000>;
342*4882a593Smuzhiyun				regulator-always-on;
343*4882a593Smuzhiyun			};
344*4882a593Smuzhiyun		};
345*4882a593Smuzhiyun	};
346*4882a593Smuzhiyun};
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun&i2c1 {
349*4882a593Smuzhiyun	status = "okay";
350*4882a593Smuzhiyun};
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun&i2c2 {
353*4882a593Smuzhiyun	status = "okay";
354*4882a593Smuzhiyun};
355*4882a593Smuzhiyun
356*4882a593Smuzhiyun&i2c4 {
357*4882a593Smuzhiyun	status = "okay";
358*4882a593Smuzhiyun};
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun&i2c5 {
361*4882a593Smuzhiyun	status = "okay";
362*4882a593Smuzhiyun};
363*4882a593Smuzhiyun
364*4882a593Smuzhiyun&io_domains {
365*4882a593Smuzhiyun	status = "okay";
366*4882a593Smuzhiyun
367*4882a593Smuzhiyun	audio-supply = <&vcca_33>;
368*4882a593Smuzhiyun	bb-supply = <&vcc_io>;
369*4882a593Smuzhiyun	dvp-supply = <&dovdd_1v8>;
370*4882a593Smuzhiyun	flash0-supply = <&vcc_flash>;
371*4882a593Smuzhiyun	flash1-supply = <&vcc_lan>;
372*4882a593Smuzhiyun	gpio30-supply = <&vcc_io>;
373*4882a593Smuzhiyun	gpio1830-supply = <&vcc_io>;
374*4882a593Smuzhiyun	lcdc-supply = <&vcc_io>;
375*4882a593Smuzhiyun	sdcard-supply = <&vccio_sd>;
376*4882a593Smuzhiyun	wifi-supply = <&vccio_wl>;
377*4882a593Smuzhiyun};
378*4882a593Smuzhiyun
379*4882a593Smuzhiyun&pinctrl {
380*4882a593Smuzhiyun	pcfg_output_high: pcfg-output-high {
381*4882a593Smuzhiyun		output-high;
382*4882a593Smuzhiyun	};
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun	pcfg_output_low: pcfg-output-low {
385*4882a593Smuzhiyun		output-low;
386*4882a593Smuzhiyun	};
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun	pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
389*4882a593Smuzhiyun		bias-pull-up;
390*4882a593Smuzhiyun		drive-strength = <12>;
391*4882a593Smuzhiyun	};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun	act8846 {
394*4882a593Smuzhiyun		pwr_hold: pwr-hold {
395*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_output_high>;
396*4882a593Smuzhiyun		};
397*4882a593Smuzhiyun	};
398*4882a593Smuzhiyun
399*4882a593Smuzhiyun	dvp {
400*4882a593Smuzhiyun		dvp_pwr: dvp-pwr {
401*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
402*4882a593Smuzhiyun		};
403*4882a593Smuzhiyun	};
404*4882a593Smuzhiyun
405*4882a593Smuzhiyun	gmac {
406*4882a593Smuzhiyun		phy_int: phy-int {
407*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
408*4882a593Smuzhiyun		};
409*4882a593Smuzhiyun
410*4882a593Smuzhiyun		phy_pmeb: phy-pmeb {
411*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
412*4882a593Smuzhiyun		};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun		phy_rst: phy-rst {
415*4882a593Smuzhiyun			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
416*4882a593Smuzhiyun		};
417*4882a593Smuzhiyun	};
418*4882a593Smuzhiyun
419*4882a593Smuzhiyun	hym8563 {
420*4882a593Smuzhiyun		rtc_int: rtc-int {
421*4882a593Smuzhiyun			rockchip,pins = <7 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
422*4882a593Smuzhiyun		};
423*4882a593Smuzhiyun	};
424*4882a593Smuzhiyun
425*4882a593Smuzhiyun	keys {
426*4882a593Smuzhiyun		pwr_key: pwr-key {
427*4882a593Smuzhiyun			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
428*4882a593Smuzhiyun		};
429*4882a593Smuzhiyun	};
430*4882a593Smuzhiyun
431*4882a593Smuzhiyun	leds {
432*4882a593Smuzhiyun		power_led_pin: power-led-pin {
433*4882a593Smuzhiyun			rockchip,pins = <8 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
434*4882a593Smuzhiyun		};
435*4882a593Smuzhiyun
436*4882a593Smuzhiyun		work_led_pin: work-led-pin {
437*4882a593Smuzhiyun			rockchip,pins = <8 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
438*4882a593Smuzhiyun		};
439*4882a593Smuzhiyun	};
440*4882a593Smuzhiyun
441*4882a593Smuzhiyun	sdmmc {
442*4882a593Smuzhiyun		/*
443*4882a593Smuzhiyun		 * Default drive strength isn't enough to achieve even
444*4882a593Smuzhiyun		 * high-speed mode on firefly board so bump up to 12ma.
445*4882a593Smuzhiyun		 */
446*4882a593Smuzhiyun		sdmmc_bus4: sdmmc-bus4 {
447*4882a593Smuzhiyun			rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_12ma>,
448*4882a593Smuzhiyun					<6 RK_PC1 1 &pcfg_pull_up_drv_12ma>,
449*4882a593Smuzhiyun					<6 RK_PC2 1 &pcfg_pull_up_drv_12ma>,
450*4882a593Smuzhiyun					<6 RK_PC3 1 &pcfg_pull_up_drv_12ma>;
451*4882a593Smuzhiyun		};
452*4882a593Smuzhiyun
453*4882a593Smuzhiyun		sdmmc_clk: sdmmc-clk {
454*4882a593Smuzhiyun			rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_12ma>;
455*4882a593Smuzhiyun		};
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun		sdmmc_cmd: sdmmc-cmd {
458*4882a593Smuzhiyun			rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_12ma>;
459*4882a593Smuzhiyun		};
460*4882a593Smuzhiyun
461*4882a593Smuzhiyun		sdmmc_pwr: sdmmc-pwr {
462*4882a593Smuzhiyun			rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
463*4882a593Smuzhiyun		};
464*4882a593Smuzhiyun	};
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun	usb_host {
467*4882a593Smuzhiyun		host_vbus_drv: host-vbus-drv {
468*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
469*4882a593Smuzhiyun		};
470*4882a593Smuzhiyun
471*4882a593Smuzhiyun		usbhub_rst: usbhub-rst {
472*4882a593Smuzhiyun			rockchip,pins = <8 RK_PA3 RK_FUNC_GPIO &pcfg_output_high>;
473*4882a593Smuzhiyun		};
474*4882a593Smuzhiyun	};
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun	usb_otg {
477*4882a593Smuzhiyun		otg_vbus_drv: otg-vbus-drv {
478*4882a593Smuzhiyun			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
479*4882a593Smuzhiyun		};
480*4882a593Smuzhiyun	};
481*4882a593Smuzhiyun};
482*4882a593Smuzhiyun
483*4882a593Smuzhiyun&saradc {
484*4882a593Smuzhiyun	vref-supply = <&vcc_18>;
485*4882a593Smuzhiyun	status = "okay";
486*4882a593Smuzhiyun};
487*4882a593Smuzhiyun
488*4882a593Smuzhiyun&sdio0 {
489*4882a593Smuzhiyun	bus-width = <4>;
490*4882a593Smuzhiyun	disable-wp;
491*4882a593Smuzhiyun	non-removable;
492*4882a593Smuzhiyun	pinctrl-names = "default";
493*4882a593Smuzhiyun	pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
494*4882a593Smuzhiyun	vmmc-supply = <&vbat_wl>;
495*4882a593Smuzhiyun	vqmmc-supply = <&vccio_wl>;
496*4882a593Smuzhiyun	status = "okay";
497*4882a593Smuzhiyun};
498*4882a593Smuzhiyun
499*4882a593Smuzhiyun&sdmmc {
500*4882a593Smuzhiyun	bus-width = <4>;
501*4882a593Smuzhiyun	cap-mmc-highspeed;
502*4882a593Smuzhiyun	cap-sd-highspeed;
503*4882a593Smuzhiyun	card-detect-delay = <200>;
504*4882a593Smuzhiyun	disable-wp;
505*4882a593Smuzhiyun	pinctrl-names = "default";
506*4882a593Smuzhiyun	pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
507*4882a593Smuzhiyun	vmmc-supply = <&vcc_sd>;
508*4882a593Smuzhiyun	vqmmc-supply = <&vccio_sd>;
509*4882a593Smuzhiyun	status = "okay";
510*4882a593Smuzhiyun};
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun&spi0 {
513*4882a593Smuzhiyun	pinctrl-names = "default";
514*4882a593Smuzhiyun	pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>;
515*4882a593Smuzhiyun	status = "okay";
516*4882a593Smuzhiyun};
517*4882a593Smuzhiyun
518*4882a593Smuzhiyun&tsadc {
519*4882a593Smuzhiyun	rockchip,hw-tshut-mode = <0>;
520*4882a593Smuzhiyun	rockchip,hw-tshut-polarity = <0>;
521*4882a593Smuzhiyun	status = "okay";
522*4882a593Smuzhiyun};
523*4882a593Smuzhiyun
524*4882a593Smuzhiyun&uart0 {
525*4882a593Smuzhiyun	pinctrl-names = "default";
526*4882a593Smuzhiyun	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
527*4882a593Smuzhiyun	status = "okay";
528*4882a593Smuzhiyun};
529*4882a593Smuzhiyun
530*4882a593Smuzhiyun&uart1 {
531*4882a593Smuzhiyun	status = "okay";
532*4882a593Smuzhiyun};
533*4882a593Smuzhiyun
534*4882a593Smuzhiyun&uart2 {
535*4882a593Smuzhiyun	status = "okay";
536*4882a593Smuzhiyun};
537*4882a593Smuzhiyun
538*4882a593Smuzhiyun&uart3 {
539*4882a593Smuzhiyun	status = "okay";
540*4882a593Smuzhiyun};
541*4882a593Smuzhiyun
542*4882a593Smuzhiyun&usbphy {
543*4882a593Smuzhiyun	status = "okay";
544*4882a593Smuzhiyun};
545*4882a593Smuzhiyun
546*4882a593Smuzhiyun&usb_host1 {
547*4882a593Smuzhiyun	pinctrl-names = "default";
548*4882a593Smuzhiyun	pinctrl-0 = <&usbhub_rst>;
549*4882a593Smuzhiyun	status = "okay";
550*4882a593Smuzhiyun};
551*4882a593Smuzhiyun
552*4882a593Smuzhiyun&usb_otg {
553*4882a593Smuzhiyun	status = "okay";
554*4882a593Smuzhiyun};
555*4882a593Smuzhiyun
556*4882a593Smuzhiyun&vopb {
557*4882a593Smuzhiyun	status = "okay";
558*4882a593Smuzhiyun};
559*4882a593Smuzhiyun
560*4882a593Smuzhiyun&vopb_mmu {
561*4882a593Smuzhiyun	status = "okay";
562*4882a593Smuzhiyun};
563*4882a593Smuzhiyun
564*4882a593Smuzhiyun&vopl {
565*4882a593Smuzhiyun	status = "okay";
566*4882a593Smuzhiyun};
567*4882a593Smuzhiyun
568*4882a593Smuzhiyun&vopl_mmu {
569*4882a593Smuzhiyun	status = "okay";
570*4882a593Smuzhiyun};
571*4882a593Smuzhiyun
572*4882a593Smuzhiyun&wdt {
573*4882a593Smuzhiyun	status = "okay";
574*4882a593Smuzhiyun};
575