Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.22-rc7 317 lines 6.1 kB view raw
1/* 2 * Freescale MPC52xx device descriptions 3 * 4 * 5 * Maintainer : Sylvain Munaut <tnt@246tNt.com> 6 * 7 * Copyright (C) 2005 Sylvain Munaut <tnt@246tNt.com> 8 * 9 * This file is licensed under the terms of the GNU General Public License 10 * version 2. This program is licensed "as is" without any warranty of any 11 * kind, whether express or implied. 12 */ 13 14#include <linux/fsl_devices.h> 15#include <linux/resource.h> 16#include <linux/platform_device.h> 17#include <asm/mpc52xx.h> 18#include <asm/ppc_sys.h> 19 20 21static u64 mpc52xx_dma_mask = 0xffffffffULL; 22 23static struct fsl_i2c_platform_data mpc52xx_fsl_i2c_pdata = { 24 .device_flags = FSL_I2C_DEV_CLOCK_5200, 25}; 26 27 28/* We use relative offsets for IORESOURCE_MEM to be independent from the 29 * MBAR location at compile time 30 */ 31 32/* TODO Add the BestComm initiator channel to the device definitions, 33 possibly using IORESOURCE_DMA. But that's when BestComm is ready ... */ 34 35struct platform_device ppc_sys_platform_devices[] = { 36 [MPC52xx_MSCAN1] = { 37 .name = "mpc52xx-mscan", 38 .id = 0, 39 .num_resources = 2, 40 .resource = (struct resource[]) { 41 { 42 .start = 0x0900, 43 .end = 0x097f, 44 .flags = IORESOURCE_MEM, 45 }, 46 { 47 .start = MPC52xx_MSCAN1_IRQ, 48 .end = MPC52xx_MSCAN1_IRQ, 49 .flags = IORESOURCE_IRQ, 50 }, 51 }, 52 }, 53 [MPC52xx_MSCAN2] = { 54 .name = "mpc52xx-mscan", 55 .id = 1, 56 .num_resources = 2, 57 .resource = (struct resource[]) { 58 { 59 .start = 0x0980, 60 .end = 0x09ff, 61 .flags = IORESOURCE_MEM, 62 }, 63 { 64 .start = MPC52xx_MSCAN2_IRQ, 65 .end = MPC52xx_MSCAN2_IRQ, 66 .flags = IORESOURCE_IRQ, 67 }, 68 }, 69 }, 70 [MPC52xx_SPI] = { 71 .name = "mpc52xx-spi", 72 .id = -1, 73 .num_resources = 3, 74 .resource = (struct resource[]) { 75 { 76 .start = 0x0f00, 77 .end = 0x0f1f, 78 .flags = IORESOURCE_MEM, 79 }, 80 { 81 .name = "modf", 82 .start = MPC52xx_SPI_MODF_IRQ, 83 .end = MPC52xx_SPI_MODF_IRQ, 84 .flags = IORESOURCE_IRQ, 85 }, 86 { 87 .name = "spif", 88 .start = MPC52xx_SPI_SPIF_IRQ, 89 .end = MPC52xx_SPI_SPIF_IRQ, 90 .flags = IORESOURCE_IRQ, 91 }, 92 }, 93 }, 94 [MPC52xx_USB] = { 95 .name = "ppc-soc-ohci", 96 .id = -1, 97 .num_resources = 2, 98 .dev.dma_mask = &mpc52xx_dma_mask, 99 .dev.coherent_dma_mask = 0xffffffffULL, 100 .resource = (struct resource[]) { 101 { 102 .start = 0x1000, 103 .end = 0x10ff, 104 .flags = IORESOURCE_MEM, 105 }, 106 { 107 .start = MPC52xx_USB_IRQ, 108 .end = MPC52xx_USB_IRQ, 109 .flags = IORESOURCE_IRQ, 110 }, 111 }, 112 }, 113 [MPC52xx_BDLC] = { 114 .name = "mpc52xx-bdlc", 115 .id = -1, 116 .num_resources = 2, 117 .resource = (struct resource[]) { 118 { 119 .start = 0x1300, 120 .end = 0x130f, 121 .flags = IORESOURCE_MEM, 122 }, 123 { 124 .start = MPC52xx_BDLC_IRQ, 125 .end = MPC52xx_BDLC_IRQ, 126 .flags = IORESOURCE_IRQ, 127 }, 128 }, 129 }, 130 [MPC52xx_PSC1] = { 131 .name = "mpc52xx-psc", 132 .id = 0, 133 .num_resources = 2, 134 .resource = (struct resource[]) { 135 { 136 .start = 0x2000, 137 .end = 0x209f, 138 .flags = IORESOURCE_MEM, 139 }, 140 { 141 .start = MPC52xx_PSC1_IRQ, 142 .end = MPC52xx_PSC1_IRQ, 143 .flags = IORESOURCE_IRQ, 144 }, 145 }, 146 }, 147 [MPC52xx_PSC2] = { 148 .name = "mpc52xx-psc", 149 .id = 1, 150 .num_resources = 2, 151 .resource = (struct resource[]) { 152 { 153 .start = 0x2200, 154 .end = 0x229f, 155 .flags = IORESOURCE_MEM, 156 }, 157 { 158 .start = MPC52xx_PSC2_IRQ, 159 .end = MPC52xx_PSC2_IRQ, 160 .flags = IORESOURCE_IRQ, 161 }, 162 }, 163 }, 164 [MPC52xx_PSC3] = { 165 .name = "mpc52xx-psc", 166 .id = 2, 167 .num_resources = 2, 168 .resource = (struct resource[]) { 169 { 170 .start = 0x2400, 171 .end = 0x249f, 172 .flags = IORESOURCE_MEM, 173 }, 174 { 175 .start = MPC52xx_PSC3_IRQ, 176 .end = MPC52xx_PSC3_IRQ, 177 .flags = IORESOURCE_IRQ, 178 }, 179 }, 180 }, 181 [MPC52xx_PSC4] = { 182 .name = "mpc52xx-psc", 183 .id = 3, 184 .num_resources = 2, 185 .resource = (struct resource[]) { 186 { 187 .start = 0x2600, 188 .end = 0x269f, 189 .flags = IORESOURCE_MEM, 190 }, 191 { 192 .start = MPC52xx_PSC4_IRQ, 193 .end = MPC52xx_PSC4_IRQ, 194 .flags = IORESOURCE_IRQ, 195 }, 196 }, 197 }, 198 [MPC52xx_PSC5] = { 199 .name = "mpc52xx-psc", 200 .id = 4, 201 .num_resources = 2, 202 .resource = (struct resource[]) { 203 { 204 .start = 0x2800, 205 .end = 0x289f, 206 .flags = IORESOURCE_MEM, 207 }, 208 { 209 .start = MPC52xx_PSC5_IRQ, 210 .end = MPC52xx_PSC5_IRQ, 211 .flags = IORESOURCE_IRQ, 212 }, 213 }, 214 }, 215 [MPC52xx_PSC6] = { 216 .name = "mpc52xx-psc", 217 .id = 5, 218 .num_resources = 2, 219 .resource = (struct resource[]) { 220 { 221 .start = 0x2c00, 222 .end = 0x2c9f, 223 .flags = IORESOURCE_MEM, 224 }, 225 { 226 .start = MPC52xx_PSC6_IRQ, 227 .end = MPC52xx_PSC6_IRQ, 228 .flags = IORESOURCE_IRQ, 229 }, 230 }, 231 }, 232 [MPC52xx_FEC] = { 233 .name = "mpc52xx-fec", 234 .id = -1, 235 .num_resources = 2, 236 .resource = (struct resource[]) { 237 { 238 .start = 0x3000, 239 .end = 0x33ff, 240 .flags = IORESOURCE_MEM, 241 }, 242 { 243 .start = MPC52xx_FEC_IRQ, 244 .end = MPC52xx_FEC_IRQ, 245 .flags = IORESOURCE_IRQ, 246 }, 247 }, 248 }, 249 [MPC52xx_ATA] = { 250 .name = "mpc52xx-ata", 251 .id = -1, 252 .num_resources = 2, 253 .resource = (struct resource[]) { 254 { 255 .start = 0x3a00, 256 .end = 0x3aff, 257 .flags = IORESOURCE_MEM, 258 }, 259 { 260 .start = MPC52xx_ATA_IRQ, 261 .end = MPC52xx_ATA_IRQ, 262 .flags = IORESOURCE_IRQ, 263 }, 264 }, 265 }, 266 [MPC52xx_I2C1] = { 267 .name = "fsl-i2c", 268 .id = 0, 269 .dev.platform_data = &mpc52xx_fsl_i2c_pdata, 270 .num_resources = 2, 271 .resource = (struct resource[]) { 272 { 273 .start = 0x3d00, 274 .end = 0x3d1f, 275 .flags = IORESOURCE_MEM, 276 }, 277 { 278 .start = MPC52xx_I2C1_IRQ, 279 .end = MPC52xx_I2C1_IRQ, 280 .flags = IORESOURCE_IRQ, 281 }, 282 }, 283 }, 284 [MPC52xx_I2C2] = { 285 .name = "fsl-i2c", 286 .id = 1, 287 .dev.platform_data = &mpc52xx_fsl_i2c_pdata, 288 .num_resources = 2, 289 .resource = (struct resource[]) { 290 { 291 .start = 0x3d40, 292 .end = 0x3d5f, 293 .flags = IORESOURCE_MEM, 294 }, 295 { 296 .start = MPC52xx_I2C2_IRQ, 297 .end = MPC52xx_I2C2_IRQ, 298 .flags = IORESOURCE_IRQ, 299 }, 300 }, 301 }, 302}; 303 304 305static int __init mach_mpc52xx_fixup(struct platform_device *pdev) 306{ 307 ppc_sys_fixup_mem_resource(pdev, MPC52xx_MBAR); 308 return 0; 309} 310 311static int __init mach_mpc52xx_init(void) 312{ 313 ppc_sys_device_fixup = mach_mpc52xx_fixup; 314 return 0; 315} 316 317postcore_initcall(mach_mpc52xx_init);