Merge in v2.6.14 by hand
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / ppc / syslib / pq2_devices.c
1 /*
2 * arch/ppc/syslib/pq2_devices.c
3 *
4 * PQ2 Device descriptions
5 *
6 * Maintainer: Kumar Gala <kumar.gala@freescale.com>
7 *
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.
11 */
12
13
14 #include <linux/init.h>
15 #include <linux/module.h>
16 #include <linux/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>
22
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[]) {
29 {
30 .name = "fcc_regs",
31 .start = 0x11300,
32 .end = 0x1131f,
33 .flags = IORESOURCE_MEM,
34 },
35 {
36 .name = "fcc_pram",
37 .start = 0x8400,
38 .end = 0x84ff,
39 .flags = IORESOURCE_MEM,
40 },
41 {
42 .start = SIU_INT_FCC1,
43 .end = SIU_INT_FCC1,
44 .flags = IORESOURCE_IRQ,
45 },
46 },
47 },
48 [MPC82xx_CPM_FCC2] = {
49 .name = "fsl-cpm-fcc",
50 .id = 2,
51 .num_resources = 3,
52 .resource = (struct resource[]) {
53 {
54 .name = "fcc_regs",
55 .start = 0x11320,
56 .end = 0x1133f,
57 .flags = IORESOURCE_MEM,
58 },
59 {
60 .name = "fcc_pram",
61 .start = 0x8500,
62 .end = 0x85ff,
63 .flags = IORESOURCE_MEM,
64 },
65 {
66 .start = SIU_INT_FCC2,
67 .end = SIU_INT_FCC2,
68 .flags = IORESOURCE_IRQ,
69 },
70 },
71 },
72 [MPC82xx_CPM_FCC3] = {
73 .name = "fsl-cpm-fcc",
74 .id = 3,
75 .num_resources = 3,
76 .resource = (struct resource[]) {
77 {
78 .name = "fcc_regs",
79 .start = 0x11340,
80 .end = 0x1135f,
81 .flags = IORESOURCE_MEM,
82 },
83 {
84 .name = "fcc_pram",
85 .start = 0x8600,
86 .end = 0x86ff,
87 .flags = IORESOURCE_MEM,
88 },
89 {
90 .start = SIU_INT_FCC3,
91 .end = SIU_INT_FCC3,
92 .flags = IORESOURCE_IRQ,
93 },
94 },
95 },
96 [MPC82xx_CPM_I2C] = {
97 .name = "fsl-cpm-i2c",
98 .id = 1,
99 .num_resources = 3,
100 .resource = (struct resource[]) {
101 {
102 .name = "i2c_mem",
103 .start = 0x11860,
104 .end = 0x118BF,
105 .flags = IORESOURCE_MEM,
106 },
107 {
108 .name = "i2c_pram",
109 .start = 0x8afc,
110 .end = 0x8afd,
111 .flags = IORESOURCE_MEM,
112 },
113 {
114 .start = SIU_INT_I2C,
115 .end = SIU_INT_I2C,
116 .flags = IORESOURCE_IRQ,
117 },
118 },
119 },
120 [MPC82xx_CPM_SCC1] = {
121 .name = "fsl-cpm-scc",
122 .id = 1,
123 .num_resources = 3,
124 .resource = (struct resource[]) {
125 {
126 .name = "scc_mem",
127 .start = 0x11A00,
128 .end = 0x11A1F,
129 .flags = IORESOURCE_MEM,
130 },
131 {
132 .name = "scc_pram",
133 .start = 0x8000,
134 .end = 0x80ff,
135 .flags = IORESOURCE_MEM,
136 },
137 {
138 .start = SIU_INT_SCC1,
139 .end = SIU_INT_SCC1,
140 .flags = IORESOURCE_IRQ,
141 },
142 },
143 },
144 [MPC82xx_CPM_SCC2] = {
145 .name = "fsl-cpm-scc",
146 .id = 2,
147 .num_resources = 3,
148 .resource = (struct resource[]) {
149 {
150 .name = "scc_mem",
151 .start = 0x11A20,
152 .end = 0x11A3F,
153 .flags = IORESOURCE_MEM,
154 },
155 {
156 .name = "scc_pram",
157 .start = 0x8100,
158 .end = 0x81ff,
159 .flags = IORESOURCE_MEM,
160 },
161 {
162 .start = SIU_INT_SCC2,
163 .end = SIU_INT_SCC2,
164 .flags = IORESOURCE_IRQ,
165 },
166 },
167 },
168 [MPC82xx_CPM_SCC3] = {
169 .name = "fsl-cpm-scc",
170 .id = 3,
171 .num_resources = 3,
172 .resource = (struct resource[]) {
173 {
174 .name = "scc_mem",
175 .start = 0x11A40,
176 .end = 0x11A5F,
177 .flags = IORESOURCE_MEM,
178 },
179 {
180 .name = "scc_pram",
181 .start = 0x8200,
182 .end = 0x82ff,
183 .flags = IORESOURCE_MEM,
184 },
185 {
186 .start = SIU_INT_SCC3,
187 .end = SIU_INT_SCC3,
188 .flags = IORESOURCE_IRQ,
189 },
190 },
191 },
192 [MPC82xx_CPM_SCC4] = {
193 .name = "fsl-cpm-scc",
194 .id = 4,
195 .num_resources = 3,
196 .resource = (struct resource[]) {
197 {
198 .name = "scc_mem",
199 .start = 0x11A60,
200 .end = 0x11A7F,
201 .flags = IORESOURCE_MEM,
202 },
203 {
204 .name = "scc_pram",
205 .start = 0x8300,
206 .end = 0x83ff,
207 .flags = IORESOURCE_MEM,
208 },
209 {
210 .start = SIU_INT_SCC4,
211 .end = SIU_INT_SCC4,
212 .flags = IORESOURCE_IRQ,
213 },
214 },
215 },
216 [MPC82xx_CPM_SPI] = {
217 .name = "fsl-cpm-spi",
218 .id = 1,
219 .num_resources = 3,
220 .resource = (struct resource[]) {
221 {
222 .name = "spi_mem",
223 .start = 0x11AA0,
224 .end = 0x11AFF,
225 .flags = IORESOURCE_MEM,
226 },
227 {
228 .name = "spi_pram",
229 .start = 0x89fc,
230 .end = 0x89fd,
231 .flags = IORESOURCE_MEM,
232 },
233 {
234 .start = SIU_INT_SPI,
235 .end = SIU_INT_SPI,
236 .flags = IORESOURCE_IRQ,
237 },
238 },
239 },
240 [MPC82xx_CPM_MCC1] = {
241 .name = "fsl-cpm-mcc",
242 .id = 1,
243 .num_resources = 3,
244 .resource = (struct resource[]) {
245 {
246 .name = "mcc_mem",
247 .start = 0x11B30,
248 .end = 0x11B3F,
249 .flags = IORESOURCE_MEM,
250 },
251 {
252 .name = "mcc_pram",
253 .start = 0x8700,
254 .end = 0x877f,
255 .flags = IORESOURCE_MEM,
256 },
257 {
258 .start = SIU_INT_MCC1,
259 .end = SIU_INT_MCC1,
260 .flags = IORESOURCE_IRQ,
261 },
262 },
263 },
264 [MPC82xx_CPM_MCC2] = {
265 .name = "fsl-cpm-mcc",
266 .id = 2,
267 .num_resources = 3,
268 .resource = (struct resource[]) {
269 {
270 .name = "mcc_mem",
271 .start = 0x11B50,
272 .end = 0x11B5F,
273 .flags = IORESOURCE_MEM,
274 },
275 {
276 .name = "mcc_pram",
277 .start = 0x8800,
278 .end = 0x887f,
279 .flags = IORESOURCE_MEM,
280 },
281 {
282 .start = SIU_INT_MCC2,
283 .end = SIU_INT_MCC2,
284 .flags = IORESOURCE_IRQ,
285 },
286 },
287 },
288 [MPC82xx_CPM_SMC1] = {
289 .name = "fsl-cpm-smc",
290 .id = 1,
291 .num_resources = 3,
292 .resource = (struct resource[]) {
293 {
294 .name = "smc_mem",
295 .start = 0x11A80,
296 .end = 0x11A8F,
297 .flags = IORESOURCE_MEM,
298 },
299 {
300 .name = "smc_pram",
301 .start = 0x87fc,
302 .end = 0x87fd,
303 .flags = IORESOURCE_MEM,
304 },
305 {
306 .start = SIU_INT_SMC1,
307 .end = SIU_INT_SMC1,
308 .flags = IORESOURCE_IRQ,
309 },
310 },
311 },
312 [MPC82xx_CPM_SMC2] = {
313 .name = "fsl-cpm-smc",
314 .id = 2,
315 .num_resources = 3,
316 .resource = (struct resource[]) {
317 {
318 .name = "smc_mem",
319 .start = 0x11A90,
320 .end = 0x11A9F,
321 .flags = IORESOURCE_MEM,
322 },
323 {
324 .name = "smc_pram",
325 .start = 0x88fc,
326 .end = 0x88fd,
327 .flags = IORESOURCE_MEM,
328 },
329 {
330 .start = SIU_INT_SMC2,
331 .end = SIU_INT_SMC2,
332 .flags = IORESOURCE_IRQ,
333 },
334 },
335 },
336 [MPC82xx_CPM_USB] = {
337 .name = "fsl-cpm-usb",
338 .id = 1,
339 .num_resources = 3,
340 .resource = (struct resource[]) {
341 {
342 .name = "usb_mem",
343 .start = 0x11b60,
344 .end = 0x11b78,
345 .flags = IORESOURCE_MEM,
346 },
347 {
348 .name = "usb_pram",
349 .start = 0x8b00,
350 .end = 0x8bff,
351 .flags = IORESOURCE_MEM,
352 },
353 {
354 .start = SIU_INT_USB,
355 .end = SIU_INT_USB,
356 .flags = IORESOURCE_IRQ,
357 },
358
359 },
360 },
361 [MPC82xx_SEC1] = {
362 .name = "fsl-sec",
363 .id = 1,
364 .num_resources = 1,
365 .resource = (struct resource[]) {
366 {
367 .name = "sec_mem",
368 .start = 0x40000,
369 .end = 0x52fff,
370 .flags = IORESOURCE_MEM,
371 },
372 },
373 },
374 };
375
376 static int __init mach_mpc82xx_fixup(struct platform_device *pdev)
377 {
378 ppc_sys_fixup_mem_resource(pdev, CPM_MAP_ADDR);
379 return 0;
380 }
381
382 static int __init mach_mpc82xx_init(void)
383 {
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;
388 }
389
390 postcore_initcall(mach_mpc82xx_init);