aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2014-10-01 03:30:45 -0400
committerLinus Walleij <linus.walleij@linaro.org>2014-10-22 07:49:04 -0400
commitf123a66cbdc47e31bcb11b59f935bed89343a8ed (patch)
treeafdd7a74529aaef990f9ba70bae2b66a57810be0
parentfa6e2eec15a58ce6a47ad7e8a3ccf3ef917cca35 (diff)
ARM: realview: add device tree and bindings for PB1176
As a first example, add device tree and bindings for the RealView PB1176. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--Documentation/devicetree/bindings/arm/arm-boards65
-rw-r--r--Documentation/devicetree/bindings/arm/gic.txt1
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/arm-realview-pb1176.dts247
4 files changed, 314 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/arm/arm-boards b/Documentation/devicetree/bindings/arm/arm-boards
index c554ed3d44fb..556c8665fdbf 100644
--- a/Documentation/devicetree/bindings/arm/arm-boards
+++ b/Documentation/devicetree/bindings/arm/arm-boards
@@ -92,3 +92,68 @@ Required nodes:
92- core-module: the root node to the Versatile platforms must have 92- core-module: the root node to the Versatile platforms must have
93 a core-module with regs and the compatible strings 93 a core-module with regs and the compatible strings
94 "arm,core-module-versatile", "syscon" 94 "arm,core-module-versatile", "syscon"
95
96ARM RealView Boards
97-------------------
98The RealView boards cover tailored evaluation boards that are used to explore
99the ARM11 and Cortex A-8 and Cortex A-9 processors.
100
101Required properties (in root node):
102 /* RealView Emulation Baseboard */
103 compatible = "arm,realview-eb";
104 /* RealView Platform Baseboard for ARM1176JZF-S */
105 compatible = "arm,realview-pb1176";
106 /* RealView Platform Baseboard for ARM11 MPCore */
107 compatible = "arm,realview-pb11mp";
108 /* RealView Platform Baseboard for Cortex A-8 */
109 compatible = "arm,realview-pba8";
110 /* RealView Platform Baseboard Explore for Cortex A-9 */
111 compatible = "arm,realview-pbx";
112
113Required nodes:
114
115- soc: some node of the RealView platforms must be the SoC
116 node that contain the SoC-specific devices, withe the compatible
117 string set to one of these tuples:
118 "arm,realview-eb-soc", "simple-bus"
119 "arm,realview-pb1176-soc", "simple-bus"
120 "arm,realview-pb11mp-soc", "simple-bus"
121 "arm,realview-pba8-soc", "simple-bus"
122 "arm,realview-pbx-soc", "simple-bus"
123
124- syscon: some subnode of the RealView SoC node must be a
125 system controller node pointing to the control registers,
126 with the compatible string set to one of these tuples:
127 "arm,realview-eb-syscon", "syscon"
128 "arm,realview-pb1176-syscon", "syscon"
129 "arm,realview-pb11mp-syscon", "syscon"
130 "arm,realview-pba8-syscon", "syscon"
131 "arm,realview-pbx-syscon", "syscon"
132
133 Required properties for the system controller:
134 - regs: the location and size of the system controller registers,
135 one range of 0x1000 bytes.
136
137Example:
138
139/dts-v1/;
140#include <dt-bindings/interrupt-controller/irq.h>
141#include "skeleton.dtsi"
142
143/ {
144 model = "ARM RealView PB1176 with device tree";
145 compatible = "arm,realview-pb1176";
146
147 soc {
148 #address-cells = <1>;
149 #size-cells = <1>;
150 compatible = "arm,realview-pb1176-soc", "simple-bus";
151 ranges;
152
153 syscon: syscon@10000000 {
154 compatible = "arm,realview-syscon", "syscon";
155 reg = <0x10000000 0x1000>;
156 };
157
158 };
159};
diff --git a/Documentation/devicetree/bindings/arm/gic.txt b/Documentation/devicetree/bindings/arm/gic.txt
index c7d2fa156678..b38608af66db 100644
--- a/Documentation/devicetree/bindings/arm/gic.txt
+++ b/Documentation/devicetree/bindings/arm/gic.txt
@@ -17,6 +17,7 @@ Main node required properties:
17 "arm,cortex-a7-gic" 17 "arm,cortex-a7-gic"
18 "arm,arm11mp-gic" 18 "arm,arm11mp-gic"
19 "brcm,brahma-b15-gic" 19 "brcm,brahma-b15-gic"
20 "arm,arm1176jzf-devchip-gic"
20- interrupt-controller : Identifies the node as an interrupt controller 21- interrupt-controller : Identifies the node as an interrupt controller
21- #interrupt-cells : Specifies the number of cells needed to encode an 22- #interrupt-cells : Specifies the number of cells needed to encode an
22 interrupt source. The type shall be a <u32> and the value shall be 3. 23 interrupt source. The type shall be a <u32> and the value shall be 3.
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 38c89cafa1ab..ab4435a59cd1 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -363,6 +363,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
363 qcom-msm8660-surf.dtb \ 363 qcom-msm8660-surf.dtb \
364 qcom-msm8960-cdp.dtb \ 364 qcom-msm8960-cdp.dtb \
365 qcom-msm8974-sony-xperia-honami.dtb 365 qcom-msm8974-sony-xperia-honami.dtb
366dtb-$(CONFIG_ARCH_REALVIEW) += arm-realview-pb1176.dtb
366dtb-$(CONFIG_ARCH_ROCKCHIP) += \ 367dtb-$(CONFIG_ARCH_ROCKCHIP) += \
367 rk3066a-bqcurie2.dtb \ 368 rk3066a-bqcurie2.dtb \
368 rk3188-radxarock.dtb \ 369 rk3188-radxarock.dtb \
diff --git a/arch/arm/boot/dts/arm-realview-pb1176.dts b/arch/arm/boot/dts/arm-realview-pb1176.dts
new file mode 100644
index 000000000000..3135939cd13f
--- /dev/null
+++ b/arch/arm/boot/dts/arm-realview-pb1176.dts
@@ -0,0 +1,247 @@
1/*
2 * Copyright 2014 Linaro Ltd
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23/dts-v1/;
24#include <dt-bindings/interrupt-controller/irq.h>
25#include "skeleton.dtsi"
26
27/ {
28 model = "ARM RealView PB1176";
29 compatible = "arm,realview-pb1176";
30
31 chosen { };
32
33 aliases {
34 serial0 = &pb1176_serial0;
35 serial1 = &pb1176_serial1;
36 serial2 = &pb1176_serial2;
37 serial3 = &pb1176_serial3;
38 };
39
40 memory {
41 /* 128 MiB memory @ 0x0 */
42 reg = <0x00000000 0x08000000>;
43 };
44
45 xtal24mhz: xtal24mhz@24M {
46 #clock-cells = <0>;
47 compatible = "fixed-clock";
48 clock-frequency = <24000000>;
49 };
50
51 timclk: timclk@1M {
52 #clock-cells = <0>;
53 compatible = "fixed-factor-clock";
54 clock-div = <24>;
55 clock-mult = <1>;
56 clocks = <&xtal24mhz>;
57 };
58
59 uartclk: uartclk@24M {
60 #clock-cells = <0>;
61 compatible = "fixed-factor-clock";
62 clock-div = <1>;
63 clock-mult = <1>;
64 clocks = <&xtal24mhz>;
65 };
66
67 /* FIXME: this actually hangs off the PLL clocks */
68 pclk: pclk@0 {
69 #clock-cells = <0>;
70 compatible = "fixed-clock";
71 clock-frequency = <0>;
72 };
73
74 soc {
75 #address-cells = <1>;
76 #size-cells = <1>;
77 compatible = "arm,realview-pb1176-soc", "simple-bus";
78 regmap = <&syscon>;
79 ranges;
80
81 syscon: syscon@10000000 {
82 compatible = "arm,realview-pb1176-syscon", "syscon";
83 reg = <0x10000000 0x1000>;
84
85 led@08.0 {
86 compatible = "register-bit-led";
87 offset = <0x08>;
88 mask = <0x01>;
89 label = "versatile:0";
90 linux,default-trigger = "heartbeat";
91 default-state = "on";
92 };
93 led@08.1 {
94 compatible = "register-bit-led";
95 offset = <0x08>;
96 mask = <0x02>;
97 label = "versatile:1";
98 linux,default-trigger = "mmc0";
99 default-state = "off";
100 };
101 led@08.2 {
102 compatible = "register-bit-led";
103 offset = <0x08>;
104 mask = <0x04>;
105 label = "versatile:2";
106 linux,default-trigger = "cpu0";
107 default-state = "off";
108 };
109 led@08.3 {
110 compatible = "register-bit-led";
111 offset = <0x08>;
112 mask = <0x08>;
113 label = "versatile:3";
114 default-state = "off";
115 };
116 led@08.4 {
117 compatible = "register-bit-led";
118 offset = <0x08>;
119 mask = <0x10>;
120 label = "versatile:4";
121 default-state = "off";
122 };
123 led@08.5 {
124 compatible = "register-bit-led";
125 offset = <0x08>;
126 mask = <0x20>;
127 label = "versatile:5";
128 default-state = "off";
129 };
130 led@08.6 {
131 compatible = "register-bit-led";
132 offset = <0x08>;
133 mask = <0x40>;
134 label = "versatile:6";
135 default-state = "off";
136 };
137 led@08.7 {
138 compatible = "register-bit-led";
139 offset = <0x08>;
140 mask = <0x80>;
141 label = "versatile:7";
142 default-state = "off";
143 };
144 };
145
146 /* Primary DevChip GIC synthesized with the CPU */
147 intc_dc1176: interrupt-controller@10120000 {
148 compatible = "arm,arm1176jzf-devchip-gic", "arm,arm11mp-gic";
149 #interrupt-cells = <3>;
150 #address-cells = <1>;
151 interrupt-controller;
152 reg = <0x10121000 0x1000>,
153 <0x10120000 0x100>;
154 };
155
156 /* This GIC on the board is cascaded off the DevChip GIC */
157 intc_pb1176: interrupt-controller@10040000 {
158 compatible = "arm,arm1176jzf-devchip-gic", "arm,arm11mp-gic";
159 #interrupt-cells = <3>;
160 #address-cells = <1>;
161 interrupt-controller;
162 reg = <0x10041000 0x1000>,
163 <0x10040000 0x100>;
164 interrupt-parent = <&intc_dc1176>;
165 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
166 };
167
168 L2: l2-cache {
169 compatible = "arm,l220-cache";
170 reg = <0x10110000 0x1000>;
171 interrupt-parent = <&intc_dc1176>;
172 interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>;
173 cache-unified;
174 cache-level = <2>;
175 /*
176 * Override default cache size, sets and
177 * associativity as these may be erroneously set
178 * up by boot loader(s).
179 */
180 arm,override-auxreg;
181 cache-size = <131072>; // 128kB
182 cache-sets = <512>;
183 cache-line-size = <32>;
184 };
185
186 pmu {
187 compatible = "arm,arm1176-pmu";
188 interrupt-parent = <&intc_dc1176>;
189 interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
190 };
191
192 timer01: timer@10104000 {
193 compatible = "arm,sp804", "arm,primecell";
194 reg = <0x10104000 0x1000>;
195 interrupt-parent = <&intc_dc1176>;
196 interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>, <0 9 IRQ_TYPE_LEVEL_HIGH>;
197 clocks = <&timclk>, <&timclk>, <&pclk>;
198 clock-names = "timer1", "timer2", "apb_pclk";
199 };
200
201 timer23: timer@10105000 {
202 compatible = "arm,sp804", "arm,primecell";
203 reg = <0x10105000 0x1000>;
204 interrupt-parent = <&intc_dc1176>;
205 interrupts = <0 10 IRQ_TYPE_LEVEL_HIGH>;
206 arm,sp804-has-irq = <1>;
207 clocks = <&timclk>, <&timclk>, <&pclk>;
208 clock-names = "timer1", "timer2", "apb_pclk";
209 };
210
211 pb1176_serial0: serial@1010c000 {
212 compatible = "arm,pl011", "arm,primecell";
213 reg = <0x1010c000 0x1000>;
214 interrupt-parent = <&intc_dc1176>;
215 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
216 clocks = <&uartclk>, <&pclk>;
217 clock-names = "uartclk", "apb_pclk";
218 };
219
220 pb1176_serial1: serial@1010d000 {
221 compatible = "arm,pl011", "arm,primecell";
222 reg = <0x1010d000 0x1000>;
223 interrupt-parent = <&intc_dc1176>;
224 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
225 clocks = <&uartclk>, <&pclk>;
226 clock-names = "uartclk", "apb_pclk";
227 };
228
229 pb1176_serial2: serial@1010e000 {
230 compatible = "arm,pl011", "arm,primecell";
231 reg = <0x1010e000 0x1000>;
232 interrupt-parent = <&intc_dc1176>;
233 interrupts = <0 20 IRQ_TYPE_LEVEL_HIGH>;
234 clocks = <&uartclk>, <&pclk>;
235 clock-names = "uartclk", "apb_pclk";
236 };
237
238 pb1176_serial3: serial@1010f000 {
239 compatible = "arm,pl011", "arm,primecell";
240 reg = <0x1010f000 0x1000>;
241 interrupt-parent = <&intc_dc1176>;
242 interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
243 clocks = <&uartclk>, <&pclk>;
244 clock-names = "uartclk", "apb_pclk";
245 };
246 };
247};