diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-rx51-peripherals.c')
-rw-r--r-- | arch/arm/mach-omap2/board-rx51-peripherals.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index a7381729645c..ca18ae94185a 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <mach/dma.h> | 27 | #include <mach/dma.h> |
28 | #include <mach/gpmc.h> | 28 | #include <mach/gpmc.h> |
29 | #include <mach/keypad.h> | 29 | #include <mach/keypad.h> |
30 | #include <mach/onenand.h> | ||
30 | 31 | ||
31 | #include "mmc-twl4030.h" | 32 | #include "mmc-twl4030.h" |
32 | 33 | ||
@@ -408,6 +409,62 @@ static int __init rx51_i2c_init(void) | |||
408 | return 0; | 409 | return 0; |
409 | } | 410 | } |
410 | 411 | ||
412 | #if defined(CONFIG_MTD_ONENAND_OMAP2) || \ | ||
413 | defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) | ||
414 | |||
415 | static struct mtd_partition onenand_partitions[] = { | ||
416 | { | ||
417 | .name = "bootloader", | ||
418 | .offset = 0, | ||
419 | .size = 0x20000, | ||
420 | .mask_flags = MTD_WRITEABLE, /* Force read-only */ | ||
421 | }, | ||
422 | { | ||
423 | .name = "config", | ||
424 | .offset = MTDPART_OFS_APPEND, | ||
425 | .size = 0x60000, | ||
426 | }, | ||
427 | { | ||
428 | .name = "log", | ||
429 | .offset = MTDPART_OFS_APPEND, | ||
430 | .size = 0x40000, | ||
431 | }, | ||
432 | { | ||
433 | .name = "kernel", | ||
434 | .offset = MTDPART_OFS_APPEND, | ||
435 | .size = 0x200000, | ||
436 | }, | ||
437 | { | ||
438 | .name = "initfs", | ||
439 | .offset = MTDPART_OFS_APPEND, | ||
440 | .size = 0x200000, | ||
441 | }, | ||
442 | { | ||
443 | .name = "rootfs", | ||
444 | .offset = MTDPART_OFS_APPEND, | ||
445 | .size = MTDPART_SIZ_FULL, | ||
446 | }, | ||
447 | }; | ||
448 | |||
449 | static struct omap_onenand_platform_data board_onenand_data = { | ||
450 | .cs = 0, | ||
451 | .gpio_irq = 65, | ||
452 | .parts = onenand_partitions, | ||
453 | .nr_parts = ARRAY_SIZE(onenand_partitions), | ||
454 | }; | ||
455 | |||
456 | static void __init board_onenand_init(void) | ||
457 | { | ||
458 | gpmc_onenand_init(&board_onenand_data); | ||
459 | } | ||
460 | |||
461 | #else | ||
462 | |||
463 | static inline void board_onenand_init(void) | ||
464 | { | ||
465 | } | ||
466 | |||
467 | #endif | ||
411 | 468 | ||
412 | void __init rx51_peripherals_init(void) | 469 | void __init rx51_peripherals_init(void) |
413 | { | 470 | { |
@@ -415,5 +472,6 @@ void __init rx51_peripherals_init(void) | |||
415 | ARRAY_SIZE(rx51_peripherals_devices)); | 472 | ARRAY_SIZE(rx51_peripherals_devices)); |
416 | rx51_i2c_init(); | 473 | rx51_i2c_init(); |
417 | rx51_init_smc91x(); | 474 | rx51_init_smc91x(); |
475 | board_onenand_init(); | ||
418 | } | 476 | } |
419 | 477 | ||