diff options
author | Harald Krapfenbauer <Harald.Krapfenbauer@bluetechnix.at> | 2009-09-10 11:30:03 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-09-16 22:10:46 -0400 |
commit | 9c21453e376c03bcba9c6d89dc5735b40a35b098 (patch) | |
tree | a1261a4f3af75558e44f8bcb31ed57dd34093eb6 /arch | |
parent | 6058434468daa16580a77922661b31b880d60db5 (diff) |
Blackfin: update cm board resources
Signed-off-by: Harald Krapfenbauer <Harald.Krapfenbauer@bluetechnix.at>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/blackfin/mach-bf527/boards/cm_bf527.c | 97 | ||||
-rw-r--r-- | arch/blackfin/mach-bf533/boards/cm_bf533.c | 114 | ||||
-rw-r--r-- | arch/blackfin/mach-bf537/boards/tcm_bf537.c | 13 | ||||
-rw-r--r-- | arch/blackfin/mach-bf548/boards/cm_bf548.c | 15 | ||||
-rw-r--r-- | arch/blackfin/mach-bf561/boards/cm_bf561.c | 113 |
5 files changed, 297 insertions, 55 deletions
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c index a0f623d07d3f..08a3f01c9886 100644 --- a/arch/blackfin/mach-bf527/boards/cm_bf527.c +++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c | |||
@@ -151,46 +151,6 @@ static struct platform_device musb_device = { | |||
151 | }; | 151 | }; |
152 | #endif | 152 | #endif |
153 | 153 | ||
154 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
155 | static struct mtd_partition ezkit_partitions[] = { | ||
156 | { | ||
157 | .name = "bootloader(nor)", | ||
158 | .size = 0x40000, | ||
159 | .offset = 0, | ||
160 | }, { | ||
161 | .name = "linux kernel(nor)", | ||
162 | .size = 0x1C0000, | ||
163 | .offset = MTDPART_OFS_APPEND, | ||
164 | }, { | ||
165 | .name = "file system(nor)", | ||
166 | .size = MTDPART_SIZ_FULL, | ||
167 | .offset = MTDPART_OFS_APPEND, | ||
168 | } | ||
169 | }; | ||
170 | |||
171 | static struct physmap_flash_data ezkit_flash_data = { | ||
172 | .width = 2, | ||
173 | .parts = ezkit_partitions, | ||
174 | .nr_parts = ARRAY_SIZE(ezkit_partitions), | ||
175 | }; | ||
176 | |||
177 | static struct resource ezkit_flash_resource = { | ||
178 | .start = 0x20000000, | ||
179 | .end = 0x201fffff, | ||
180 | .flags = IORESOURCE_MEM, | ||
181 | }; | ||
182 | |||
183 | static struct platform_device ezkit_flash_device = { | ||
184 | .name = "physmap-flash", | ||
185 | .id = 0, | ||
186 | .dev = { | ||
187 | .platform_data = &ezkit_flash_data, | ||
188 | }, | ||
189 | .num_resources = 1, | ||
190 | .resource = &ezkit_flash_resource, | ||
191 | }; | ||
192 | #endif | ||
193 | |||
194 | #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) | 154 | #if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) |
195 | static struct mtd_partition partition_info[] = { | 155 | static struct mtd_partition partition_info[] = { |
196 | { | 156 | { |
@@ -662,6 +622,55 @@ static struct platform_device bfin_fb_adv7393_device = { | |||
662 | }; | 622 | }; |
663 | #endif | 623 | #endif |
664 | 624 | ||
625 | #if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE) | ||
626 | static struct mtd_partition cm_partitions[] = { | ||
627 | { | ||
628 | .name = "bootloader(nor)", | ||
629 | .size = 0x40000, | ||
630 | .offset = 0, | ||
631 | }, { | ||
632 | .name = "linux kernel(nor)", | ||
633 | .size = 0x100000, | ||
634 | .offset = MTDPART_OFS_APPEND, | ||
635 | }, { | ||
636 | .name = "file system(nor)", | ||
637 | .size = MTDPART_SIZ_FULL, | ||
638 | .offset = MTDPART_OFS_APPEND, | ||
639 | } | ||
640 | }; | ||
641 | |||
642 | static struct physmap_flash_data cm_flash_data = { | ||
643 | .width = 2, | ||
644 | .parts = cm_partitions, | ||
645 | .nr_parts = ARRAY_SIZE(cm_partitions), | ||
646 | }; | ||
647 | |||
648 | static unsigned cm_flash_gpios[] = { GPIO_PH9, GPIO_PG11 }; | ||
649 | |||
650 | static struct resource cm_flash_resource[] = { | ||
651 | { | ||
652 | .name = "cfi_probe", | ||
653 | .start = 0x20000000, | ||
654 | .end = 0x201fffff, | ||
655 | .flags = IORESOURCE_MEM, | ||
656 | }, { | ||
657 | .start = (unsigned long)cm_flash_gpios, | ||
658 | .end = ARRAY_SIZE(cm_flash_gpios), | ||
659 | .flags = IORESOURCE_IRQ, | ||
660 | } | ||
661 | }; | ||
662 | |||
663 | static struct platform_device cm_flash_device = { | ||
664 | .name = "gpio-addr-flash", | ||
665 | .id = 0, | ||
666 | .dev = { | ||
667 | .platform_data = &cm_flash_data, | ||
668 | }, | ||
669 | .num_resources = ARRAY_SIZE(cm_flash_resource), | ||
670 | .resource = cm_flash_resource, | ||
671 | }; | ||
672 | #endif | ||
673 | |||
665 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) | 674 | #if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) |
666 | static struct resource bfin_uart_resources[] = { | 675 | static struct resource bfin_uart_resources[] = { |
667 | #ifdef CONFIG_SERIAL_BFIN_UART0 | 676 | #ifdef CONFIG_SERIAL_BFIN_UART0 |
@@ -847,7 +856,7 @@ static struct platform_device bfin_dpmc = { | |||
847 | }, | 856 | }, |
848 | }; | 857 | }; |
849 | 858 | ||
850 | static struct platform_device *stamp_devices[] __initdata = { | 859 | static struct platform_device *cmbf527_devices[] __initdata = { |
851 | 860 | ||
852 | &bfin_dpmc, | 861 | &bfin_dpmc, |
853 | 862 | ||
@@ -930,8 +939,8 @@ static struct platform_device *stamp_devices[] __initdata = { | |||
930 | &bfin_device_gpiokeys, | 939 | &bfin_device_gpiokeys, |
931 | #endif | 940 | #endif |
932 | 941 | ||
933 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | 942 | #if defined(CONFIG_MTD_GPIO_ADDR) || defined(CONFIG_MTD_GPIO_ADDR_MODULE) |
934 | &ezkit_flash_device, | 943 | &cm_flash_device, |
935 | #endif | 944 | #endif |
936 | 945 | ||
937 | &bfin_gpios_device, | 946 | &bfin_gpios_device, |
@@ -942,7 +951,7 @@ static int __init cm_init(void) | |||
942 | printk(KERN_INFO "%s(): registering device resources\n", __func__); | 951 | printk(KERN_INFO "%s(): registering device resources\n", __func__); |
943 | i2c_register_board_info(0, bfin_i2c_board_info, | 952 | i2c_register_board_info(0, bfin_i2c_board_info, |
944 | ARRAY_SIZE(bfin_i2c_board_info)); | 953 | ARRAY_SIZE(bfin_i2c_board_info)); |
945 | platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); | 954 | platform_add_devices(cmbf527_devices, ARRAY_SIZE(cmbf527_devices)); |
946 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); | 955 | spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); |
947 | return 0; | 956 | return 0; |
948 | } | 957 | } |
diff --git a/arch/blackfin/mach-bf533/boards/cm_bf533.c b/arch/blackfin/mach-bf533/boards/cm_bf533.c index ef31bc5fb1c4..7443b26c80c5 100644 --- a/arch/blackfin/mach-bf533/boards/cm_bf533.c +++ b/arch/blackfin/mach-bf533/boards/cm_bf533.c | |||
@@ -31,8 +31,10 @@ | |||
31 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
32 | #include <linux/mtd/mtd.h> | 32 | #include <linux/mtd/mtd.h> |
33 | #include <linux/mtd/partitions.h> | 33 | #include <linux/mtd/partitions.h> |
34 | #include <linux/mtd/physmap.h> | ||
34 | #include <linux/spi/spi.h> | 35 | #include <linux/spi/spi.h> |
35 | #include <linux/spi/flash.h> | 36 | #include <linux/spi/flash.h> |
37 | #include <linux/spi/mmc_spi.h> | ||
36 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) | 38 | #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) |
37 | #include <linux/usb/isp1362.h> | 39 | #include <linux/usb/isp1362.h> |
38 | #endif | 40 | #endif |
@@ -141,9 +143,9 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
141 | #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) | 143 | #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) |
142 | { | 144 | { |
143 | .modalias = "mmc_spi", | 145 | .modalias = "mmc_spi", |
144 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | 146 | .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ |
145 | .bus_num = 0, | 147 | .bus_num = 0, |
146 | .chip_select = 5, | 148 | .chip_select = 1, |
147 | .controller_data = &mmc_spi_chip_info, | 149 | .controller_data = &mmc_spi_chip_info, |
148 | .mode = SPI_MODE_3, | 150 | .mode = SPI_MODE_3, |
149 | }, | 151 | }, |
@@ -225,6 +227,40 @@ static struct platform_device smc91x_device = { | |||
225 | }; | 227 | }; |
226 | #endif | 228 | #endif |
227 | 229 | ||
230 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
231 | #include <linux/smsc911x.h> | ||
232 | |||
233 | static struct resource smsc911x_resources[] = { | ||
234 | { | ||
235 | .name = "smsc911x-memory", | ||
236 | .start = 0x20308000, | ||
237 | .end = 0x20308000 + 0xFF, | ||
238 | .flags = IORESOURCE_MEM, | ||
239 | }, { | ||
240 | .start = IRQ_PF8, | ||
241 | .end = IRQ_PF8, | ||
242 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | ||
243 | }, | ||
244 | }; | ||
245 | |||
246 | static struct smsc911x_platform_config smsc911x_config = { | ||
247 | .flags = SMSC911X_USE_16BIT, | ||
248 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, | ||
249 | .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, | ||
250 | .phy_interface = PHY_INTERFACE_MODE_MII, | ||
251 | }; | ||
252 | |||
253 | static struct platform_device smsc911x_device = { | ||
254 | .name = "smsc911x", | ||
255 | .id = 0, | ||
256 | .num_resources = ARRAY_SIZE(smsc911x_resources), | ||
257 | .resource = smsc911x_resources, | ||
258 | .dev = { | ||
259 | .platform_data = &smsc911x_config, | ||
260 | }, | ||
261 | }; | ||
262 | #endif | ||
263 | |||
228 | static struct resource bfin_gpios_resources = { | 264 | static struct resource bfin_gpios_resources = { |
229 | .start = 0, | 265 | .start = 0, |
230 | .end = MAX_BLACKFIN_GPIOS - 1, | 266 | .end = MAX_BLACKFIN_GPIOS - 1, |
@@ -335,6 +371,68 @@ static struct platform_device isp1362_hcd_device = { | |||
335 | }; | 371 | }; |
336 | #endif | 372 | #endif |
337 | 373 | ||
374 | |||
375 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) | ||
376 | static struct resource net2272_bfin_resources[] = { | ||
377 | { | ||
378 | .start = 0x20300000, | ||
379 | .end = 0x20300000 + 0x100, | ||
380 | .flags = IORESOURCE_MEM, | ||
381 | }, { | ||
382 | .start = IRQ_PF6, | ||
383 | .end = IRQ_PF6, | ||
384 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
385 | }, | ||
386 | }; | ||
387 | |||
388 | static struct platform_device net2272_bfin_device = { | ||
389 | .name = "net2272", | ||
390 | .id = -1, | ||
391 | .num_resources = ARRAY_SIZE(net2272_bfin_resources), | ||
392 | .resource = net2272_bfin_resources, | ||
393 | }; | ||
394 | #endif | ||
395 | |||
396 | |||
397 | |||
398 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
399 | static struct mtd_partition para_partitions[] = { | ||
400 | { | ||
401 | .name = "bootloader(nor)", | ||
402 | .size = 0x40000, | ||
403 | .offset = 0, | ||
404 | }, { | ||
405 | .name = "linux+rootfs(nor)", | ||
406 | .size = MTDPART_SIZ_FULL, | ||
407 | .offset = MTDPART_OFS_APPEND, | ||
408 | }, | ||
409 | }; | ||
410 | |||
411 | static struct physmap_flash_data para_flash_data = { | ||
412 | .width = 2, | ||
413 | .parts = para_partitions, | ||
414 | .nr_parts = ARRAY_SIZE(para_partitions), | ||
415 | }; | ||
416 | |||
417 | static struct resource para_flash_resource = { | ||
418 | .start = 0x20000000, | ||
419 | .end = 0x201fffff, | ||
420 | .flags = IORESOURCE_MEM, | ||
421 | }; | ||
422 | |||
423 | static struct platform_device para_flash_device = { | ||
424 | .name = "physmap-flash", | ||
425 | .id = 0, | ||
426 | .dev = { | ||
427 | .platform_data = ¶_flash_data, | ||
428 | }, | ||
429 | .num_resources = 1, | ||
430 | .resource = ¶_flash_resource, | ||
431 | }; | ||
432 | #endif | ||
433 | |||
434 | |||
435 | |||
338 | static const unsigned int cclk_vlev_datasheet[] = | 436 | static const unsigned int cclk_vlev_datasheet[] = |
339 | { | 437 | { |
340 | VRPAIR(VLEV_085, 250000000), | 438 | VRPAIR(VLEV_085, 250000000), |
@@ -393,10 +491,22 @@ static struct platform_device *cm_bf533_devices[] __initdata = { | |||
393 | &smc91x_device, | 491 | &smc91x_device, |
394 | #endif | 492 | #endif |
395 | 493 | ||
494 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
495 | &smsc911x_device, | ||
496 | #endif | ||
497 | |||
498 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) | ||
499 | &net2272_bfin_device, | ||
500 | #endif | ||
501 | |||
396 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 502 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
397 | &bfin_spi0_device, | 503 | &bfin_spi0_device, |
398 | #endif | 504 | #endif |
399 | 505 | ||
506 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
507 | ¶_flash_device, | ||
508 | #endif | ||
509 | |||
400 | &bfin_gpios_device, | 510 | &bfin_gpios_device, |
401 | }; | 511 | }; |
402 | 512 | ||
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c index dc4f161c4443..61353f7bcb9e 100644 --- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c +++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <asm/bfin5xx_spi.h> | 45 | #include <asm/bfin5xx_spi.h> |
46 | #include <asm/portmux.h> | 46 | #include <asm/portmux.h> |
47 | #include <asm/dpmc.h> | 47 | #include <asm/dpmc.h> |
48 | #include <linux/spi/mmc_spi.h> | ||
48 | 49 | ||
49 | /* | 50 | /* |
50 | * Name the Board for the /proc/cpuinfo | 51 | * Name the Board for the /proc/cpuinfo |
@@ -148,7 +149,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
148 | .modalias = "mmc_spi", | 149 | .modalias = "mmc_spi", |
149 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | 150 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ |
150 | .bus_num = 0, | 151 | .bus_num = 0, |
151 | .chip_select = 5, | 152 | .chip_select = 1, |
152 | .controller_data = &mmc_spi_chip_info, | 153 | .controller_data = &mmc_spi_chip_info, |
153 | .mode = SPI_MODE_3, | 154 | .mode = SPI_MODE_3, |
154 | }, | 155 | }, |
@@ -279,12 +280,12 @@ static struct platform_device isp1362_hcd_device = { | |||
279 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) | 280 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) |
280 | static struct resource net2272_bfin_resources[] = { | 281 | static struct resource net2272_bfin_resources[] = { |
281 | { | 282 | { |
282 | .start = 0x20200000, | 283 | .start = 0x20300000, |
283 | .end = 0x20200000 + 0x100, | 284 | .end = 0x20300000 + 0x100, |
284 | .flags = IORESOURCE_MEM, | 285 | .flags = IORESOURCE_MEM, |
285 | }, { | 286 | }, { |
286 | .start = IRQ_PH14, | 287 | .start = IRQ_PG13, |
287 | .end = IRQ_PH14, | 288 | .end = IRQ_PG13, |
288 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | 289 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, |
289 | }, | 290 | }, |
290 | }; | 291 | }; |
@@ -318,7 +319,7 @@ static struct mtd_partition cm_partitions[] = { | |||
318 | .offset = 0, | 319 | .offset = 0, |
319 | }, { | 320 | }, { |
320 | .name = "linux kernel(nor)", | 321 | .name = "linux kernel(nor)", |
321 | .size = 0xE0000, | 322 | .size = 0x100000, |
322 | .offset = MTDPART_OFS_APPEND, | 323 | .offset = MTDPART_OFS_APPEND, |
323 | }, { | 324 | }, { |
324 | .name = "file system(nor)", | 325 | .name = "file system(nor)", |
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c index 290b6e9ec21e..e565aae11d72 100644 --- a/arch/blackfin/mach-bf548/boards/cm_bf548.c +++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c | |||
@@ -291,6 +291,8 @@ static struct platform_device bfin_sir3_device = { | |||
291 | #endif | 291 | #endif |
292 | 292 | ||
293 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | 293 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) |
294 | #include <linux/smsc911x.h> | ||
295 | |||
294 | static struct resource smsc911x_resources[] = { | 296 | static struct resource smsc911x_resources[] = { |
295 | { | 297 | { |
296 | .name = "smsc911x-memory", | 298 | .name = "smsc911x-memory", |
@@ -304,11 +306,22 @@ static struct resource smsc911x_resources[] = { | |||
304 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | 306 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, |
305 | }, | 307 | }, |
306 | }; | 308 | }; |
309 | |||
310 | static struct smsc911x_platform_config smsc911x_config = { | ||
311 | .flags = SMSC911X_USE_16BIT, | ||
312 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, | ||
313 | .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, | ||
314 | .phy_interface = PHY_INTERFACE_MODE_MII, | ||
315 | }; | ||
316 | |||
307 | static struct platform_device smsc911x_device = { | 317 | static struct platform_device smsc911x_device = { |
308 | .name = "smsc911x", | 318 | .name = "smsc911x", |
309 | .id = 0, | 319 | .id = 0, |
310 | .num_resources = ARRAY_SIZE(smsc911x_resources), | 320 | .num_resources = ARRAY_SIZE(smsc911x_resources), |
311 | .resource = smsc911x_resources, | 321 | .resource = smsc911x_resources, |
322 | .dev = { | ||
323 | .platform_data = &smsc911x_config, | ||
324 | }, | ||
312 | }; | 325 | }; |
313 | #endif | 326 | #endif |
314 | 327 | ||
@@ -473,7 +486,7 @@ static struct mtd_partition para_partitions[] = { | |||
473 | .offset = 0, | 486 | .offset = 0, |
474 | }, { | 487 | }, { |
475 | .name = "linux kernel(nor)", | 488 | .name = "linux kernel(nor)", |
476 | .size = 0x400000, | 489 | .size = 0x100000, |
477 | .offset = MTDPART_OFS_APPEND, | 490 | .offset = MTDPART_OFS_APPEND, |
478 | }, { | 491 | }, { |
479 | .name = "file system(nor)", | 492 | .name = "file system(nor)", |
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c index 5721620cfae8..6577ecfcf11e 100644 --- a/arch/blackfin/mach-bf561/boards/cm_bf561.c +++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <asm/bfin5xx_spi.h> | 42 | #include <asm/bfin5xx_spi.h> |
43 | #include <asm/portmux.h> | 43 | #include <asm/portmux.h> |
44 | #include <asm/dpmc.h> | 44 | #include <asm/dpmc.h> |
45 | #include <linux/mtd/physmap.h> | ||
45 | 46 | ||
46 | /* | 47 | /* |
47 | * Name the Board for the /proc/cpuinfo | 48 | * Name the Board for the /proc/cpuinfo |
@@ -142,9 +143,9 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = { | |||
142 | #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) | 143 | #if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) |
143 | { | 144 | { |
144 | .modalias = "mmc_spi", | 145 | .modalias = "mmc_spi", |
145 | .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ | 146 | .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */ |
146 | .bus_num = 0, | 147 | .bus_num = 0, |
147 | .chip_select = 5, | 148 | .chip_select = 1, |
148 | .controller_data = &mmc_spi_chip_info, | 149 | .controller_data = &mmc_spi_chip_info, |
149 | .mode = SPI_MODE_3, | 150 | .mode = SPI_MODE_3, |
150 | }, | 151 | }, |
@@ -228,6 +229,62 @@ static struct platform_device smc91x_device = { | |||
228 | }; | 229 | }; |
229 | #endif | 230 | #endif |
230 | 231 | ||
232 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
233 | #include <linux/smsc911x.h> | ||
234 | |||
235 | static struct resource smsc911x_resources[] = { | ||
236 | { | ||
237 | .name = "smsc911x-memory", | ||
238 | .start = 0x24008000, | ||
239 | .end = 0x24008000 + 0xFF, | ||
240 | .flags = IORESOURCE_MEM, | ||
241 | }, | ||
242 | { | ||
243 | .start = IRQ_PF43, | ||
244 | .end = IRQ_PF43, | ||
245 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL, | ||
246 | }, | ||
247 | }; | ||
248 | |||
249 | static struct smsc911x_platform_config smsc911x_config = { | ||
250 | .flags = SMSC911X_USE_16BIT, | ||
251 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, | ||
252 | .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, | ||
253 | .phy_interface = PHY_INTERFACE_MODE_MII, | ||
254 | }; | ||
255 | |||
256 | static struct platform_device smsc911x_device = { | ||
257 | .name = "smsc911x", | ||
258 | .id = 0, | ||
259 | .num_resources = ARRAY_SIZE(smsc911x_resources), | ||
260 | .resource = smsc911x_resources, | ||
261 | .dev = { | ||
262 | .platform_data = &smsc911x_config, | ||
263 | }, | ||
264 | }; | ||
265 | #endif | ||
266 | |||
267 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) | ||
268 | static struct resource net2272_bfin_resources[] = { | ||
269 | { | ||
270 | .start = 0x24000000, | ||
271 | .end = 0x24000000 + 0x100, | ||
272 | .flags = IORESOURCE_MEM, | ||
273 | }, { | ||
274 | .start = IRQ_PF45, | ||
275 | .end = IRQ_PF45, | ||
276 | .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, | ||
277 | }, | ||
278 | }; | ||
279 | |||
280 | static struct platform_device net2272_bfin_device = { | ||
281 | .name = "net2272", | ||
282 | .id = -1, | ||
283 | .num_resources = ARRAY_SIZE(net2272_bfin_resources), | ||
284 | .resource = net2272_bfin_resources, | ||
285 | }; | ||
286 | #endif | ||
287 | |||
231 | static struct resource bfin_gpios_resources = { | 288 | static struct resource bfin_gpios_resources = { |
232 | .start = 0, | 289 | .start = 0, |
233 | .end = MAX_BLACKFIN_GPIOS - 1, | 290 | .end = MAX_BLACKFIN_GPIOS - 1, |
@@ -363,6 +420,46 @@ static struct platform_device bfin_pata_device = { | |||
363 | }; | 420 | }; |
364 | #endif | 421 | #endif |
365 | 422 | ||
423 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
424 | static struct mtd_partition para_partitions[] = { | ||
425 | { | ||
426 | .name = "bootloader(nor)", | ||
427 | .size = 0x40000, | ||
428 | .offset = 0, | ||
429 | }, { | ||
430 | .name = "linux kernel(nor)", | ||
431 | .size = 0x100000, | ||
432 | .offset = MTDPART_OFS_APPEND, | ||
433 | }, { | ||
434 | .name = "file system(nor)", | ||
435 | .size = MTDPART_SIZ_FULL, | ||
436 | .offset = MTDPART_OFS_APPEND, | ||
437 | } | ||
438 | }; | ||
439 | |||
440 | static struct physmap_flash_data para_flash_data = { | ||
441 | .width = 2, | ||
442 | .parts = para_partitions, | ||
443 | .nr_parts = ARRAY_SIZE(para_partitions), | ||
444 | }; | ||
445 | |||
446 | static struct resource para_flash_resource = { | ||
447 | .start = 0x20000000, | ||
448 | .end = 0x207fffff, | ||
449 | .flags = IORESOURCE_MEM, | ||
450 | }; | ||
451 | |||
452 | static struct platform_device para_flash_device = { | ||
453 | .name = "physmap-flash", | ||
454 | .id = 0, | ||
455 | .dev = { | ||
456 | .platform_data = ¶_flash_data, | ||
457 | }, | ||
458 | .num_resources = 1, | ||
459 | .resource = ¶_flash_resource, | ||
460 | }; | ||
461 | #endif | ||
462 | |||
366 | static const unsigned int cclk_vlev_datasheet[] = | 463 | static const unsigned int cclk_vlev_datasheet[] = |
367 | { | 464 | { |
368 | VRPAIR(VLEV_085, 250000000), | 465 | VRPAIR(VLEV_085, 250000000), |
@@ -416,6 +513,14 @@ static struct platform_device *cm_bf561_devices[] __initdata = { | |||
416 | &smc91x_device, | 513 | &smc91x_device, |
417 | #endif | 514 | #endif |
418 | 515 | ||
516 | #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE) | ||
517 | &smsc911x_device, | ||
518 | #endif | ||
519 | |||
520 | #if defined(CONFIG_USB_NET2272) || defined(CONFIG_USB_NET2272_MODULE) | ||
521 | &net2272_bfin_device, | ||
522 | #endif | ||
523 | |||
419 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) | 524 | #if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) |
420 | &bfin_spi0_device, | 525 | &bfin_spi0_device, |
421 | #endif | 526 | #endif |
@@ -424,6 +529,10 @@ static struct platform_device *cm_bf561_devices[] __initdata = { | |||
424 | &bfin_pata_device, | 529 | &bfin_pata_device, |
425 | #endif | 530 | #endif |
426 | 531 | ||
532 | #if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) | ||
533 | ¶_flash_device, | ||
534 | #endif | ||
535 | |||
427 | &bfin_gpios_device, | 536 | &bfin_gpios_device, |
428 | }; | 537 | }; |
429 | 538 | ||