blob: 7414577c177fce867038a717b29cb3c3ea3545fe [file] [log] [blame]
Rob Herring253d7ad2011-08-10 15:22:11 -05001/*
Rob Herring8d4d9f52012-03-13 18:19:19 -05002 * Copyright 2011-2012 Calxeda, Inc.
Rob Herring253d7ad2011-08-10 15:22:11 -05003 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17/dts-v1/;
18
19/* First 4KB has pen for secondary cores. */
20/memreserve/ 0x00000000 0x0001000;
21
22/ {
23 model = "Calxeda Highbank";
24 compatible = "calxeda,highbank";
25 #address-cells = <1>;
26 #size-cells = <1>;
Rob Herring8d4d9f52012-03-13 18:19:19 -050027 clock-ranges;
Rob Herring253d7ad2011-08-10 15:22:11 -050028
29 cpus {
30 #address-cells = <1>;
31 #size-cells = <0>;
32
33 cpu@0 {
34 compatible = "arm,cortex-a9";
35 reg = <0>;
36 next-level-cache = <&L2>;
Rob Herring8d4d9f52012-03-13 18:19:19 -050037 clocks = <&a9pll>;
38 clock-names = "cpu";
Rob Herring253d7ad2011-08-10 15:22:11 -050039 };
40
41 cpu@1 {
42 compatible = "arm,cortex-a9";
43 reg = <1>;
44 next-level-cache = <&L2>;
Rob Herring8d4d9f52012-03-13 18:19:19 -050045 clocks = <&a9pll>;
46 clock-names = "cpu";
Rob Herring253d7ad2011-08-10 15:22:11 -050047 };
48
49 cpu@2 {
50 compatible = "arm,cortex-a9";
51 reg = <2>;
52 next-level-cache = <&L2>;
Rob Herring8d4d9f52012-03-13 18:19:19 -050053 clocks = <&a9pll>;
54 clock-names = "cpu";
Rob Herring253d7ad2011-08-10 15:22:11 -050055 };
56
57 cpu@3 {
58 compatible = "arm,cortex-a9";
59 reg = <3>;
60 next-level-cache = <&L2>;
Rob Herring8d4d9f52012-03-13 18:19:19 -050061 clocks = <&a9pll>;
62 clock-names = "cpu";
Rob Herring253d7ad2011-08-10 15:22:11 -050063 };
64 };
65
66 memory {
67 name = "memory";
68 device_type = "memory";
69 reg = <0x00000000 0xff900000>;
70 };
71
72 chosen {
73 bootargs = "console=ttyAMA0";
74 };
75
76 soc {
77 #address-cells = <1>;
78 #size-cells = <1>;
79 compatible = "simple-bus";
80 interrupt-parent = <&intc>;
81 ranges;
82
83 timer@fff10600 {
Marc Zyngier7ac9b9e2012-01-10 19:44:19 +000084 compatible = "arm,cortex-a9-twd-timer";
Rob Herring253d7ad2011-08-10 15:22:11 -050085 reg = <0xfff10600 0x20>;
Marc Zyngier7ac9b9e2012-01-10 19:44:19 +000086 interrupts = <1 13 0xf01>;
Rob Herring8d4d9f52012-03-13 18:19:19 -050087 clocks = <&a9periphclk>;
Rob Herring253d7ad2011-08-10 15:22:11 -050088 };
89
90 watchdog@fff10620 {
Marc Zyngier7ac9b9e2012-01-10 19:44:19 +000091 compatible = "arm,cortex-a9-twd-wdt";
Rob Herring253d7ad2011-08-10 15:22:11 -050092 reg = <0xfff10620 0x20>;
Marc Zyngier7ac9b9e2012-01-10 19:44:19 +000093 interrupts = <1 14 0xf01>;
Rob Herring8d4d9f52012-03-13 18:19:19 -050094 clocks = <&a9periphclk>;
Rob Herring253d7ad2011-08-10 15:22:11 -050095 };
96
97 intc: interrupt-controller@fff11000 {
98 compatible = "arm,cortex-a9-gic";
99 #interrupt-cells = <3>;
100 #size-cells = <0>;
101 #address-cells = <1>;
102 interrupt-controller;
Rob Herring253d7ad2011-08-10 15:22:11 -0500103 reg = <0xfff11000 0x1000>,
104 <0xfff10100 0x100>;
105 };
106
107 L2: l2-cache {
108 compatible = "arm,pl310-cache";
109 reg = <0xfff12000 0x1000>;
110 interrupts = <0 70 4>;
111 cache-unified;
112 cache-level = <2>;
113 };
114
115 pmu {
116 compatible = "arm,cortex-a9-pmu";
117 interrupts = <0 76 4 0 75 4 0 74 4 0 73 4>;
118 };
119
120 sata@ffe08000 {
121 compatible = "calxeda,hb-ahci";
122 reg = <0xffe08000 0x10000>;
123 interrupts = <0 83 4>;
Rob Herring1dc737c2012-08-21 12:31:06 +0200124 dma-coherent;
Rob Herring253d7ad2011-08-10 15:22:11 -0500125 };
126
127 sdhci@ffe0e000 {
128 compatible = "calxeda,hb-sdhci";
129 reg = <0xffe0e000 0x1000>;
130 interrupts = <0 90 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500131 clocks = <&eclk>;
Rob Herring253d7ad2011-08-10 15:22:11 -0500132 };
133
Rob Herringa1b01ed2012-06-13 12:01:55 -0500134 memory-controller@fff00000 {
135 compatible = "calxeda,hb-ddr-ctrl";
136 reg = <0xfff00000 0x1000>;
137 interrupts = <0 91 4>;
138 };
139
Rob Herring253d7ad2011-08-10 15:22:11 -0500140 ipc@fff20000 {
141 compatible = "arm,pl320", "arm,primecell";
142 reg = <0xfff20000 0x1000>;
143 interrupts = <0 7 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500144 clocks = <&pclk>;
145 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500146 };
147
148 gpioe: gpio@fff30000 {
149 #gpio-cells = <2>;
150 compatible = "arm,pl061", "arm,primecell";
151 gpio-controller;
152 reg = <0xfff30000 0x1000>;
153 interrupts = <0 14 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500154 clocks = <&pclk>;
155 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500156 };
157
158 gpiof: gpio@fff31000 {
159 #gpio-cells = <2>;
160 compatible = "arm,pl061", "arm,primecell";
161 gpio-controller;
162 reg = <0xfff31000 0x1000>;
163 interrupts = <0 15 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500164 clocks = <&pclk>;
165 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500166 };
167
168 gpiog: gpio@fff32000 {
169 #gpio-cells = <2>;
170 compatible = "arm,pl061", "arm,primecell";
171 gpio-controller;
172 reg = <0xfff32000 0x1000>;
173 interrupts = <0 16 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500174 clocks = <&pclk>;
175 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500176 };
177
178 gpioh: gpio@fff33000 {
179 #gpio-cells = <2>;
180 compatible = "arm,pl061", "arm,primecell";
181 gpio-controller;
182 reg = <0xfff33000 0x1000>;
183 interrupts = <0 17 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500184 clocks = <&pclk>;
185 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500186 };
187
188 timer {
189 compatible = "arm,sp804", "arm,primecell";
190 reg = <0xfff34000 0x1000>;
191 interrupts = <0 18 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500192 clocks = <&pclk>;
193 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500194 };
195
196 rtc@fff35000 {
197 compatible = "arm,pl031", "arm,primecell";
198 reg = <0xfff35000 0x1000>;
199 interrupts = <0 19 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500200 clocks = <&pclk>;
201 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500202 };
203
204 serial@fff36000 {
205 compatible = "arm,pl011", "arm,primecell";
206 reg = <0xfff36000 0x1000>;
207 interrupts = <0 20 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500208 clocks = <&pclk>;
209 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500210 };
211
212 smic@fff3a000 {
213 compatible = "ipmi-smic";
214 device_type = "ipmi";
215 reg = <0xfff3a000 0x1000>;
216 interrupts = <0 24 4>;
217 reg-size = <4>;
218 reg-spacing = <4>;
219 };
220
221 sregs@fff3c000 {
222 compatible = "calxeda,hb-sregs";
223 reg = <0xfff3c000 0x1000>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500224
225 clocks {
226 #address-cells = <1>;
227 #size-cells = <0>;
228
229 osc: oscillator {
230 #clock-cells = <0>;
231 compatible = "fixed-clock";
232 clock-frequency = <33333000>;
233 };
234
235 ddrpll: ddrpll {
236 #clock-cells = <0>;
237 compatible = "calxeda,hb-pll-clock";
238 clocks = <&osc>;
239 reg = <0x108>;
240 };
241
242 a9pll: a9pll {
243 #clock-cells = <0>;
244 compatible = "calxeda,hb-pll-clock";
245 clocks = <&osc>;
246 reg = <0x100>;
247 };
248
249 a9periphclk: a9periphclk {
250 #clock-cells = <0>;
251 compatible = "calxeda,hb-a9periph-clock";
252 clocks = <&a9pll>;
253 reg = <0x104>;
254 };
255
256 a9bclk: a9bclk {
257 #clock-cells = <0>;
258 compatible = "calxeda,hb-a9bus-clock";
259 clocks = <&a9pll>;
260 reg = <0x104>;
261 };
262
263 emmcpll: emmcpll {
264 #clock-cells = <0>;
265 compatible = "calxeda,hb-pll-clock";
266 clocks = <&osc>;
267 reg = <0x10C>;
268 };
269
270 eclk: eclk {
271 #clock-cells = <0>;
272 compatible = "calxeda,hb-emmc-clock";
273 clocks = <&emmcpll>;
274 reg = <0x114>;
275 };
276
277 pclk: pclk {
278 #clock-cells = <0>;
279 compatible = "fixed-clock";
280 clock-frequency = <150000000>;
281 };
282 };
Rob Herring253d7ad2011-08-10 15:22:11 -0500283 };
284
Rob Herring69154d02012-06-11 21:32:14 -0500285 sregs@fff3c200 {
286 compatible = "calxeda,hb-sregs-l2-ecc";
287 reg = <0xfff3c200 0x100>;
288 interrupts = <0 71 4 0 72 4>;
289 };
290
Rob Herring253d7ad2011-08-10 15:22:11 -0500291 dma@fff3d000 {
292 compatible = "arm,pl330", "arm,primecell";
293 reg = <0xfff3d000 0x1000>;
294 interrupts = <0 92 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500295 clocks = <&pclk>;
296 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500297 };
Rob Herringbd0552e2011-12-05 08:35:55 -0600298
299 ethernet@fff50000 {
300 compatible = "calxeda,hb-xgmac";
301 reg = <0xfff50000 0x1000>;
302 interrupts = <0 77 4 0 78 4 0 79 4>;
303 };
304
305 ethernet@fff51000 {
306 compatible = "calxeda,hb-xgmac";
307 reg = <0xfff51000 0x1000>;
308 interrupts = <0 80 4 0 81 4 0 82 4>;
309 };
Rob Herring253d7ad2011-08-10 15:22:11 -0500310 };
311};