1/*
2 * Copyright (c) 2013 Heiko Stuebner <heiko@sntech.de>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU General Public License for more details.
13 */
14
15/dts-v1/;
16#include "rk3188.dtsi"
17
18/ {
19	model = "Radxa Rock";
20	compatible = "radxa,rock", "rockchip,rk3188";
21
22	memory {
23		reg = <0x60000000 0x80000000>;
24	};
25
26	gpio-keys {
27		compatible = "gpio-keys";
28		#address-cells = <1>;
29		#size-cells = <0>;
30		autorepeat;
31
32		button@0 {
33			gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
34			linux,code = <116>;
35			label = "GPIO Key Power";
36			linux,input-type = <1>;
37			gpio-key,wakeup = <1>;
38			debounce-interval = <100>;
39		};
40	};
41
42	gpio-leds {
43		compatible = "gpio-leds";
44
45		green {
46			label = "rock:green:user1";
47			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
48			default-state = "off";
49		};
50
51		blue {
52			label = "rock:blue:user2";
53			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
54			default-state = "off";
55		};
56
57		sleep {
58			label = "rock:red:power";
59			gpios = <&gpio0 15 0>;
60			default-state = "off";
61		};
62	};
63
64	ir_recv: gpio-ir-receiver {
65		compatible = "gpio-ir-receiver";
66		gpios = <&gpio0 10 1>;
67		pinctrl-names = "default";
68		pinctrl-0 = <&ir_recv_pin>;
69	};
70
71	vcc_otg: usb-otg-regulator {
72		compatible = "regulator-fixed";
73		enable-active-high;
74		gpio = <&gpio2 31 GPIO_ACTIVE_HIGH>;
75		pinctrl-names = "default";
76		pinctrl-0 = <&otg_vbus_drv>;
77		regulator-name = "otg-vbus";
78		regulator-min-microvolt = <5000000>;
79		regulator-max-microvolt = <5000000>;
80		regulator-always-on;
81		regulator-boot-on;
82	};
83
84	vcc_sd0: sdmmc-regulator {
85		compatible = "regulator-fixed";
86		regulator-name = "sdmmc-supply";
87		regulator-min-microvolt = <3300000>;
88		regulator-max-microvolt = <3300000>;
89		gpio = <&gpio3 1 GPIO_ACTIVE_LOW>;
90		startup-delay-us = <100000>;
91		vin-supply = <&vcc_io>;
92	};
93
94	vcc_host: usb-host-regulator {
95		compatible = "regulator-fixed";
96		enable-active-high;
97		gpio = <&gpio0 3 GPIO_ACTIVE_HIGH>;
98		pinctrl-names = "default";
99		pinctrl-0 = <&host_vbus_drv>;
100		regulator-name = "host-pwr";
101		regulator-min-microvolt = <5000000>;
102		regulator-max-microvolt = <5000000>;
103		regulator-always-on;
104		regulator-boot-on;
105	};
106
107	vsys: vsys-regulator {
108		compatible = "regulator-fixed";
109		regulator-name = "vsys";
110		regulator-min-microvolt = <5000000>;
111		regulator-max-microvolt = <5000000>;
112		regulator-boot-on;
113	};
114};
115
116&emac {
117	status = "okay";
118
119	pinctrl-names = "default";
120	pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>;
121
122	phy = <&phy0>;
123	phy-supply = <&vcc_rmii>;
124
125	phy0: ethernet-phy@0 {
126		reg = <0>;
127		interrupt-parent = <&gpio3>;
128		interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
129	};
130};
131
132&cpu0 {
133	cpu0-supply = <&vdd_arm>;
134};
135
136&i2c1 {
137	status = "okay";
138	clock-frequency = <400000>;
139
140	rtc@51 {
141		compatible = "haoyu,hym8563";
142		reg = <0x51>;
143		interrupt-parent = <&gpio0>;
144		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
145		pinctrl-names = "default";
146		pinctrl-0 = <&rtc_int>;
147		#clock-cells = <0>;
148		clock-output-names = "xin32k";
149	};
150
151	act8846: act8846@5a {
152		compatible = "active-semi,act8846";
153		reg = <0x5a>;
154		status = "okay";
155
156		pinctrl-names = "default";
157		pinctrl-0 = <&act8846_dvs0_ctl>;
158
159		vp1-supply = <&vsys>;
160		vp2-supply = <&vsys>;
161		vp3-supply = <&vsys>;
162		vp4-supply = <&vsys>;
163		inl1-supply = <&vcc_io>;
164		inl2-supply = <&vsys>;
165		inl3-supply = <&vsys>;
166
167		regulators {
168			vcc_ddr: REG1 {
169				regulator-name = "VCC_DDR";
170				regulator-min-microvolt = <1200000>;
171				regulator-max-microvolt = <1200000>;
172				regulator-always-on;
173			};
174
175			vdd_log: REG2 {
176				regulator-name = "VDD_LOG";
177				regulator-min-microvolt = <1000000>;
178				regulator-max-microvolt = <1000000>;
179				regulator-always-on;
180			};
181
182			vdd_arm: REG3 {
183				regulator-name = "VDD_ARM";
184				regulator-min-microvolt = <875000>;
185				regulator-max-microvolt = <1350000>;
186				regulator-always-on;
187			};
188
189			vcc_io: REG4 {
190				regulator-name = "VCC_IO";
191				regulator-min-microvolt = <3300000>;
192				regulator-max-microvolt = <3300000>;
193				regulator-always-on;
194			};
195
196			vdd_10: REG5 {
197				regulator-name = "VDD_10";
198				regulator-min-microvolt = <1000000>;
199				regulator-max-microvolt = <1000000>;
200				regulator-always-on;
201			};
202
203			vdd_hdmi: REG6 {
204				regulator-name = "VDD_HDMI";
205				regulator-min-microvolt = <2500000>;
206				regulator-max-microvolt = <2500000>;
207				regulator-always-on;
208			};
209
210			vcc18: REG7 {
211				regulator-name = "VCC_18";
212				regulator-min-microvolt = <1800000>;
213				regulator-max-microvolt = <1800000>;
214				regulator-always-on;
215			};
216
217			vcca_33: REG8 {
218				regulator-name = "VCCA_33";
219				regulator-min-microvolt = <3300000>;
220				regulator-max-microvolt = <3300000>;
221				regulator-always-on;
222			};
223
224			vcc_rmii: REG9 {
225				regulator-name = "VCC_RMII";
226				regulator-min-microvolt = <3300000>;
227				regulator-max-microvolt = <3300000>;
228			};
229
230			vccio_wl: REG10 {
231				regulator-name = "VCCIO_WL";
232				regulator-min-microvolt = <3300000>;
233				regulator-max-microvolt = <3300000>;
234				regulator-always-on;
235			};
236
237			vcc_18: REG11 {
238				regulator-name = "VCC18_IO";
239				regulator-min-microvolt = <1800000>;
240				regulator-max-microvolt = <1800000>;
241				regulator-always-on;
242			};
243
244			vcc28: REG12 {
245				regulator-name = "VCC_28";
246				regulator-min-microvolt = <2800000>;
247				regulator-max-microvolt = <2800000>;
248				regulator-always-on;
249			};
250		};
251	};
252};
253
254&mmc0 {
255	num-slots = <1>;
256	status = "okay";
257	pinctrl-names = "default";
258	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
259	vmmc-supply = <&vcc_sd0>;
260
261	bus-width = <4>;
262	disable-wp;
263};
264
265&pwm1 {
266	status = "okay";
267};
268
269&pwm2 {
270	status = "okay";
271};
272
273&pwm3 {
274	status = "okay";
275};
276
277&pinctrl {
278	pcfg_output_low: pcfg-output-low {
279		output-low;
280	};
281
282	act8846 {
283		act8846_dvs0_ctl: act8846-dvs0-ctl {
284			rockchip,pins = <RK_GPIO3 27 RK_FUNC_GPIO &pcfg_output_low>;
285		};
286	};
287
288	hym8563 {
289		rtc_int: rtc-int {
290			rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>;
291		};
292	};
293
294	lan8720a  {
295		phy_int: phy-int {
296			rockchip,pins = <RK_GPIO3 26 RK_FUNC_GPIO &pcfg_pull_up>;
297		};
298	};
299
300	ir-receiver {
301		ir_recv_pin: ir-recv-pin {
302			rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO &pcfg_pull_none>;
303		};
304	};
305
306	usb {
307		host_vbus_drv: host-vbus-drv {
308			rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>;
309		};
310		otg_vbus_drv: otg-vbus-drv {
311			rockchip,pins = <2 31 RK_FUNC_GPIO &pcfg_pull_none>;
312		};
313	};
314};
315
316&uart0 {
317	status = "okay";
318};
319
320&uart1 {
321	status = "okay";
322};
323
324&uart2 {
325	status = "okay";
326};
327
328&uart3 {
329	status = "okay";
330};
331
332&usb_host {
333	status = "okay";
334};
335
336&usb_otg {
337	status = "okay";
338};
339
340&wdt {
341	status = "okay";
342};
343