Merge master.kernel.org:/home/rmk/linux-2.6-drvmodel
[linux-2.6.git] / arch / ppc / syslib / pq2_devices.c
blobe960fe9353256b82e611da8226988d679b2ba433
1 /*
2 * arch/ppc/syslib/pq2_devices.c
4 * PQ2 Device descriptions
6 * Maintainer: Kumar Gala <kumar.gala@freescale.com>
8 * This file is licensed under the terms of the GNU General Public License
9 * version 2. This program is licensed "as is" without any warranty of any
10 * kind, whether express or implied.
14 #include <linux/init.h>
15 #include <linux/module.h>
16 #include <linux/platform_device.h>
17 #include <linux/ioport.h>
18 #include <asm/cpm2.h>
19 #include <asm/irq.h>
20 #include <asm/ppc_sys.h>
21 #include <asm/machdep.h>
23 struct platform_device ppc_sys_platform_devices[] = {
24 [MPC82xx_CPM_FCC1] = {
25 .name = "fsl-cpm-fcc",
26 .id = 1,
27 .num_resources = 3,
28 .resource = (struct resource[]) {
30 .name = "fcc_regs",
31 .start = 0x11300,
32 .end = 0x1131f,
33 .flags = IORESOURCE_MEM,
36 .name = "fcc_pram",
37 .start = 0x8400,
38 .end = 0x84ff,
39 .flags = IORESOURCE_MEM,
42 .start = SIU_INT_FCC1,
43 .end = SIU_INT_FCC1,
44 .flags = IORESOURCE_IRQ,
48 [MPC82xx_CPM_FCC2] = {
49 .name = "fsl-cpm-fcc",
50 .id = 2,
51 .num_resources = 3,
52 .resource = (struct resource[]) {
54 .name = "fcc_regs",
55 .start = 0x11320,
56 .end = 0x1133f,
57 .flags = IORESOURCE_MEM,
60 .name = "fcc_pram",
61 .start = 0x8500,
62 .end = 0x85ff,
63 .flags = IORESOURCE_MEM,
66 .start = SIU_INT_FCC2,
67 .end = SIU_INT_FCC2,
68 .flags = IORESOURCE_IRQ,
72 [MPC82xx_CPM_FCC3] = {
73 .name = "fsl-cpm-fcc",
74 .id = 3,
75 .num_resources = 3,
76 .resource = (struct resource[]) {
78 .name = "fcc_regs",
79 .start = 0x11340,
80 .end = 0x1135f,
81 .flags = IORESOURCE_MEM,
84 .name = "fcc_pram",
85 .start = 0x8600,
86 .end = 0x86ff,
87 .flags = IORESOURCE_MEM,
90 .start = SIU_INT_FCC3,
91 .end = SIU_INT_FCC3,
92 .flags = IORESOURCE_IRQ,
96 [MPC82xx_CPM_I2C] = {
97 .name = "fsl-cpm-i2c",
98 .id = 1,
99 .num_resources = 3,
100 .resource = (struct resource[]) {
102 .name = "i2c_mem",
103 .start = 0x11860,
104 .end = 0x118BF,
105 .flags = IORESOURCE_MEM,
108 .name = "i2c_pram",
109 .start = 0x8afc,
110 .end = 0x8afd,
111 .flags = IORESOURCE_MEM,
114 .start = SIU_INT_I2C,
115 .end = SIU_INT_I2C,
116 .flags = IORESOURCE_IRQ,
120 [MPC82xx_CPM_SCC1] = {
121 .name = "fsl-cpm-scc",
122 .id = 1,
123 .num_resources = 3,
124 .resource = (struct resource[]) {
126 .name = "scc_mem",
127 .start = 0x11A00,
128 .end = 0x11A1F,
129 .flags = IORESOURCE_MEM,
132 .name = "scc_pram",
133 .start = 0x8000,
134 .end = 0x80ff,
135 .flags = IORESOURCE_MEM,
138 .start = SIU_INT_SCC1,
139 .end = SIU_INT_SCC1,
140 .flags = IORESOURCE_IRQ,
144 [MPC82xx_CPM_SCC2] = {
145 .name = "fsl-cpm-scc",
146 .id = 2,
147 .num_resources = 3,
148 .resource = (struct resource[]) {
150 .name = "scc_mem",
151 .start = 0x11A20,
152 .end = 0x11A3F,
153 .flags = IORESOURCE_MEM,
156 .name = "scc_pram",
157 .start = 0x8100,
158 .end = 0x81ff,
159 .flags = IORESOURCE_MEM,
162 .start = SIU_INT_SCC2,
163 .end = SIU_INT_SCC2,
164 .flags = IORESOURCE_IRQ,
168 [MPC82xx_CPM_SCC3] = {
169 .name = "fsl-cpm-scc",
170 .id = 3,
171 .num_resources = 3,
172 .resource = (struct resource[]) {
174 .name = "scc_mem",
175 .start = 0x11A40,
176 .end = 0x11A5F,
177 .flags = IORESOURCE_MEM,
180 .name = "scc_pram",
181 .start = 0x8200,
182 .end = 0x82ff,
183 .flags = IORESOURCE_MEM,
186 .start = SIU_INT_SCC3,
187 .end = SIU_INT_SCC3,
188 .flags = IORESOURCE_IRQ,
192 [MPC82xx_CPM_SCC4] = {
193 .name = "fsl-cpm-scc",
194 .id = 4,
195 .num_resources = 3,
196 .resource = (struct resource[]) {
198 .name = "scc_mem",
199 .start = 0x11A60,
200 .end = 0x11A7F,
201 .flags = IORESOURCE_MEM,
204 .name = "scc_pram",
205 .start = 0x8300,
206 .end = 0x83ff,
207 .flags = IORESOURCE_MEM,
210 .start = SIU_INT_SCC4,
211 .end = SIU_INT_SCC4,
212 .flags = IORESOURCE_IRQ,
216 [MPC82xx_CPM_SPI] = {
217 .name = "fsl-cpm-spi",
218 .id = 1,
219 .num_resources = 3,
220 .resource = (struct resource[]) {
222 .name = "spi_mem",
223 .start = 0x11AA0,
224 .end = 0x11AFF,
225 .flags = IORESOURCE_MEM,
228 .name = "spi_pram",
229 .start = 0x89fc,
230 .end = 0x89fd,
231 .flags = IORESOURCE_MEM,
234 .start = SIU_INT_SPI,
235 .end = SIU_INT_SPI,
236 .flags = IORESOURCE_IRQ,
240 [MPC82xx_CPM_MCC1] = {
241 .name = "fsl-cpm-mcc",
242 .id = 1,
243 .num_resources = 3,
244 .resource = (struct resource[]) {
246 .name = "mcc_mem",
247 .start = 0x11B30,
248 .end = 0x11B3F,
249 .flags = IORESOURCE_MEM,
252 .name = "mcc_pram",
253 .start = 0x8700,
254 .end = 0x877f,
255 .flags = IORESOURCE_MEM,
258 .start = SIU_INT_MCC1,
259 .end = SIU_INT_MCC1,
260 .flags = IORESOURCE_IRQ,
264 [MPC82xx_CPM_MCC2] = {
265 .name = "fsl-cpm-mcc",
266 .id = 2,
267 .num_resources = 3,
268 .resource = (struct resource[]) {
270 .name = "mcc_mem",
271 .start = 0x11B50,
272 .end = 0x11B5F,
273 .flags = IORESOURCE_MEM,
276 .name = "mcc_pram",
277 .start = 0x8800,
278 .end = 0x887f,
279 .flags = IORESOURCE_MEM,
282 .start = SIU_INT_MCC2,
283 .end = SIU_INT_MCC2,
284 .flags = IORESOURCE_IRQ,
288 [MPC82xx_CPM_SMC1] = {
289 .name = "fsl-cpm-smc",
290 .id = 1,
291 .num_resources = 3,
292 .resource = (struct resource[]) {
294 .name = "smc_mem",
295 .start = 0x11A80,
296 .end = 0x11A8F,
297 .flags = IORESOURCE_MEM,
300 .name = "smc_pram",
301 .start = 0x87fc,
302 .end = 0x87fd,
303 .flags = IORESOURCE_MEM,
306 .start = SIU_INT_SMC1,
307 .end = SIU_INT_SMC1,
308 .flags = IORESOURCE_IRQ,
312 [MPC82xx_CPM_SMC2] = {
313 .name = "fsl-cpm-smc",
314 .id = 2,
315 .num_resources = 3,
316 .resource = (struct resource[]) {
318 .name = "smc_mem",
319 .start = 0x11A90,
320 .end = 0x11A9F,
321 .flags = IORESOURCE_MEM,
324 .name = "smc_pram",
325 .start = 0x88fc,
326 .end = 0x88fd,
327 .flags = IORESOURCE_MEM,
330 .start = SIU_INT_SMC2,
331 .end = SIU_INT_SMC2,
332 .flags = IORESOURCE_IRQ,
336 [MPC82xx_CPM_USB] = {
337 .name = "fsl-cpm-usb",
338 .id = 1,
339 .num_resources = 3,
340 .resource = (struct resource[]) {
342 .name = "usb_mem",
343 .start = 0x11b60,
344 .end = 0x11b78,
345 .flags = IORESOURCE_MEM,
348 .name = "usb_pram",
349 .start = 0x8b00,
350 .end = 0x8bff,
351 .flags = IORESOURCE_MEM,
354 .start = SIU_INT_USB,
355 .end = SIU_INT_USB,
356 .flags = IORESOURCE_IRQ,
361 [MPC82xx_SEC1] = {
362 .name = "fsl-sec",
363 .id = 1,
364 .num_resources = 1,
365 .resource = (struct resource[]) {
367 .name = "sec_mem",
368 .start = 0x40000,
369 .end = 0x52fff,
370 .flags = IORESOURCE_MEM,
376 static int __init mach_mpc82xx_fixup(struct platform_device *pdev)
378 ppc_sys_fixup_mem_resource(pdev, CPM_MAP_ADDR);
379 return 0;
382 static int __init mach_mpc82xx_init(void)
384 if (ppc_md.progress)
385 ppc_md.progress("mach_mpc82xx_init:enter", 0);
386 ppc_sys_device_fixup = mach_mpc82xx_fixup;
387 return 0;
390 postcore_initcall(mach_mpc82xx_init);