blob: 8692d00c08c42d7e3c33e59b57abbd7f75a6c5fb [file] [log] [blame]
Kumar Gala8e8fff092005-09-03 15:55:34 -07001/*
Kumar Gala8e8fff092005-09-03 15:55:34 -07002 * PQ2 Device descriptions
3 *
Kumar Gala4c8d3d92005-11-13 16:06:30 -08004 * Maintainer: Kumar Gala <galak@kernel.crashing.org>
Kumar Gala8e8fff092005-09-03 15:55:34 -07005 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11
12#include <linux/init.h>
13#include <linux/module.h>
Russell Kingd052d1b2005-10-29 19:07:23 +010014#include <linux/platform_device.h>
Kumar Gala8e8fff092005-09-03 15:55:34 -070015#include <linux/ioport.h>
16#include <asm/cpm2.h>
17#include <asm/irq.h>
18#include <asm/ppc_sys.h>
Paul Mackerrasfd582ec2005-10-11 22:08:12 +100019#include <asm/machdep.h>
Kumar Gala8e8fff092005-09-03 15:55:34 -070020
21struct platform_device ppc_sys_platform_devices[] = {
22 [MPC82xx_CPM_FCC1] = {
23 .name = "fsl-cpm-fcc",
24 .id = 1,
25 .num_resources = 3,
26 .resource = (struct resource[]) {
27 {
28 .name = "fcc_regs",
29 .start = 0x11300,
30 .end = 0x1131f,
31 .flags = IORESOURCE_MEM,
32 },
33 {
34 .name = "fcc_pram",
35 .start = 0x8400,
36 .end = 0x84ff,
37 .flags = IORESOURCE_MEM,
38 },
39 {
40 .start = SIU_INT_FCC1,
41 .end = SIU_INT_FCC1,
42 .flags = IORESOURCE_IRQ,
43 },
44 },
45 },
46 [MPC82xx_CPM_FCC2] = {
47 .name = "fsl-cpm-fcc",
48 .id = 2,
49 .num_resources = 3,
50 .resource = (struct resource[]) {
51 {
52 .name = "fcc_regs",
53 .start = 0x11320,
54 .end = 0x1133f,
55 .flags = IORESOURCE_MEM,
56 },
57 {
58 .name = "fcc_pram",
59 .start = 0x8500,
60 .end = 0x85ff,
61 .flags = IORESOURCE_MEM,
62 },
63 {
64 .start = SIU_INT_FCC2,
65 .end = SIU_INT_FCC2,
66 .flags = IORESOURCE_IRQ,
67 },
68 },
69 },
70 [MPC82xx_CPM_FCC3] = {
71 .name = "fsl-cpm-fcc",
72 .id = 3,
73 .num_resources = 3,
74 .resource = (struct resource[]) {
75 {
76 .name = "fcc_regs",
77 .start = 0x11340,
78 .end = 0x1135f,
79 .flags = IORESOURCE_MEM,
80 },
81 {
82 .name = "fcc_pram",
83 .start = 0x8600,
84 .end = 0x86ff,
85 .flags = IORESOURCE_MEM,
86 },
87 {
88 .start = SIU_INT_FCC3,
89 .end = SIU_INT_FCC3,
90 .flags = IORESOURCE_IRQ,
91 },
92 },
93 },
94 [MPC82xx_CPM_I2C] = {
95 .name = "fsl-cpm-i2c",
96 .id = 1,
97 .num_resources = 3,
98 .resource = (struct resource[]) {
99 {
100 .name = "i2c_mem",
101 .start = 0x11860,
102 .end = 0x118BF,
103 .flags = IORESOURCE_MEM,
104 },
105 {
106 .name = "i2c_pram",
107 .start = 0x8afc,
108 .end = 0x8afd,
109 .flags = IORESOURCE_MEM,
110 },
111 {
112 .start = SIU_INT_I2C,
113 .end = SIU_INT_I2C,
114 .flags = IORESOURCE_IRQ,
115 },
116 },
117 },
118 [MPC82xx_CPM_SCC1] = {
119 .name = "fsl-cpm-scc",
120 .id = 1,
121 .num_resources = 3,
122 .resource = (struct resource[]) {
123 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400124 .name = "regs",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700125 .start = 0x11A00,
126 .end = 0x11A1F,
127 .flags = IORESOURCE_MEM,
128 },
129 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400130 .name = "pram",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700131 .start = 0x8000,
132 .end = 0x80ff,
133 .flags = IORESOURCE_MEM,
134 },
135 {
136 .start = SIU_INT_SCC1,
137 .end = SIU_INT_SCC1,
138 .flags = IORESOURCE_IRQ,
139 },
140 },
141 },
142 [MPC82xx_CPM_SCC2] = {
143 .name = "fsl-cpm-scc",
144 .id = 2,
145 .num_resources = 3,
146 .resource = (struct resource[]) {
147 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400148 .name = "regs",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700149 .start = 0x11A20,
150 .end = 0x11A3F,
151 .flags = IORESOURCE_MEM,
152 },
153 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400154 .name = "pram",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700155 .start = 0x8100,
156 .end = 0x81ff,
157 .flags = IORESOURCE_MEM,
158 },
159 {
160 .start = SIU_INT_SCC2,
161 .end = SIU_INT_SCC2,
162 .flags = IORESOURCE_IRQ,
163 },
164 },
165 },
166 [MPC82xx_CPM_SCC3] = {
167 .name = "fsl-cpm-scc",
168 .id = 3,
169 .num_resources = 3,
170 .resource = (struct resource[]) {
171 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400172 .name = "regs",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700173 .start = 0x11A40,
174 .end = 0x11A5F,
175 .flags = IORESOURCE_MEM,
176 },
177 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400178 .name = "pram",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700179 .start = 0x8200,
180 .end = 0x82ff,
181 .flags = IORESOURCE_MEM,
182 },
183 {
184 .start = SIU_INT_SCC3,
185 .end = SIU_INT_SCC3,
186 .flags = IORESOURCE_IRQ,
187 },
188 },
189 },
190 [MPC82xx_CPM_SCC4] = {
191 .name = "fsl-cpm-scc",
192 .id = 4,
193 .num_resources = 3,
194 .resource = (struct resource[]) {
195 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400196 .name = "regs",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700197 .start = 0x11A60,
198 .end = 0x11A7F,
199 .flags = IORESOURCE_MEM,
200 },
201 {
Vitaly Bordug8e30a9a2006-05-24 21:40:18 +0400202 .name = "pram",
Kumar Gala8e8fff092005-09-03 15:55:34 -0700203 .start = 0x8300,
204 .end = 0x83ff,
205 .flags = IORESOURCE_MEM,
206 },
207 {
208 .start = SIU_INT_SCC4,
209 .end = SIU_INT_SCC4,
210 .flags = IORESOURCE_IRQ,
211 },
212 },
213 },
214 [MPC82xx_CPM_SPI] = {
215 .name = "fsl-cpm-spi",
216 .id = 1,
217 .num_resources = 3,
218 .resource = (struct resource[]) {
219 {
220 .name = "spi_mem",
221 .start = 0x11AA0,
222 .end = 0x11AFF,
223 .flags = IORESOURCE_MEM,
224 },
225 {
226 .name = "spi_pram",
227 .start = 0x89fc,
228 .end = 0x89fd,
229 .flags = IORESOURCE_MEM,
230 },
231 {
232 .start = SIU_INT_SPI,
233 .end = SIU_INT_SPI,
234 .flags = IORESOURCE_IRQ,
235 },
236 },
237 },
238 [MPC82xx_CPM_MCC1] = {
239 .name = "fsl-cpm-mcc",
240 .id = 1,
241 .num_resources = 3,
242 .resource = (struct resource[]) {
243 {
244 .name = "mcc_mem",
245 .start = 0x11B30,
246 .end = 0x11B3F,
247 .flags = IORESOURCE_MEM,
248 },
249 {
250 .name = "mcc_pram",
251 .start = 0x8700,
252 .end = 0x877f,
253 .flags = IORESOURCE_MEM,
254 },
255 {
256 .start = SIU_INT_MCC1,
257 .end = SIU_INT_MCC1,
258 .flags = IORESOURCE_IRQ,
259 },
260 },
261 },
262 [MPC82xx_CPM_MCC2] = {
263 .name = "fsl-cpm-mcc",
264 .id = 2,
265 .num_resources = 3,
266 .resource = (struct resource[]) {
267 {
268 .name = "mcc_mem",
269 .start = 0x11B50,
270 .end = 0x11B5F,
271 .flags = IORESOURCE_MEM,
272 },
273 {
274 .name = "mcc_pram",
275 .start = 0x8800,
276 .end = 0x887f,
277 .flags = IORESOURCE_MEM,
278 },
279 {
280 .start = SIU_INT_MCC2,
281 .end = SIU_INT_MCC2,
282 .flags = IORESOURCE_IRQ,
283 },
284 },
285 },
286 [MPC82xx_CPM_SMC1] = {
287 .name = "fsl-cpm-smc",
288 .id = 1,
289 .num_resources = 3,
290 .resource = (struct resource[]) {
291 {
292 .name = "smc_mem",
293 .start = 0x11A80,
294 .end = 0x11A8F,
295 .flags = IORESOURCE_MEM,
296 },
297 {
298 .name = "smc_pram",
299 .start = 0x87fc,
300 .end = 0x87fd,
301 .flags = IORESOURCE_MEM,
302 },
303 {
304 .start = SIU_INT_SMC1,
305 .end = SIU_INT_SMC1,
306 .flags = IORESOURCE_IRQ,
307 },
308 },
309 },
310 [MPC82xx_CPM_SMC2] = {
311 .name = "fsl-cpm-smc",
312 .id = 2,
313 .num_resources = 3,
314 .resource = (struct resource[]) {
315 {
316 .name = "smc_mem",
317 .start = 0x11A90,
318 .end = 0x11A9F,
319 .flags = IORESOURCE_MEM,
320 },
321 {
322 .name = "smc_pram",
323 .start = 0x88fc,
324 .end = 0x88fd,
325 .flags = IORESOURCE_MEM,
326 },
327 {
328 .start = SIU_INT_SMC2,
329 .end = SIU_INT_SMC2,
330 .flags = IORESOURCE_IRQ,
331 },
332 },
333 },
334 [MPC82xx_CPM_USB] = {
335 .name = "fsl-cpm-usb",
336 .id = 1,
337 .num_resources = 3,
338 .resource = (struct resource[]) {
339 {
340 .name = "usb_mem",
341 .start = 0x11b60,
342 .end = 0x11b78,
343 .flags = IORESOURCE_MEM,
344 },
345 {
346 .name = "usb_pram",
347 .start = 0x8b00,
348 .end = 0x8bff,
349 .flags = IORESOURCE_MEM,
350 },
351 {
352 .start = SIU_INT_USB,
353 .end = SIU_INT_USB,
354 .flags = IORESOURCE_IRQ,
355 },
356
357 },
358 },
359 [MPC82xx_SEC1] = {
360 .name = "fsl-sec",
361 .id = 1,
362 .num_resources = 1,
363 .resource = (struct resource[]) {
364 {
365 .name = "sec_mem",
366 .start = 0x40000,
367 .end = 0x52fff,
368 .flags = IORESOURCE_MEM,
369 },
370 },
371 },
372};
373
374static int __init mach_mpc82xx_fixup(struct platform_device *pdev)
375{
376 ppc_sys_fixup_mem_resource(pdev, CPM_MAP_ADDR);
377 return 0;
378}
379
380static int __init mach_mpc82xx_init(void)
381{
382 if (ppc_md.progress)
383 ppc_md.progress("mach_mpc82xx_init:enter", 0);
384 ppc_sys_device_fixup = mach_mpc82xx_fixup;
385 return 0;
386}
387
388postcore_initcall(mach_mpc82xx_init);