[IA64] Limit the maximum NODEDATA_ALIGN() offset
[linux-2.6/libata-dev.git] / arch / ppc / syslib / mpc52xx_devices.c
blobda3c74bfdc9271cb637c9fb90d09b4f0e93724a4
1 /*
2 * arch/ppc/syslib/mpc52xx_devices.c
4 * Freescale MPC52xx device descriptions
7 * Maintainer : Sylvain Munaut <tnt@246tNt.com>
9 * Copyright (C) 2005 Sylvain Munaut <tnt@246tNt.com>
11 * This file is licensed under the terms of the GNU General Public License
12 * version 2. This program is licensed "as is" without any warranty of any
13 * kind, whether express or implied.
16 #include <linux/fsl_devices.h>
17 #include <linux/resource.h>
18 #include <linux/platform_device.h>
19 #include <asm/mpc52xx.h>
20 #include <asm/ppc_sys.h>
23 static u64 mpc52xx_dma_mask = 0xffffffffULL;
25 static struct fsl_i2c_platform_data mpc52xx_fsl_i2c_pdata = {
26 .device_flags = FSL_I2C_DEV_CLOCK_5200,
30 /* We use relative offsets for IORESOURCE_MEM to be independent from the
31 * MBAR location at compile time
34 /* TODO Add the BestComm initiator channel to the device definitions,
35 possibly using IORESOURCE_DMA. But that's when BestComm is ready ... */
37 struct platform_device ppc_sys_platform_devices[] = {
38 [MPC52xx_MSCAN1] = {
39 .name = "mpc52xx-mscan",
40 .id = 0,
41 .num_resources = 2,
42 .resource = (struct resource[]) {
44 .start = 0x0900,
45 .end = 0x097f,
46 .flags = IORESOURCE_MEM,
49 .start = MPC52xx_MSCAN1_IRQ,
50 .end = MPC52xx_MSCAN1_IRQ,
51 .flags = IORESOURCE_IRQ,
55 [MPC52xx_MSCAN2] = {
56 .name = "mpc52xx-mscan",
57 .id = 1,
58 .num_resources = 2,
59 .resource = (struct resource[]) {
61 .start = 0x0980,
62 .end = 0x09ff,
63 .flags = IORESOURCE_MEM,
66 .start = MPC52xx_MSCAN2_IRQ,
67 .end = MPC52xx_MSCAN2_IRQ,
68 .flags = IORESOURCE_IRQ,
72 [MPC52xx_SPI] = {
73 .name = "mpc52xx-spi",
74 .id = -1,
75 .num_resources = 3,
76 .resource = (struct resource[]) {
78 .start = 0x0f00,
79 .end = 0x0f1f,
80 .flags = IORESOURCE_MEM,
83 .name = "modf",
84 .start = MPC52xx_SPI_MODF_IRQ,
85 .end = MPC52xx_SPI_MODF_IRQ,
86 .flags = IORESOURCE_IRQ,
89 .name = "spif",
90 .start = MPC52xx_SPI_SPIF_IRQ,
91 .end = MPC52xx_SPI_SPIF_IRQ,
92 .flags = IORESOURCE_IRQ,
96 [MPC52xx_USB] = {
97 .name = "ppc-soc-ohci",
98 .id = -1,
99 .num_resources = 2,
100 .dev.dma_mask = &mpc52xx_dma_mask,
101 .dev.coherent_dma_mask = 0xffffffffULL,
102 .resource = (struct resource[]) {
104 .start = 0x1000,
105 .end = 0x10ff,
106 .flags = IORESOURCE_MEM,
109 .start = MPC52xx_USB_IRQ,
110 .end = MPC52xx_USB_IRQ,
111 .flags = IORESOURCE_IRQ,
115 [MPC52xx_BDLC] = {
116 .name = "mpc52xx-bdlc",
117 .id = -1,
118 .num_resources = 2,
119 .resource = (struct resource[]) {
121 .start = 0x1300,
122 .end = 0x130f,
123 .flags = IORESOURCE_MEM,
126 .start = MPC52xx_BDLC_IRQ,
127 .end = MPC52xx_BDLC_IRQ,
128 .flags = IORESOURCE_IRQ,
132 [MPC52xx_PSC1] = {
133 .name = "mpc52xx-psc",
134 .id = 0,
135 .num_resources = 2,
136 .resource = (struct resource[]) {
138 .start = 0x2000,
139 .end = 0x209f,
140 .flags = IORESOURCE_MEM,
143 .start = MPC52xx_PSC1_IRQ,
144 .end = MPC52xx_PSC1_IRQ,
145 .flags = IORESOURCE_IRQ,
149 [MPC52xx_PSC2] = {
150 .name = "mpc52xx-psc",
151 .id = 1,
152 .num_resources = 2,
153 .resource = (struct resource[]) {
155 .start = 0x2200,
156 .end = 0x229f,
157 .flags = IORESOURCE_MEM,
160 .start = MPC52xx_PSC2_IRQ,
161 .end = MPC52xx_PSC2_IRQ,
162 .flags = IORESOURCE_IRQ,
166 [MPC52xx_PSC3] = {
167 .name = "mpc52xx-psc",
168 .id = 2,
169 .num_resources = 2,
170 .resource = (struct resource[]) {
172 .start = 0x2400,
173 .end = 0x249f,
174 .flags = IORESOURCE_MEM,
177 .start = MPC52xx_PSC3_IRQ,
178 .end = MPC52xx_PSC3_IRQ,
179 .flags = IORESOURCE_IRQ,
183 [MPC52xx_PSC4] = {
184 .name = "mpc52xx-psc",
185 .id = 3,
186 .num_resources = 2,
187 .resource = (struct resource[]) {
189 .start = 0x2600,
190 .end = 0x269f,
191 .flags = IORESOURCE_MEM,
194 .start = MPC52xx_PSC4_IRQ,
195 .end = MPC52xx_PSC4_IRQ,
196 .flags = IORESOURCE_IRQ,
200 [MPC52xx_PSC5] = {
201 .name = "mpc52xx-psc",
202 .id = 4,
203 .num_resources = 2,
204 .resource = (struct resource[]) {
206 .start = 0x2800,
207 .end = 0x289f,
208 .flags = IORESOURCE_MEM,
211 .start = MPC52xx_PSC5_IRQ,
212 .end = MPC52xx_PSC5_IRQ,
213 .flags = IORESOURCE_IRQ,
217 [MPC52xx_PSC6] = {
218 .name = "mpc52xx-psc",
219 .id = 5,
220 .num_resources = 2,
221 .resource = (struct resource[]) {
223 .start = 0x2c00,
224 .end = 0x2c9f,
225 .flags = IORESOURCE_MEM,
228 .start = MPC52xx_PSC6_IRQ,
229 .end = MPC52xx_PSC6_IRQ,
230 .flags = IORESOURCE_IRQ,
234 [MPC52xx_FEC] = {
235 .name = "mpc52xx-fec",
236 .id = -1,
237 .num_resources = 2,
238 .resource = (struct resource[]) {
240 .start = 0x3000,
241 .end = 0x33ff,
242 .flags = IORESOURCE_MEM,
245 .start = MPC52xx_FEC_IRQ,
246 .end = MPC52xx_FEC_IRQ,
247 .flags = IORESOURCE_IRQ,
251 [MPC52xx_ATA] = {
252 .name = "mpc52xx-ata",
253 .id = -1,
254 .num_resources = 2,
255 .resource = (struct resource[]) {
257 .start = 0x3a00,
258 .end = 0x3aff,
259 .flags = IORESOURCE_MEM,
262 .start = MPC52xx_ATA_IRQ,
263 .end = MPC52xx_ATA_IRQ,
264 .flags = IORESOURCE_IRQ,
268 [MPC52xx_I2C1] = {
269 .name = "fsl-i2c",
270 .id = 0,
271 .dev.platform_data = &mpc52xx_fsl_i2c_pdata,
272 .num_resources = 2,
273 .resource = (struct resource[]) {
275 .start = 0x3d00,
276 .end = 0x3d1f,
277 .flags = IORESOURCE_MEM,
280 .start = MPC52xx_I2C1_IRQ,
281 .end = MPC52xx_I2C1_IRQ,
282 .flags = IORESOURCE_IRQ,
286 [MPC52xx_I2C2] = {
287 .name = "fsl-i2c",
288 .id = 1,
289 .dev.platform_data = &mpc52xx_fsl_i2c_pdata,
290 .num_resources = 2,
291 .resource = (struct resource[]) {
293 .start = 0x3d40,
294 .end = 0x3d5f,
295 .flags = IORESOURCE_MEM,
298 .start = MPC52xx_I2C2_IRQ,
299 .end = MPC52xx_I2C2_IRQ,
300 .flags = IORESOURCE_IRQ,
307 static int __init mach_mpc52xx_fixup(struct platform_device *pdev)
309 ppc_sys_fixup_mem_resource(pdev, MPC52xx_MBAR);
310 return 0;
313 static int __init mach_mpc52xx_init(void)
315 ppc_sys_device_fixup = mach_mpc52xx_fixup;
316 return 0;
319 postcore_initcall(mach_mpc52xx_init);