blob: 2e1cfa00c25b4af5bd81f328f775471f9ed2bee9 [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>;
124 };
125
126 sdhci@ffe0e000 {
127 compatible = "calxeda,hb-sdhci";
128 reg = <0xffe0e000 0x1000>;
129 interrupts = <0 90 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500130 clocks = <&eclk>;
Rob Herring253d7ad2011-08-10 15:22:11 -0500131 };
132
133 ipc@fff20000 {
134 compatible = "arm,pl320", "arm,primecell";
135 reg = <0xfff20000 0x1000>;
136 interrupts = <0 7 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500137 clocks = <&pclk>;
138 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500139 };
140
141 gpioe: gpio@fff30000 {
142 #gpio-cells = <2>;
143 compatible = "arm,pl061", "arm,primecell";
144 gpio-controller;
145 reg = <0xfff30000 0x1000>;
146 interrupts = <0 14 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500147 clocks = <&pclk>;
148 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500149 };
150
151 gpiof: gpio@fff31000 {
152 #gpio-cells = <2>;
153 compatible = "arm,pl061", "arm,primecell";
154 gpio-controller;
155 reg = <0xfff31000 0x1000>;
156 interrupts = <0 15 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500157 clocks = <&pclk>;
158 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500159 };
160
161 gpiog: gpio@fff32000 {
162 #gpio-cells = <2>;
163 compatible = "arm,pl061", "arm,primecell";
164 gpio-controller;
165 reg = <0xfff32000 0x1000>;
166 interrupts = <0 16 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500167 clocks = <&pclk>;
168 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500169 };
170
171 gpioh: gpio@fff33000 {
172 #gpio-cells = <2>;
173 compatible = "arm,pl061", "arm,primecell";
174 gpio-controller;
175 reg = <0xfff33000 0x1000>;
176 interrupts = <0 17 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500177 clocks = <&pclk>;
178 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500179 };
180
181 timer {
182 compatible = "arm,sp804", "arm,primecell";
183 reg = <0xfff34000 0x1000>;
184 interrupts = <0 18 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500185 clocks = <&pclk>;
186 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500187 };
188
189 rtc@fff35000 {
190 compatible = "arm,pl031", "arm,primecell";
191 reg = <0xfff35000 0x1000>;
192 interrupts = <0 19 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500193 clocks = <&pclk>;
194 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500195 };
196
197 serial@fff36000 {
198 compatible = "arm,pl011", "arm,primecell";
199 reg = <0xfff36000 0x1000>;
200 interrupts = <0 20 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500201 clocks = <&pclk>;
202 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500203 };
204
205 smic@fff3a000 {
206 compatible = "ipmi-smic";
207 device_type = "ipmi";
208 reg = <0xfff3a000 0x1000>;
209 interrupts = <0 24 4>;
210 reg-size = <4>;
211 reg-spacing = <4>;
212 };
213
214 sregs@fff3c000 {
215 compatible = "calxeda,hb-sregs";
216 reg = <0xfff3c000 0x1000>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500217
218 clocks {
219 #address-cells = <1>;
220 #size-cells = <0>;
221
222 osc: oscillator {
223 #clock-cells = <0>;
224 compatible = "fixed-clock";
225 clock-frequency = <33333000>;
226 };
227
228 ddrpll: ddrpll {
229 #clock-cells = <0>;
230 compatible = "calxeda,hb-pll-clock";
231 clocks = <&osc>;
232 reg = <0x108>;
233 };
234
235 a9pll: a9pll {
236 #clock-cells = <0>;
237 compatible = "calxeda,hb-pll-clock";
238 clocks = <&osc>;
239 reg = <0x100>;
240 };
241
242 a9periphclk: a9periphclk {
243 #clock-cells = <0>;
244 compatible = "calxeda,hb-a9periph-clock";
245 clocks = <&a9pll>;
246 reg = <0x104>;
247 };
248
249 a9bclk: a9bclk {
250 #clock-cells = <0>;
251 compatible = "calxeda,hb-a9bus-clock";
252 clocks = <&a9pll>;
253 reg = <0x104>;
254 };
255
256 emmcpll: emmcpll {
257 #clock-cells = <0>;
258 compatible = "calxeda,hb-pll-clock";
259 clocks = <&osc>;
260 reg = <0x10C>;
261 };
262
263 eclk: eclk {
264 #clock-cells = <0>;
265 compatible = "calxeda,hb-emmc-clock";
266 clocks = <&emmcpll>;
267 reg = <0x114>;
268 };
269
270 pclk: pclk {
271 #clock-cells = <0>;
272 compatible = "fixed-clock";
273 clock-frequency = <150000000>;
274 };
275 };
Rob Herring253d7ad2011-08-10 15:22:11 -0500276 };
277
278 dma@fff3d000 {
279 compatible = "arm,pl330", "arm,primecell";
280 reg = <0xfff3d000 0x1000>;
281 interrupts = <0 92 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500282 clocks = <&pclk>;
283 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500284 };
Rob Herringbd0552e2011-12-05 08:35:55 -0600285
286 ethernet@fff50000 {
287 compatible = "calxeda,hb-xgmac";
288 reg = <0xfff50000 0x1000>;
289 interrupts = <0 77 4 0 78 4 0 79 4>;
290 };
291
292 ethernet@fff51000 {
293 compatible = "calxeda,hb-xgmac";
294 reg = <0xfff51000 0x1000>;
295 interrupts = <0 80 4 0 81 4 0 82 4>;
296 };
Rob Herring253d7ad2011-08-10 15:22:11 -0500297 };
298};