[ARM] pxa: add nand support in aspensite board
authorHaojian Zhuang <haojian.zhuang@marvell.com>
Thu, 10 Sep 2009 06:37:48 +0000 (14:37 +0800)
committerEric Miao <eric.y.miao@gmail.com>
Tue, 1 Dec 2009 01:02:44 +0000 (09:02 +0800)
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
arch/arm/mach-mmp/aspenite.c

index 4562452d40740d76fa2eb8f57d3321408955f515..a2d307ec0420fc318ffc7aa9d60569da19fe5ccb 100644 (file)
@@ -13,6 +13,9 @@
 #include <linux/kernel.h>
 #include <linux/platform_device.h>
 #include <linux/smc91x.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/partitions.h>
+#include <linux/mtd/nand.h>
 
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -85,12 +88,48 @@ static struct platform_device smc91x_device = {
        .resource       = smc91x_resources,
 };
 
+static struct mtd_partition aspenite_nand_partitions[] = {
+       {
+               .name           = "bootloader",
+               .offset         = 0,
+               .size           = SZ_1M,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "reserved",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = SZ_128K,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "reserved",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = SZ_8M,
+               .mask_flags     = MTD_WRITEABLE,
+       }, {
+               .name           = "kernel",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = (SZ_2M + SZ_1M),
+               .mask_flags     = 0,
+       }, {
+               .name           = "filesystem",
+               .offset         = MTDPART_OFS_APPEND,
+               .size           = SZ_48M,
+               .mask_flags     = 0,
+       }
+};
+
+static struct pxa3xx_nand_platform_data aspenite_nand_info = {
+       .enable_arbiter = 1,
+       .parts          = aspenite_nand_partitions,
+       .nr_parts       = ARRAY_SIZE(aspenite_nand_partitions),
+};
+
 static void __init common_init(void)
 {
        mfp_config(ARRAY_AND_SIZE(common_pin_config));
 
        /* on-chip devices */
        pxa168_add_uart(1);
+       pxa168_add_nand(&aspenite_nand_info);
 
        /* off-chip devices */
        platform_device_register(&smc91x_device);