aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2014-11-20 11:42:17 -0500
committerArnd Bergmann <arnd@arndb.de>2014-11-20 11:42:17 -0500
commit2dfb8bf3be899a685b7ec8713145e578d3c20f5b (patch)
treed15920e73f26fce6f7feda284b12f9f252308d24 /arch
parentaf947cbf5c72c0071fc13ffc76d1e67a8b9e0fb6 (diff)
parentefb66e93d13da5a7b11b3a8dbb24a6fb29141752 (diff)
Merge tag 'v3.19-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt
Pull "ARM: rockchip: second batch of dts related changes" from Heiko Stuebner: - the dts part of the rk3288 smp support - rate init for rk3288 clocks - enablement of various peripherals - new boardfile for Haoyu Marsboard (rk3066 based) * tag 'v3.19-rockchip-dts2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: enable PWM on Radxa Rock ARM: dts: rockchip: fix invalid unit-address in rk3188.dtsi ARM: dts: rk3288: add VOP iommu nodes ARM: dts: rockchip: add reset for CPU nodes ARM: dts: rockchip: add intmem node for rk3288 smp support ARM: dts: rockchip: add pmu references to cpus nodes ARM: dts: rockchip: add serial aliases for rk3066 and rk3188 ARM: dts: rockchip: Add devicetree source for MarsBoard RK3066 ARM: dts: rockchip: Add EMAC Rockchip for RK3066 SoCs Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/rk3066a-marsboard.dts192
-rw-r--r--arch/arm/boot/dts/rk3066a.dtsi22
-rw-r--r--arch/arm/boot/dts/rk3188-radxarock.dts12
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi4
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi36
-rw-r--r--arch/arm/boot/dts/rk3xxx.dtsi4
7 files changed, 269 insertions, 2 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 21dde4370955..200b3448f1a9 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -376,6 +376,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
376dtb-$(CONFIG_ARCH_REALVIEW) += arm-realview-pb1176.dtb 376dtb-$(CONFIG_ARCH_REALVIEW) += arm-realview-pb1176.dtb
377dtb-$(CONFIG_ARCH_ROCKCHIP) += \ 377dtb-$(CONFIG_ARCH_ROCKCHIP) += \
378 rk3066a-bqcurie2.dtb \ 378 rk3066a-bqcurie2.dtb \
379 rk3066a-marsboard.dtb \
379 rk3188-radxarock.dtb \ 380 rk3188-radxarock.dtb \
380 rk3288-evb-act8846.dtb \ 381 rk3288-evb-act8846.dtb \
381 rk3288-evb-rk808.dtb 382 rk3288-evb-rk808.dtb
diff --git a/arch/arm/boot/dts/rk3066a-marsboard.dts b/arch/arm/boot/dts/rk3066a-marsboard.dts
new file mode 100644
index 000000000000..57489ee54022
--- /dev/null
+++ b/arch/arm/boot/dts/rk3066a-marsboard.dts
@@ -0,0 +1,192 @@
1/*
2 * Copyright (c) 2014 Romain Perier <romain.perier@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 = "MarsBoard RK3066";
48 compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
49
50 memory {
51 reg = <0x60000000 0x40000000>;
52 };
53
54 vcc_sd0: sdmmc-regulator {
55 compatible = "regulator-fixed";
56 regulator-name = "sdmmc-supply";
57 regulator-min-microvolt = <3000000>;
58 regulator-max-microvolt = <3000000>;
59 gpio = <&gpio3 7 GPIO_ACTIVE_LOW>;
60 startup-delay-us = <100000>;
61 vin-supply = <&vcc_io>;
62 };
63};
64
65&i2c1 {
66 status = "okay";
67 clock-frequency = <400000>;
68
69 tps: tps@2d {
70 reg = <0x2d>;
71
72 interrupt-parent = <&gpio6>;
73 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
74
75 vcc5-supply = <&vcc_io>;
76 vcc6-supply = <&vcc_io>;
77
78 regulators {
79 vcc_rtc: regulator@0 {
80 regulator-name = "vcc_rtc";
81 regulator-always-on;
82 };
83
84 vcc_io: regulator@1 {
85 regulator-name = "vcc_io";
86 regulator-always-on;
87 };
88
89 vdd_arm: regulator@2 {
90 regulator-name = "vdd_arm";
91 regulator-min-microvolt = <600000>;
92 regulator-max-microvolt = <1500000>;
93 regulator-boot-on;
94 regulator-always-on;
95 };
96
97 vcc_ddr: regulator@3 {
98 regulator-name = "vcc_ddr";
99 regulator-min-microvolt = <600000>;
100 regulator-max-microvolt = <1500000>;
101 regulator-boot-on;
102 regulator-always-on;
103 };
104
105 vcc18_cif: regulator@5 {
106 regulator-name = "vcc18_cif";
107 regulator-always-on;
108 };
109
110 vdd_11: regulator@6 {
111 regulator-name = "vdd_11";
112 regulator-always-on;
113 };
114
115 vcc_25: regulator@7 {
116 regulator-name = "vcc_25";
117 regulator-always-on;
118 };
119
120 vcc_18: regulator@8 {
121 regulator-name = "vcc_18";
122 regulator-always-on;
123 };
124
125 vcc25_hdmi: regulator@9 {
126 regulator-name = "vcc25_hdmi";
127 regulator-always-on;
128 };
129
130 vcca_33: regulator@10 {
131 regulator-name = "vcca_33";
132 regulator-always-on;
133 };
134
135 vcc_rmii: regulator@11 {
136 regulator-name = "vcc_rmii";
137 };
138
139 vcc28_cif: regulator@12 {
140 regulator-name = "vcc28_cif";
141 regulator-always-on;
142 };
143 };
144 };
145};
146
147/* must be included after &tps gets defined */
148#include "tps65910.dtsi"
149
150&emac {
151 status = "okay";
152
153 phy = <&phy0>;
154 phy-supply = <&vcc_rmii>;
155
156 pinctrl-names = "default";
157 pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&phy_int>;
158
159 phy0: ethernet-phy@0 {
160 reg = <0>;
161 interrupt-parent = <&gpio1>;
162 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
163 };
164};
165
166&pinctrl {
167 lan8720a {
168 phy_int: phy-int {
169 rockchip,pins = <RK_GPIO1 26 RK_FUNC_GPIO &pcfg_pull_none>;
170 };
171 };
172};
173
174&uart0 {
175 status = "okay";
176};
177
178&uart1 {
179 status = "okay";
180};
181
182&uart2 {
183 status = "okay";
184};
185
186&uart3 {
187 status = "okay";
188};
189
190&wdt {
191 status = "okay";
192};
diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi
index 0e99470db772..41ffd4951ef3 100644
--- a/arch/arm/boot/dts/rk3066a.dtsi
+++ b/arch/arm/boot/dts/rk3066a.dtsi
@@ -234,6 +234,24 @@
234 bias-disable; 234 bias-disable;
235 }; 235 };
236 236
237 emac {
238 emac_xfer: emac-xfer {
239 rockchip,pins = <RK_GPIO1 16 RK_FUNC_2 &pcfg_pull_none>, /* mac_clk */
240 <RK_GPIO1 17 RK_FUNC_2 &pcfg_pull_none>, /* tx_en */
241 <RK_GPIO1 18 RK_FUNC_2 &pcfg_pull_none>, /* txd1 */
242 <RK_GPIO1 19 RK_FUNC_2 &pcfg_pull_none>, /* txd0 */
243 <RK_GPIO1 20 RK_FUNC_2 &pcfg_pull_none>, /* rx_err */
244 <RK_GPIO1 21 RK_FUNC_2 &pcfg_pull_none>, /* crs_dvalid */
245 <RK_GPIO1 22 RK_FUNC_2 &pcfg_pull_none>, /* rxd1 */
246 <RK_GPIO1 23 RK_FUNC_2 &pcfg_pull_none>; /* rxd0 */
247 };
248
249 emac_mdio: emac-mdio {
250 rockchip,pins = <RK_GPIO1 24 RK_FUNC_2 &pcfg_pull_none>, /* mac_md */
251 <RK_GPIO1 25 RK_FUNC_2 &pcfg_pull_none>; /* mac_mdclk */
252 };
253 };
254
237 emmc { 255 emmc {
238 emmc_clk: emmc-clk { 256 emmc_clk: emmc-clk {
239 rockchip,pins = <RK_GPIO3 31 RK_FUNC_2 &pcfg_pull_default>; 257 rockchip,pins = <RK_GPIO3 31 RK_FUNC_2 &pcfg_pull_default>;
@@ -587,3 +605,7 @@
587&wdt { 605&wdt {
588 compatible = "rockchip,rk3066-wdt", "snps,dw-wdt"; 606 compatible = "rockchip,rk3066-wdt", "snps,dw-wdt";
589}; 607};
608
609&emac {
610 compatible = "rockchip,rk3066-emac";
611};
diff --git a/arch/arm/boot/dts/rk3188-radxarock.dts b/arch/arm/boot/dts/rk3188-radxarock.dts
index 0950a0524947..6eb62c053055 100644
--- a/arch/arm/boot/dts/rk3188-radxarock.dts
+++ b/arch/arm/boot/dts/rk3188-radxarock.dts
@@ -243,6 +243,18 @@
243 disable-wp; 243 disable-wp;
244}; 244};
245 245
246&pwm1 {
247 status = "okay";
248};
249
250&pwm2 {
251 status = "okay";
252};
253
254&pwm3 {
255 status = "okay";
256};
257
246&pinctrl { 258&pinctrl {
247 pcfg_output_low: pcfg-output-low { 259 pcfg_output_low: pcfg-output-low {
248 output-low; 260 output-low;
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index b24e04f6ccc7..1d4d79c6688d 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -111,7 +111,7 @@
111 #size-cells = <1>; 111 #size-cells = <1>;
112 ranges; 112 ranges;
113 113
114 gpio0: gpio0@0x2000a000 { 114 gpio0: gpio0@2000a000 {
115 compatible = "rockchip,rk3188-gpio-bank0"; 115 compatible = "rockchip,rk3188-gpio-bank0";
116 reg = <0x2000a000 0x100>; 116 reg = <0x2000a000 0x100>;
117 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; 117 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
@@ -124,7 +124,7 @@
124 #interrupt-cells = <2>; 124 #interrupt-cells = <2>;
125 }; 125 };
126 126
127 gpio1: gpio1@0x2003c000 { 127 gpio1: gpio1@2003c000 {
128 compatible = "rockchip,gpio-bank"; 128 compatible = "rockchip,gpio-bank";
129 reg = <0x2003c000 0x100>; 129 reg = <0x2003c000 0x100>;
130 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 130 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index cfc43789cac6..0f50d5d44345 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -46,11 +46,14 @@
46 cpus { 46 cpus {
47 #address-cells = <1>; 47 #address-cells = <1>;
48 #size-cells = <0>; 48 #size-cells = <0>;
49 enable-method = "rockchip,rk3066-smp";
50 rockchip,pmu = <&pmu>;
49 51
50 cpu0: cpu@500 { 52 cpu0: cpu@500 {
51 device_type = "cpu"; 53 device_type = "cpu";
52 compatible = "arm,cortex-a12"; 54 compatible = "arm,cortex-a12";
53 reg = <0x500>; 55 reg = <0x500>;
56 resets = <&cru SRST_CORE0>;
54 operating-points = < 57 operating-points = <
55 /* KHz uV */ 58 /* KHz uV */
56 1608000 1350000 59 1608000 1350000
@@ -73,16 +76,19 @@
73 device_type = "cpu"; 76 device_type = "cpu";
74 compatible = "arm,cortex-a12"; 77 compatible = "arm,cortex-a12";
75 reg = <0x501>; 78 reg = <0x501>;
79 resets = <&cru SRST_CORE1>;
76 }; 80 };
77 cpu@502 { 81 cpu@502 {
78 device_type = "cpu"; 82 device_type = "cpu";
79 compatible = "arm,cortex-a12"; 83 compatible = "arm,cortex-a12";
80 reg = <0x502>; 84 reg = <0x502>;
85 resets = <&cru SRST_CORE2>;
81 }; 86 };
82 cpu@503 { 87 cpu@503 {
83 device_type = "cpu"; 88 device_type = "cpu";
84 compatible = "arm,cortex-a12"; 89 compatible = "arm,cortex-a12";
85 reg = <0x503>; 90 reg = <0x503>;
91 resets = <&cru SRST_CORE3>;
86 }; 92 };
87 }; 93 };
88 94
@@ -462,6 +468,18 @@
462 status = "disabled"; 468 status = "disabled";
463 }; 469 };
464 470
471 bus_intmem@ff700000 {
472 compatible = "mmio-sram";
473 reg = <0xff700000 0x18000>;
474 #address-cells = <1>;
475 #size-cells = <1>;
476 ranges = <0 0xff700000 0x18000>;
477 smp-sram@0 {
478 compatible = "rockchip,rk3066-smp-sram";
479 reg = <0x00 0x10>;
480 };
481 };
482
465 pmu: power-management@ff730000 { 483 pmu: power-management@ff730000 {
466 compatible = "rockchip,rk3288-pmu", "syscon"; 484 compatible = "rockchip,rk3288-pmu", "syscon";
467 reg = <0xff730000 0x100>; 485 reg = <0xff730000 0x100>;
@@ -517,6 +535,24 @@
517 status = "disabled"; 535 status = "disabled";
518 }; 536 };
519 537
538 vopb_mmu: iommu@ff930300 {
539 compatible = "rockchip,iommu";
540 reg = <0xff930300 0x100>;
541 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
542 interrupt-names = "vopb_mmu";
543 #iommu-cells = <0>;
544 status = "disabled";
545 };
546
547 vopl_mmu: iommu@ff940300 {
548 compatible = "rockchip,iommu";
549 reg = <0xff940300 0x100>;
550 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
551 interrupt-names = "vopl_mmu";
552 #iommu-cells = <0>;
553 status = "disabled";
554 };
555
520 gic: interrupt-controller@ffc01000 { 556 gic: interrupt-controller@ffc01000 {
521 compatible = "arm,gic-400"; 557 compatible = "arm,gic-400";
522 interrupt-controller; 558 interrupt-controller;
diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 9ba92de511ca..87df6a8955aa 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -29,6 +29,10 @@
29 mshc0 = &emmc; 29 mshc0 = &emmc;
30 mshc1 = &mmc0; 30 mshc1 = &mmc0;
31 mshc2 = &mmc1; 31 mshc2 = &mmc1;
32 serial0 = &uart0;
33 serial1 = &uart1;
34 serial2 = &uart2;
35 serial3 = &uart3;
32 spi0 = &spi0; 36 spi0 = &spi0;
33 spi1 = &spi1; 37 spi1 = &spi1;
34 }; 38 };