blob: 5204cf73c2d81540459b4442fd675d596c8789e5 [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>;
Mark Langsdorf8996b892012-09-06 16:03:30 -0500124 calxeda,port-phys = <&combophy5 0 &combophy0 0
125 &combophy0 1 &combophy0 2
126 &combophy0 3>;
Rob Herring253d7ad2011-08-10 15:22:11 -0500127 };
128
129 sdhci@ffe0e000 {
130 compatible = "calxeda,hb-sdhci";
131 reg = <0xffe0e000 0x1000>;
132 interrupts = <0 90 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500133 clocks = <&eclk>;
Rob Herring253d7ad2011-08-10 15:22:11 -0500134 };
135
Rob Herringa1b01ed2012-06-13 12:01:55 -0500136 memory-controller@fff00000 {
137 compatible = "calxeda,hb-ddr-ctrl";
138 reg = <0xfff00000 0x1000>;
139 interrupts = <0 91 4>;
140 };
141
Rob Herring253d7ad2011-08-10 15:22:11 -0500142 ipc@fff20000 {
143 compatible = "arm,pl320", "arm,primecell";
144 reg = <0xfff20000 0x1000>;
145 interrupts = <0 7 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500146 clocks = <&pclk>;
147 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500148 };
149
150 gpioe: gpio@fff30000 {
151 #gpio-cells = <2>;
152 compatible = "arm,pl061", "arm,primecell";
153 gpio-controller;
154 reg = <0xfff30000 0x1000>;
155 interrupts = <0 14 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500156 clocks = <&pclk>;
157 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500158 };
159
160 gpiof: gpio@fff31000 {
161 #gpio-cells = <2>;
162 compatible = "arm,pl061", "arm,primecell";
163 gpio-controller;
164 reg = <0xfff31000 0x1000>;
165 interrupts = <0 15 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500166 clocks = <&pclk>;
167 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500168 };
169
170 gpiog: gpio@fff32000 {
171 #gpio-cells = <2>;
172 compatible = "arm,pl061", "arm,primecell";
173 gpio-controller;
174 reg = <0xfff32000 0x1000>;
175 interrupts = <0 16 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500176 clocks = <&pclk>;
177 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500178 };
179
180 gpioh: gpio@fff33000 {
181 #gpio-cells = <2>;
182 compatible = "arm,pl061", "arm,primecell";
183 gpio-controller;
184 reg = <0xfff33000 0x1000>;
185 interrupts = <0 17 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500186 clocks = <&pclk>;
187 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500188 };
189
190 timer {
191 compatible = "arm,sp804", "arm,primecell";
192 reg = <0xfff34000 0x1000>;
193 interrupts = <0 18 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500194 clocks = <&pclk>;
195 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500196 };
197
198 rtc@fff35000 {
199 compatible = "arm,pl031", "arm,primecell";
200 reg = <0xfff35000 0x1000>;
201 interrupts = <0 19 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500202 clocks = <&pclk>;
203 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500204 };
205
206 serial@fff36000 {
207 compatible = "arm,pl011", "arm,primecell";
208 reg = <0xfff36000 0x1000>;
209 interrupts = <0 20 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500210 clocks = <&pclk>;
211 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500212 };
213
214 smic@fff3a000 {
215 compatible = "ipmi-smic";
216 device_type = "ipmi";
217 reg = <0xfff3a000 0x1000>;
218 interrupts = <0 24 4>;
219 reg-size = <4>;
220 reg-spacing = <4>;
221 };
222
223 sregs@fff3c000 {
224 compatible = "calxeda,hb-sregs";
225 reg = <0xfff3c000 0x1000>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500226
227 clocks {
228 #address-cells = <1>;
229 #size-cells = <0>;
230
231 osc: oscillator {
232 #clock-cells = <0>;
233 compatible = "fixed-clock";
234 clock-frequency = <33333000>;
235 };
236
237 ddrpll: ddrpll {
238 #clock-cells = <0>;
239 compatible = "calxeda,hb-pll-clock";
240 clocks = <&osc>;
241 reg = <0x108>;
242 };
243
244 a9pll: a9pll {
245 #clock-cells = <0>;
246 compatible = "calxeda,hb-pll-clock";
247 clocks = <&osc>;
248 reg = <0x100>;
249 };
250
251 a9periphclk: a9periphclk {
252 #clock-cells = <0>;
253 compatible = "calxeda,hb-a9periph-clock";
254 clocks = <&a9pll>;
255 reg = <0x104>;
256 };
257
258 a9bclk: a9bclk {
259 #clock-cells = <0>;
260 compatible = "calxeda,hb-a9bus-clock";
261 clocks = <&a9pll>;
262 reg = <0x104>;
263 };
264
265 emmcpll: emmcpll {
266 #clock-cells = <0>;
267 compatible = "calxeda,hb-pll-clock";
268 clocks = <&osc>;
269 reg = <0x10C>;
270 };
271
272 eclk: eclk {
273 #clock-cells = <0>;
274 compatible = "calxeda,hb-emmc-clock";
275 clocks = <&emmcpll>;
276 reg = <0x114>;
277 };
278
279 pclk: pclk {
280 #clock-cells = <0>;
281 compatible = "fixed-clock";
282 clock-frequency = <150000000>;
283 };
284 };
Rob Herring253d7ad2011-08-10 15:22:11 -0500285 };
286
Rob Herring69154d02012-06-11 21:32:14 -0500287 sregs@fff3c200 {
288 compatible = "calxeda,hb-sregs-l2-ecc";
289 reg = <0xfff3c200 0x100>;
290 interrupts = <0 71 4 0 72 4>;
291 };
292
Rob Herring253d7ad2011-08-10 15:22:11 -0500293 dma@fff3d000 {
294 compatible = "arm,pl330", "arm,primecell";
295 reg = <0xfff3d000 0x1000>;
296 interrupts = <0 92 4>;
Rob Herring8d4d9f52012-03-13 18:19:19 -0500297 clocks = <&pclk>;
298 clock-names = "apb_pclk";
Rob Herring253d7ad2011-08-10 15:22:11 -0500299 };
Rob Herringbd0552e2011-12-05 08:35:55 -0600300
301 ethernet@fff50000 {
302 compatible = "calxeda,hb-xgmac";
303 reg = <0xfff50000 0x1000>;
304 interrupts = <0 77 4 0 78 4 0 79 4>;
305 };
306
307 ethernet@fff51000 {
308 compatible = "calxeda,hb-xgmac";
309 reg = <0xfff51000 0x1000>;
310 interrupts = <0 80 4 0 81 4 0 82 4>;
311 };
Mark Langsdorf8996b892012-09-06 16:03:30 -0500312
313 combophy0: combo-phy@fff58000 {
314 compatible = "calxeda,hb-combophy";
315 #phy-cells = <1>;
316 reg = <0xfff58000 0x1000>;
317 phydev = <5>;
318 };
319
320 combophy5: combo-phy@fff5d000 {
321 compatible = "calxeda,hb-combophy";
322 #phy-cells = <1>;
323 reg = <0xfff5d000 0x1000>;
324 phydev = <31>;
325 };
Rob Herring253d7ad2011-08-10 15:22:11 -0500326 };
327};