aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSukumar Ghorai <s-ghorai@ti.com>2010-07-09 10:27:48 -0400
committerTony Lindgren <tony@atomide.com>2010-08-02 08:46:29 -0400
commit7e7eb4263ee1f041a9f1b48738b98ef99ef73995 (patch)
treefc6da62dd53f1e2b8ed152c19ec848a116bc8257 /arch/arm
parent13d6b73cf189945b7d20e749f9034329d227be6a (diff)
omap3: add support for NAND on zoom2 board
This patch adds NAND support to ZOOM2 board. Signed-off-by: Sukumar Ghorai <s-ghorai@ti.com> Signed-off-by: Vimal Singh <vimalsingh@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/Makefile1
-rw-r--r--arch/arm/mach-omap2/board-zoom2.c43
-rw-r--r--arch/arm/mach-omap2/include/mach/board-zoom.h6
3 files changed, 50 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 9abefccbce8d..3e6b4d9954b6 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -130,6 +130,7 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \
130 hsmmc.o 130 hsmmc.o
131obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom2.o \ 131obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom2.o \
132 board-zoom-peripherals.o \ 132 board-zoom-peripherals.o \
133 board-flash.o \
133 hsmmc.o \ 134 hsmmc.o \
134 board-zoom-debugboard.o 135 board-zoom-debugboard.o
135obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom3.o \ 136obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom3.o \
diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c
index 1520a2c14149..0eafae2f9181 100644
--- a/arch/arm/mach-omap2/board-zoom2.c
+++ b/arch/arm/mach-omap2/board-zoom2.c
@@ -90,10 +90,53 @@ static struct omap_board_mux board_mux[] __initdata = {
90#define board_mux NULL 90#define board_mux NULL
91#endif 91#endif
92 92
93static struct mtd_partition zoom_nand_partitions[] = {
94 /* All the partition sizes are listed in terms of NAND block size */
95 {
96 .name = "X-Loader-NAND",
97 .offset = 0,
98 .size = 4 * (64 * 2048), /* 512KB, 0x80000 */
99 .mask_flags = MTD_WRITEABLE, /* force read-only */
100 },
101 {
102 .name = "U-Boot-NAND",
103 .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
104 .size = 10 * (64 * 2048), /* 1.25MB, 0x140000 */
105 .mask_flags = MTD_WRITEABLE, /* force read-only */
106 },
107 {
108 .name = "Boot Env-NAND",
109 .offset = MTDPART_OFS_APPEND, /* Offset = 0x1c0000 */
110 .size = 2 * (64 * 2048), /* 256KB, 0x40000 */
111 },
112 {
113 .name = "Kernel-NAND",
114 .offset = MTDPART_OFS_APPEND, /* Offset = 0x0200000*/
115 .size = 240 * (64 * 2048), /* 30M, 0x1E00000 */
116 },
117 {
118 .name = "system",
119 .offset = MTDPART_OFS_APPEND, /* Offset = 0x2000000 */
120 .size = 3328 * (64 * 2048), /* 416M, 0x1A000000 */
121 },
122 {
123 .name = "userdata",
124 .offset = MTDPART_OFS_APPEND, /* Offset = 0x1C000000*/
125 .size = 256 * (64 * 2048), /* 32M, 0x2000000 */
126 },
127 {
128 .name = "cache",
129 .offset = MTDPART_OFS_APPEND, /* Offset = 0x1E000000*/
130 .size = 256 * (64 * 2048), /* 32M, 0x2000000 */
131 },
132};
133
93static void __init omap_zoom2_init(void) 134static void __init omap_zoom2_init(void)
94{ 135{
95 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 136 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
96 zoom_peripherals_init(); 137 zoom_peripherals_init();
138 board_nand_init(zoom_nand_partitions,
139 ARRAY_SIZE(zoom_nand_partitions), ZOOM_NAND_CS);
97 zoom_debugboard_init(); 140 zoom_debugboard_init();
98} 141}
99 142
diff --git a/arch/arm/mach-omap2/include/mach/board-zoom.h b/arch/arm/mach-omap2/include/mach/board-zoom.h
index c93b29e21b78..3af69d2c3dcd 100644
--- a/arch/arm/mach-omap2/include/mach/board-zoom.h
+++ b/arch/arm/mach-omap2/include/mach/board-zoom.h
@@ -1,5 +1,11 @@
1/* 1/*
2 * Defines for zoom boards 2 * Defines for zoom boards
3 */ 3 */
4#include <linux/mtd/mtd.h>
5#include <linux/mtd/partitions.h>
6
7#define ZOOM_NAND_CS 0
8
9extern void __init board_nand_init(struct mtd_partition *, u8 nr_parts, u8 cs);
4extern int __init zoom_debugboard_init(void); 10extern int __init zoom_debugboard_init(void);
5extern void __init zoom_peripherals_init(void); 11extern void __init zoom_peripherals_init(void);