aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2015-01-27 19:24:08 -0500
committerOlof Johansson <olof@lixom.net>2015-01-27 19:24:08 -0500
commitf0ac4f3e067dc9b233de9300214a98cc4ccb46d3 (patch)
treeba31ce894823db61a8dc29fb399a2daa8d4cadab /arch/arm
parenta5565a217520d12ef8d6349456a63592875999b3 (diff)
parent11ff8c86d74002cb493407742fd1c128055e1abe (diff)
Merge tag 'v3.20-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt
Merge "ARM: rockchip: second batch of dts updates for 3.20" from Heiko Stübner: Basic display nodes for crtcs and hdmi encoder, timer node for the broadcast timer going through the clocksource tree and two new boards, the rk3288-based Firefly and the PX2-based Rayeager board (the PX2 is identical to the rk3066 but made for industrial users). * tag 'v3.20-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: add dts for ChipSPARK Rayeager PX2 board ARM: dts: rockchip: add dts for Firefly Firefly-RK3288 boards dt-bindings: add vendor prefix and root compatible property for Rockchip boards ARM: dts: rockchip: Add rockchip timer node for rk3288 ARM: dts: rockchip: add rk3288 hdmi nodes ARM: dts: rockchip: Add rk3288 vop and display-subsystem Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/boot/dts/Makefile5
-rw-r--r--arch/arm/boot/dts/rk3066a-rayeager.dts468
-rw-r--r--arch/arm/boot/dts/rk3288-firefly-beta.dts71
-rw-r--r--arch/arm/boot/dts/rk3288-firefly.dts71
-rw-r--r--arch/arm/boot/dts/rk3288-firefly.dtsi467
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi84
6 files changed, 1165 insertions, 1 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 99896543aa38..09f28f468b83 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -444,9 +444,12 @@ dtb-$(CONFIG_ARCH_REALVIEW) += \
444dtb-$(CONFIG_ARCH_ROCKCHIP) += \ 444dtb-$(CONFIG_ARCH_ROCKCHIP) += \
445 rk3066a-bqcurie2.dtb \ 445 rk3066a-bqcurie2.dtb \
446 rk3066a-marsboard.dtb \ 446 rk3066a-marsboard.dtb \
447 rk3066a-rayeager.dtb \
447 rk3188-radxarock.dtb \ 448 rk3188-radxarock.dtb \
448 rk3288-evb-act8846.dtb \ 449 rk3288-evb-act8846.dtb \
449 rk3288-evb-rk808.dtb 450 rk3288-evb-rk808.dtb \
451 rk3288-firefly-beta.dtb \
452 rk3288-firefly.dtb
450dtb-$(CONFIG_ARCH_S3C24XX) += \ 453dtb-$(CONFIG_ARCH_S3C24XX) += \
451 s3c2416-smdk2416.dtb 454 s3c2416-smdk2416.dtb
452dtb-$(CONFIG_ARCH_S3C64XX) += \ 455dtb-$(CONFIG_ARCH_S3C64XX) += \
diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts b/arch/arm/boot/dts/rk3066a-rayeager.dts
new file mode 100644
index 000000000000..3ac151102c2f
--- /dev/null
+++ b/arch/arm/boot/dts/rk3066a-rayeager.dts
@@ -0,0 +1,468 @@
1/*
2 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "rk3066a.dtsi"
45
46/ {
47 model = "Rayeager PX2";
48 compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";
49
50 memory {
51 reg = <0x60000000 0x40000000>;
52 };
53
54 ir: ir-receiver {
55 compatible = "gpio-ir-receiver";
56 gpios = <&gpio6 1 GPIO_ACTIVE_LOW>;
57 pinctrl-names = "default";
58 pinctrl-0 = <&ir_int>;
59 };
60
61 keys: gpio-keys {
62 compatible = "gpio-keys";
63 #address-cells = <1>;
64 #size-cells = <0>;
65
66 button@0 {
67 gpio-key,wakeup = <1>;
68 gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;
69 label = "GPIO Power";
70 linux,code = <116>;
71 pinctrl-names = "default";
72 pinctrl-0 = <&pwr_key>;
73 };
74 };
75
76 vsys: vsys-regulator {
77 compatible = "regulator-fixed";
78 regulator-name = "vsys";
79 regulator-min-microvolt = <5000000>;
80 regulator-max-microvolt = <5000000>;
81 regulator-always-on;
82 regulator-boot-on;
83 };
84
85 /* input for 5V_STDBY is VSYS or DC5V, selectable by jumper J4 */
86 vcc_stdby: 5v-stdby-regulator {
87 compatible = "regulator-fixed";
88 regulator-name = "5v_stdby";
89 regulator-min-microvolt = <5000000>;
90 regulator-max-microvolt = <5000000>;
91 regulator-always-on;
92 regulator-boot-on;
93 };
94
95 vcc_emmc: emmc-regulator {
96 compatible = "regulator-fixed";
97 regulator-name = "emmc_vccq";
98 regulator-min-microvolt = <3000000>;
99 regulator-max-microvolt = <3000000>;
100 vin-supply = <&vsys>;
101 };
102
103 vcc_sata: sata-regulator {
104 compatible = "regulator-fixed";
105 enable-active-high;
106 gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>;
107 pinctrl-names = "default";
108 pinctrl-0 = <&sata_pwr>;
109 regulator-name = "usb_5v";
110 regulator-min-microvolt = <5000000>;
111 regulator-max-microvolt = <5000000>;
112 regulator-always-on;
113 vin-supply = <&vcc_stdby>;
114 };
115
116 vcc_sd: sdmmc-regulator {
117 compatible = "regulator-fixed";
118 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>;
119 pinctrl-names = "default";
120 pinctrl-0 = <&sdmmc_pwr>;
121 regulator-name = "vcc_sd";
122 regulator-min-microvolt = <3300000>;
123 regulator-max-microvolt = <3300000>;
124 startup-delay-us = <100000>;
125 vin-supply = <&vcc_io>;
126 };
127
128 vcc_host: usb-host-regulator {
129 compatible = "regulator-fixed";
130 enable-active-high;
131 gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>;
132 pinctrl-names = "default";
133 pinctrl-0 = <&host_drv>;
134 regulator-name = "host-pwr";
135 regulator-min-microvolt = <5000000>;
136 regulator-max-microvolt = <5000000>;
137 regulator-always-on;
138 vin-supply = <&vcc_stdby>;
139 };
140
141 vcc_otg: usb-otg-regulator {
142 compatible = "regulator-fixed";
143 enable-active-high;
144 gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>;
145 pinctrl-names = "default";
146 pinctrl-0 = <&otg_drv>;
147 regulator-name = "vcc_otg";
148 regulator-min-microvolt = <5000000>;
149 regulator-max-microvolt = <5000000>;
150 regulator-always-on;
151 vin-supply = <&vcc_stdby>;
152 };
153};
154
155&cpu0 {
156 cpu0-supply = <&vdd_arm>;
157};
158
159&emac {
160 pinctrl-names = "default";
161 pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&rmii_rst>;
162 phy = <&phy0>;
163 phy-supply = <&vcc_rmii>;
164 status = "okay";
165
166 phy0: ethernet-phy@0 {
167 reg = <0>;
168 };
169};
170
171&emmc {
172 broken-cd;
173 bus-width = <8>;
174 cap-mmc-highspeed;
175 disable-wp;
176 non-removable;
177 num-slots = <1>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>;
180 vmmc-supply = <&vcc_emmc>;
181 vqmmc-supply = <&vcc_emmc>;
182 status = "okay";
183};
184
185&i2c0 {
186 clock-frequency = <400000>;
187 status = "okay";
188
189 ak8963: ak8963@0d {
190 compatible = "asahi-kasei,ak8975";
191 reg = <0x0d>;
192 interrupt-parent = <&gpio4>;
193 interrupts = <17 IRQ_TYPE_EDGE_RISING>;
194 pinctrl-names = "default";
195 pinctrl-0 = <&comp_int>;
196 };
197
198 mma8452: mma8452@1d {
199 compatible = "fsl,mma8452";
200 reg = <0x1d>;
201 interrupt-parent = <&gpio4>;
202 interrupts = <16 IRQ_TYPE_EDGE_RISING>;
203 pinctrl-names = "default";
204 pinctrl-0 = <&gsensor_int>;
205 };
206};
207
208&i2c1 {
209 clock-frequency = <400000>;
210 status = "okay";
211
212 tps: tps@2d {
213 reg = <0x2d>;
214 interrupt-parent = <&gpio6>;
215 interrupts = <4 IRQ_TYPE_EDGE_RISING>;
216 pinctrl-names = "default";
217 pinctrl-0 = <&pmic_int>, <&pwr_hold>;
218
219 vcc1-supply = <&vsys>;
220 vcc2-supply = <&vsys>;
221 vcc3-supply = <&vsys>;
222 vcc4-supply = <&vsys>;
223 vcc5-supply = <&vcc_io>;
224 vcc6-supply = <&vcc_io>;
225 vcc7-supply = <&vsys>;
226 vccio-supply = <&vsys>;
227
228 regulators {
229 vcc_rtc: regulator@0 {
230 regulator-name = "vcc_rtc";
231 regulator-always-on;
232 };
233
234 vcc_io: regulator@1 {
235 regulator-name = "vcc_io";
236 regulator-min-microvolt = <3300000>;
237 regulator-max-microvolt = <3300000>;
238 regulator-always-on;
239 };
240
241 vdd_arm: regulator@2 {
242 regulator-name = "vdd_arm";
243 regulator-min-microvolt = <600000>;
244 regulator-max-microvolt = <1500000>;
245 regulator-always-on;
246 regulator-boot-on;
247 };
248
249 vcc_ddr: regulator@3 {
250 regulator-name = "vcc_ddr";
251 regulator-min-microvolt = <600000>;
252 regulator-max-microvolt = <1500000>;
253 regulator-always-on;
254 regulator-boot-on;
255 };
256
257 vcc18: regulator@5 {
258 regulator-name = "vcc18";
259 regulator-min-microvolt = <1800000>;
260 regulator-max-microvolt = <1800000>;
261 regulator-always-on;
262 };
263
264 vdd_11: regulator@6 {
265 regulator-name = "vdd_11";
266 regulator-min-microvolt = <1100000>;
267 regulator-max-microvolt = <1100000>;
268 regulator-always-on;
269 };
270
271 vcc_25: regulator@7 {
272 regulator-name = "vcc_25";
273 regulator-min-microvolt = <2500000>;
274 regulator-max-microvolt = <2500000>;
275 regulator-always-on;
276 };
277
278 vccio_wl: regulator@8 {
279 regulator-name = "vccio_wl";
280 regulator-min-microvolt = <1800000>;
281 regulator-max-microvolt = <1800000>;
282 };
283
284 vcc25_hdmi: regulator@9 {
285 regulator-name = "vcc25_hdmi";
286 regulator-min-microvolt = <2500000>;
287 regulator-max-microvolt = <2500000>;
288 };
289
290 vcca_33: regulator@10 {
291 regulator-name = "vcca_33";
292 regulator-min-microvolt = <3300000>;
293 regulator-max-microvolt = <3300000>;
294 };
295
296 vcc_rmii: regulator@11 {
297 regulator-name = "vcc_rmii";
298 regulator-min-microvolt = <3300000>;
299 regulator-max-microvolt = <3300000>;
300 };
301
302 vcc28_cif: regulator@12 {
303 regulator-name = "vcc28_cif";
304 regulator-min-microvolt = <2800000>;
305 regulator-max-microvolt = <2800000>;
306 };
307 };
308 };
309};
310
311#include "tps65910.dtsi"
312
313&i2c2 {
314 status = "okay";
315};
316
317&i2c3 {
318 status = "okay";
319};
320
321&i2c4 {
322 status = "okay";
323};
324
325&mmc0 {
326 bus-width = <4>;
327 disable-wp;
328 num-slots = <1>;
329 pinctrl-names = "default";
330 pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
331 vmmc-supply = <&vcc_sd>;
332 status = "okay";
333};
334
335&mmc1 {
336 broken-cd;
337 bus-width = <4>;
338 disable-wp;
339 non-removable;
340 num-slots = <1>;
341 pinctrl-names = "default";
342 pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
343 vmmc-supply = <&vccio_wl>;
344 status = "okay";
345};
346
347&pinctrl {
348 pcfg_output_high: pcfg-output-high {
349 output-high;
350 };
351
352 ak8963 {
353 comp_int: comp-int {
354 rockchip,pins = <4 17 RK_FUNC_GPIO &pcfg_pull_default>;
355 };
356 };
357
358 emac {
359 rmii_rst: rmii-rst {
360 rockchip,pins = <1 30 RK_FUNC_GPIO &pcfg_output_high>;
361 };
362 };
363
364 ir {
365 ir_int: ir-int {
366 rockchip,pins = <6 1 RK_FUNC_GPIO &pcfg_pull_default>;
367 };
368 };
369
370 keys {
371 pwr_key: pwr-key {
372 rockchip,pins = <6 2 RK_FUNC_GPIO &pcfg_pull_default>;
373 };
374 };
375
376 mma8452 {
377 gsensor_int: gsensor-int {
378 rockchip,pins = <4 16 RK_FUNC_GPIO &pcfg_pull_default>;
379 };
380 };
381
382 mmc {
383 sdmmc_pwr: sdmmc-pwr {
384 rockchip,pins = <3 7 RK_FUNC_GPIO &pcfg_pull_default>;
385 };
386 };
387
388 usb_host {
389 host_drv: host-drv {
390 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_default>;
391 };
392
393 hub_rst: hub-rst {
394 rockchip,pins = <1 31 RK_FUNC_GPIO &pcfg_output_high>;
395 };
396
397 sata_pwr: sata-pwr {
398 rockchip,pins = <4 22 RK_FUNC_GPIO &pcfg_pull_default>;
399 };
400
401 sata_reset: sata-reset {
402 rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_output_high>;
403 };
404 };
405
406 usb_otg {
407 otg_drv: otg-drv {
408 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_default>;
409 };
410 };
411
412 tps {
413 pmic_int: pmic-int {
414 rockchip,pins = <6 4 RK_FUNC_GPIO &pcfg_pull_default>;
415 };
416
417 pwr_hold: pwr-hold {
418 rockchip,pins = <6 8 RK_FUNC_GPIO &pcfg_output_high>;
419 };
420 };
421};
422
423&pwm1 {
424 status = "okay";
425};
426
427&pwm2 {
428 status = "okay";
429};
430
431&saradc {
432 vref-supply = <&vcc_25>;
433 status = "okay";
434};
435
436&spi0 {
437 status = "okay";
438};
439
440&uart0 {
441 pinctrl-names = "default";
442 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
443 status = "okay";
444};
445
446&uart2 {
447 status = "okay";
448};
449
450&uart3 {
451 pinctrl-names = "default";
452 pinctrl-0 = <&uart3_xfer>, <&uart3_cts>, <&uart3_rts>;
453 status = "okay";
454};
455
456&usb_host {
457 pinctrl-names = "default";
458 pinctrl-0 = <&hub_rst>, <&sata_reset>;
459 status = "okay";
460};
461
462&usb_otg {
463 status = "okay";
464};
465
466&wdt {
467 status = "okay";
468};
diff --git a/arch/arm/boot/dts/rk3288-firefly-beta.dts b/arch/arm/boot/dts/rk3288-firefly-beta.dts
new file mode 100644
index 000000000000..75d77e38e0d6
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-firefly-beta.dts
@@ -0,0 +1,71 @@
1/*
2 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "rk3288-firefly.dtsi"
45
46/ {
47 model = "Firefly-RK3288 Beta";
48 compatible = "firefly,firefly-rk3288-beta", "rockchip,rk3288";
49};
50
51&ir {
52 gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
53};
54
55&pinctrl {
56 act8846 {
57 pmic_vsel: pmic-vsel {
58 rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
59 };
60 };
61
62 ir {
63 ir_int: ir-int {
64 rockchip,pins = <7 5 RK_FUNC_GPIO &pcfg_pull_up>;
65 };
66 };
67};
68
69&pwm0 {
70 status = "okay";
71};
diff --git a/arch/arm/boot/dts/rk3288-firefly.dts b/arch/arm/boot/dts/rk3288-firefly.dts
new file mode 100644
index 000000000000..c07fe92dc69f
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-firefly.dts
@@ -0,0 +1,71 @@
1/*
2 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "rk3288-firefly.dtsi"
45
46/ {
47 model = "Firefly-RK3288";
48 compatible = "firefly,firefly-rk3288", "rockchip,rk3288";
49};
50
51&ir {
52 gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
53};
54
55&pinctrl {
56 act8846 {
57 pmic_vsel: pmic-vsel {
58 rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_output_low>;
59 };
60 };
61
62 ir {
63 ir_int: ir-int {
64 rockchip,pins = <7 0 RK_FUNC_GPIO &pcfg_pull_up>;
65 };
66 };
67};
68
69&pwm1 {
70 status = "okay";
71};
diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi
new file mode 100644
index 000000000000..7f0ba9b24869
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -0,0 +1,467 @@
1/*
2 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include "rk3288.dtsi"
44
45/ {
46 memory {
47 reg = <0 0x80000000>;
48 };
49
50 ext_gmac: external-gmac-clock {
51 compatible = "fixed-clock";
52 #clock-cells = <0>;
53 clock-frequency = <125000000>;
54 clock-output-names = "ext_gmac";
55 };
56
57 ir: ir-receiver {
58 compatible = "gpio-ir-receiver";
59 pinctrl-names = "default";
60 pinctrl-0 = <&ir_int>;
61 };
62
63 keys: gpio-keys {
64 compatible = "gpio-keys";
65 #address-cells = <1>;
66 #size-cells = <0>;
67
68 button@0 {
69 gpio-key,wakeup = <1>;
70 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
71 label = "GPIO Power";
72 linux,code = <116>;
73 pinctrl-names = "default";
74 pinctrl-0 = <&pwr_key>;
75 };
76 };
77
78 leds {
79 compatible = "gpio-leds";
80
81 work {
82 gpios = <&gpio8 1 GPIO_ACTIVE_LOW>;
83 label = "firefly:blue:user";
84 linux,default-trigger = "rc-feedback";
85 pinctrl-names = "default";
86 pinctrl-0 = <&work_led>;
87 };
88
89 power {
90 gpios = <&gpio8 2 GPIO_ACTIVE_LOW>;
91 label = "firefly:green:power";
92 linux,default-trigger = "default-on";
93 pinctrl-names = "default";
94 pinctrl-0 = <&power_led>;
95 };
96 };
97
98 vcc_sys: vsys-regulator {
99 compatible = "regulator-fixed";
100 regulator-name = "vcc_sys";
101 regulator-min-microvolt = <5000000>;
102 regulator-max-microvolt = <5000000>;
103 regulator-always-on;
104 regulator-boot-on;
105 };
106
107 vcc_sd: sdmmc-regulator {
108 compatible = "regulator-fixed";
109 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
110 pinctrl-names = "default";
111 pinctrl-0 = <&sdmmc_pwr>;
112 regulator-name = "vcc_sd";
113 regulator-min-microvolt = <3300000>;
114 regulator-max-microvolt = <3300000>;
115 startup-delay-us = <100000>;
116 vin-supply = <&vcc_io>;
117 };
118
119 vcc_flash: flash-regulator {
120 compatible = "regulator-fixed";
121 regulator-name = "vcc_flash";
122 regulator-min-microvolt = <1800000>;
123 regulator-max-microvolt = <1800000>;
124 vin-supply = <&vcc_io>;
125 };
126
127 vcc_5v: usb-regulator {
128 compatible = "regulator-fixed";
129 regulator-name = "vcc_5v";
130 regulator-min-microvolt = <5000000>;
131 regulator-max-microvolt = <5000000>;
132 regulator-always-on;
133 regulator-boot-on;
134 vin-supply = <&vcc_sys>;
135 };
136
137 vcc_host_5v: usb-host-regulator {
138 compatible = "regulator-fixed";
139 enable-active-high;
140 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
141 pinctrl-names = "default";
142 pinctrl-0 = <&host_vbus_drv>;
143 regulator-name = "vcc_host_5v";
144 regulator-min-microvolt = <5000000>;
145 regulator-max-microvolt = <5000000>;
146 regulator-always-on;
147 vin-supply = <&vcc_5v>;
148 };
149
150 vcc_otg_5v: usb-otg-regulator {
151 compatible = "regulator-fixed";
152 enable-active-high;
153 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
154 pinctrl-names = "default";
155 pinctrl-0 = <&otg_vbus_drv>;
156 regulator-name = "vcc_otg_5v";
157 regulator-min-microvolt = <5000000>;
158 regulator-max-microvolt = <5000000>;
159 regulator-always-on;
160 vin-supply = <&vcc_5v>;
161 };
162};
163
164&cpu0 {
165 cpu0-supply = <&vdd_cpu>;
166};
167
168&emmc {
169 broken-cd;
170 bus-width = <8>;
171 cap-mmc-highspeed;
172 disable-wp;
173 non-removable;
174 num-slots = <1>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
177 vmmc-supply = <&vcc_io>;
178 vqmmc-supply = <&vcc_flash>;
179 status = "okay";
180};
181
182&i2c0 {
183 clock-frequency = <400000>;
184 status = "okay";
185
186 vdd_cpu: syr827@40 {
187 compatible = "silergy,syr827";
188 fcs,suspend-voltage-selector = <1>;
189 reg = <0x40>;
190 regulator-name = "vdd_cpu";
191 regulator-min-microvolt = <850000>;
192 regulator-max-microvolt = <1350000>;
193 regulator-always-on;
194 regulator-boot-on;
195 vin-supply = <&vcc_sys>;
196 };
197
198 vdd_gpu: syr828@41 {
199 compatible = "silergy,syr828";
200 fcs,suspend-voltage-selector = <1>;
201 reg = <0x41>;
202 regulator-name = "vdd_gpu";
203 regulator-min-microvolt = <850000>;
204 regulator-max-microvolt = <1350000>;
205 regulator-always-on;
206 vin-supply = <&vcc_sys>;
207 };
208
209 hym8563: hym8563@51 {
210 compatible = "haoyu,hym8563";
211 reg = <0x51>;
212 #clock-cells = <0>;
213 clock-frequency = <32768>;
214 clock-output-names = "xin32k";
215 interrupt-parent = <&gpio7>;
216 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
217 pinctrl-names = "default";
218 pinctrl-0 = <&rtc_int>;
219 };
220
221 act8846: act8846@5a {
222 compatible = "active-semi,act8846";
223 reg = <0x5a>;
224 pinctrl-names = "default";
225 pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
226 system-power-controller;
227
228 regulators {
229 vcc_ddr: REG1 {
230 regulator-name = "vcc_ddr";
231 regulator-min-microvolt = <1200000>;
232 regulator-max-microvolt = <1200000>;
233 regulator-always-on;
234 };
235
236 vcc_io: REG2 {
237 regulator-name = "vcc_io";
238 regulator-min-microvolt = <3300000>;
239 regulator-max-microvolt = <3300000>;
240 regulator-always-on;
241 };
242
243 vdd_log: REG3 {
244 regulator-name = "vdd_log";
245 regulator-min-microvolt = <1100000>;
246 regulator-max-microvolt = <1100000>;
247 regulator-always-on;
248 };
249
250 vcc_20: REG4 {
251 regulator-name = "vcc_20";
252 regulator-min-microvolt = <2000000>;
253 regulator-max-microvolt = <2000000>;
254 regulator-always-on;
255 };
256
257 vccio_sd: REG5 {
258 regulator-name = "vccio_sd";
259 regulator-min-microvolt = <3300000>;
260 regulator-max-microvolt = <3300000>;
261 regulator-always-on;
262 };
263
264 vdd10_lcd: REG6 {
265 regulator-name = "vdd10_lcd";
266 regulator-min-microvolt = <1000000>;
267 regulator-max-microvolt = <1000000>;
268 };
269
270 vcca_18: REG7 {
271 regulator-name = "vcca_18";
272 regulator-min-microvolt = <1800000>;
273 regulator-max-microvolt = <1800000>;
274 };
275
276 vcca_33: REG8 {
277 regulator-name = "vcca_33";
278 regulator-min-microvolt = <3300000>;
279 regulator-max-microvolt = <3300000>;
280 };
281
282 vcc_lan: REG9 {
283 regulator-name = "vcc_lan";
284 regulator-min-microvolt = <3300000>;
285 regulator-max-microvolt = <3300000>;
286 };
287
288 vdd_10: REG10 {
289 regulator-name = "vdd_10";
290 regulator-min-microvolt = <1000000>;
291 regulator-max-microvolt = <1000000>;
292 regulator-always-on;
293 };
294
295 vcc_18: REG11 {
296 regulator-name = "vcc_18";
297 regulator-min-microvolt = <1800000>;
298 regulator-max-microvolt = <1800000>;
299 regulator-always-on;
300 };
301
302 vcc18_lcd: REG12 {
303 regulator-name = "vcc18_lcd";
304 regulator-min-microvolt = <1800000>;
305 regulator-max-microvolt = <1800000>;
306 };
307 };
308 };
309};
310
311&i2c1 {
312 status = "okay";
313};
314
315&i2c2 {
316 status = "okay";
317};
318
319&i2c4 {
320 status = "okay";
321};
322
323&i2c5 {
324 status = "okay";
325};
326
327&pinctrl {
328 pcfg_output_high: pcfg-output-high {
329 output-high;
330 };
331
332 pcfg_output_low: pcfg-output-low {
333 output-low;
334 };
335
336 act8846 {
337 pwr_hold: pwr-hold {
338 rockchip,pins = <0 1 RK_FUNC_GPIO &pcfg_output_high>;
339 };
340 };
341
342 gmac {
343 phy_int: phy-int {
344 rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
345 };
346
347 phy_pmeb: phy-pmeb {
348 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
349 };
350
351 phy_rst: phy-rst {
352 rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
353 };
354 };
355
356 hym8563 {
357 rtc_int: rtc-int {
358 rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_up>;
359 };
360 };
361
362 keys {
363 pwr_key: pwr-key {
364 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
365 };
366 };
367
368 leds {
369 power_led: power-led {
370 rockchip,pins = <8 2 RK_FUNC_GPIO &pcfg_pull_none>;
371 };
372
373 work_led: work-led {
374 rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_none>;
375 };
376 };
377
378 sdmmc {
379 sdmmc_pwr: sdmmc-pwr {
380 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
381 };
382 };
383
384 usb_host {
385 host_vbus_drv: host-vbus-drv {
386 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
387 };
388
389 usbhub_rst: usbhub-rst {
390 rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_output_high>;
391 };
392 };
393
394 usb_otg {
395 otg_vbus_drv: otg-vbus-drv {
396 rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
397 };
398 };
399};
400
401&saradc {
402 vref-supply = <&vcc_18>;
403 status = "okay";
404};
405
406&sdio0 {
407 broken-cd;
408 bus-width = <4>;
409 disable-wp;
410 non-removable;
411 num-slots = <1>;
412 pinctrl-names = "default";
413 pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
414 vmmc-supply = <&vcc_18>;
415 status = "okay";
416};
417
418&sdmmc {
419 bus-width = <4>;
420 cap-mmc-highspeed;
421 cap-sd-highspeed;
422 card-detect-delay = <200>;
423 disable-wp;
424 num-slots = <1>;
425 pinctrl-names = "default";
426 pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
427 vmmc-supply = <&vcc_sd>;
428 status = "okay";
429};
430
431&spi0 {
432 pinctrl-names = "default";
433 pinctrl-0 = <&spi0_clk>, <&spi0_cs0>, <&spi0_tx>, <&spi0_rx>, <&spi0_cs1>;
434 status = "okay";
435};
436
437&uart0 {
438 pinctrl-names = "default";
439 pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
440 status = "okay";
441};
442
443&uart1 {
444 status = "okay";
445};
446
447&uart2 {
448 status = "okay";
449};
450
451&uart3 {
452 status = "okay";
453};
454
455&usb_host1 {
456 pinctrl-names = "default";
457 pinctrl-0 = <&usbhub_rst>;
458 status = "okay";
459};
460
461&usb_otg {
462 status = "okay";
463};
464
465&wdt {
466 status = "okay";
467};
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 2a878a35facc..37847c14b449 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -149,6 +149,19 @@
149 clock-frequency = <24000000>; 149 clock-frequency = <24000000>;
150 }; 150 };
151 151
152 timer: timer@ff810000 {
153 compatible = "rockchip,rk3288-timer";
154 reg = <0xff810000 0x20>;
155 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
156 clocks = <&xin24m>, <&cru PCLK_TIMER>;
157 clock-names = "timer", "pclk";
158 };
159
160 display-subsystem {
161 compatible = "rockchip,display-subsystem";
162 ports = <&vopl_out>, <&vopb_out>;
163 };
164
152 sdmmc: dwmmc@ff0c0000 { 165 sdmmc: dwmmc@ff0c0000 {
153 compatible = "rockchip,rk3288-dw-mshc"; 166 compatible = "rockchip,rk3288-dw-mshc";
154 clock-freq-min-max = <400000 150000000>; 167 clock-freq-min-max = <400000 150000000>;
@@ -566,6 +579,28 @@
566 status = "disabled"; 579 status = "disabled";
567 }; 580 };
568 581
582 vopb: vop@ff930000 {
583 compatible = "rockchip,rk3288-vop";
584 reg = <0xff930000 0x19c>;
585 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
586 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
587 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
588 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
589 reset-names = "axi", "ahb", "dclk";
590 iommus = <&vopb_mmu>;
591 status = "disabled";
592
593 vopb_out: port {
594 #address-cells = <1>;
595 #size-cells = <0>;
596
597 vopb_out_hdmi: endpoint@0 {
598 reg = <0>;
599 remote-endpoint = <&hdmi_in_vopb>;
600 };
601 };
602 };
603
569 vopb_mmu: iommu@ff930300 { 604 vopb_mmu: iommu@ff930300 {
570 compatible = "rockchip,iommu"; 605 compatible = "rockchip,iommu";
571 reg = <0xff930300 0x100>; 606 reg = <0xff930300 0x100>;
@@ -575,6 +610,28 @@
575 status = "disabled"; 610 status = "disabled";
576 }; 611 };
577 612
613 vopl: vop@ff940000 {
614 compatible = "rockchip,rk3288-vop";
615 reg = <0xff940000 0x19c>;
616 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
617 clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
618 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
619 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
620 reset-names = "axi", "ahb", "dclk";
621 iommus = <&vopl_mmu>;
622 status = "disabled";
623
624 vopl_out: port {
625 #address-cells = <1>;
626 #size-cells = <0>;
627
628 vopl_out_hdmi: endpoint@0 {
629 reg = <0>;
630 remote-endpoint = <&hdmi_in_vopl>;
631 };
632 };
633 };
634
578 vopl_mmu: iommu@ff940300 { 635 vopl_mmu: iommu@ff940300 {
579 compatible = "rockchip,iommu"; 636 compatible = "rockchip,iommu";
580 reg = <0xff940300 0x100>; 637 reg = <0xff940300 0x100>;
@@ -584,6 +641,33 @@
584 status = "disabled"; 641 status = "disabled";
585 }; 642 };
586 643
644 hdmi: hdmi@ff980000 {
645 compatible = "rockchip,rk3288-dw-hdmi";
646 reg = <0xff980000 0x20000>;
647 reg-io-width = <4>;
648 ddc-i2c-bus = <&i2c5>;
649 rockchip,grf = <&grf>;
650 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
651 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
652 clock-names = "iahb", "isfr";
653 status = "disabled";
654
655 ports {
656 hdmi_in: port {
657 #address-cells = <1>;
658 #size-cells = <0>;
659 hdmi_in_vopb: endpoint@0 {
660 reg = <0>;
661 remote-endpoint = <&vopb_out_hdmi>;
662 };
663 hdmi_in_vopl: endpoint@1 {
664 reg = <1>;
665 remote-endpoint = <&vopl_out_hdmi>;
666 };
667 };
668 };
669 };
670
587 gic: interrupt-controller@ffc01000 { 671 gic: interrupt-controller@ffc01000 {
588 compatible = "arm,gic-400"; 672 compatible = "arm,gic-400";
589 interrupt-controller; 673 interrupt-controller;