diff options
| author | Ben Dooks <ben-linux@fluff.org> | 2006-04-02 11:16:15 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-04-02 11:16:15 -0400 |
| commit | 272eb575eb3d5348fe0f0a97a22b5e603bd51d11 (patch) | |
| tree | 5c2b7667b5195c933c63d1c90677ddb90675c555 | |
| parent | 661e6acf7b882e5a886845dca5d1559e987464b4 (diff) | |
[ARM] 3452/1: [S3C2410] RX3715 - add nand information
Patch from Ben Dooks
NAND definitions for the HP iPAQ RX3715's
internal NAND flash
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| -rw-r--r-- | arch/arm/mach-s3c2410/mach-rx3715.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2410/mach-rx3715.c b/arch/arm/mach-s3c2410/mach-rx3715.c index 0260ed5ab946..306afc1d7cd3 100644 --- a/arch/arm/mach-s3c2410/mach-rx3715.c +++ b/arch/arm/mach-s3c2410/mach-rx3715.c | |||
| @@ -32,6 +32,11 @@ | |||
| 32 | #include <linux/serial_core.h> | 32 | #include <linux/serial_core.h> |
| 33 | #include <linux/serial.h> | 33 | #include <linux/serial.h> |
| 34 | 34 | ||
| 35 | #include <linux/mtd/mtd.h> | ||
| 36 | #include <linux/mtd/nand.h> | ||
| 37 | #include <linux/mtd/nand_ecc.h> | ||
| 38 | #include <linux/mtd/partitions.h> | ||
| 39 | |||
| 35 | #include <asm/mach/arch.h> | 40 | #include <asm/mach/arch.h> |
| 36 | #include <asm/mach/map.h> | 41 | #include <asm/mach/map.h> |
| 37 | #include <asm/mach/irq.h> | 42 | #include <asm/mach/irq.h> |
| @@ -46,6 +51,7 @@ | |||
| 46 | #include <asm/arch/regs-gpio.h> | 51 | #include <asm/arch/regs-gpio.h> |
| 47 | #include <asm/arch/regs-lcd.h> | 52 | #include <asm/arch/regs-lcd.h> |
| 48 | 53 | ||
| 54 | #include <asm/arch/nand.h> | ||
| 49 | #include <asm/arch/fb.h> | 55 | #include <asm/arch/fb.h> |
| 50 | 56 | ||
| 51 | #include "clock.h" | 57 | #include "clock.h" |
| @@ -170,12 +176,39 @@ static struct s3c2410fb_mach_info rx3715_lcdcfg __initdata = { | |||
| 170 | }, | 176 | }, |
| 171 | }; | 177 | }; |
| 172 | 178 | ||
| 179 | static struct mtd_partition rx3715_nand_part[] = { | ||
| 180 | [0] = { | ||
| 181 | .name = "Whole Flash", | ||
| 182 | .offset = 0, | ||
| 183 | .size = MTDPART_SIZ_FULL, | ||
| 184 | .mask_flags = MTD_WRITEABLE, | ||
| 185 | } | ||
| 186 | }; | ||
| 187 | |||
| 188 | static struct s3c2410_nand_set rx3715_nand_sets[] = { | ||
| 189 | [0] = { | ||
| 190 | .name = "Internal", | ||
| 191 | .nr_chips = 1, | ||
| 192 | .nr_partitions = ARRAY_SIZE(rx3715_nand_part), | ||
| 193 | .partitions = rx3715_nand_part, | ||
| 194 | }, | ||
| 195 | }; | ||
| 196 | |||
| 197 | static struct s3c2410_platform_nand rx3715_nand_info = { | ||
| 198 | .tacls = 25, | ||
| 199 | .twrph0 = 50, | ||
| 200 | .twrph1 = 15, | ||
| 201 | .nr_sets = ARRAY_SIZE(rx3715_nand_sets), | ||
| 202 | .sets = rx3715_nand_sets, | ||
| 203 | }; | ||
| 204 | |||
| 173 | static struct platform_device *rx3715_devices[] __initdata = { | 205 | static struct platform_device *rx3715_devices[] __initdata = { |
| 174 | &s3c_device_usb, | 206 | &s3c_device_usb, |
| 175 | &s3c_device_lcd, | 207 | &s3c_device_lcd, |
| 176 | &s3c_device_wdt, | 208 | &s3c_device_wdt, |
| 177 | &s3c_device_i2c, | 209 | &s3c_device_i2c, |
| 178 | &s3c_device_iis, | 210 | &s3c_device_iis, |
| 211 | &s3c_device_nand, | ||
| 179 | }; | 212 | }; |
| 180 | 213 | ||
| 181 | static struct s3c24xx_board rx3715_board __initdata = { | 214 | static struct s3c24xx_board rx3715_board __initdata = { |
| @@ -185,6 +218,8 @@ static struct s3c24xx_board rx3715_board __initdata = { | |||
| 185 | 218 | ||
| 186 | static void __init rx3715_map_io(void) | 219 | static void __init rx3715_map_io(void) |
| 187 | { | 220 | { |
| 221 | s3c_device_nand.dev.platform_data = &rx3715_nand_info; | ||
| 222 | |||
| 188 | s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc)); | 223 | s3c24xx_init_io(rx3715_iodesc, ARRAY_SIZE(rx3715_iodesc)); |
| 189 | s3c24xx_init_clocks(16934000); | 224 | s3c24xx_init_clocks(16934000); |
| 190 | s3c24xx_init_uarts(rx3715_uartcfgs, ARRAY_SIZE(rx3715_uartcfgs)); | 225 | s3c24xx_init_uarts(rx3715_uartcfgs, ARRAY_SIZE(rx3715_uartcfgs)); |
