diff options
author | Magnus Damm <damm@igel.co.jp> | 2009-08-06 14:58:43 +0000 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-08-07 03:55:32 +0900 |
commit | 33893d7aa00057d067527e0d8c210190efade8f1 (patch) | |
tree | d437ca8f257affbb24c3bef6be4b1dbe0ac8b3d1 /arch/sh/boards/mach-kfr2r09 | |
parent | 9f26e659d8caf5820c51b9c695f0a313e636b99c (diff) |
sh: kfr2r09 board support - NAND flash
This patch adds support for the NAND flash chip
attached to CS4 on the KFR2R09 board. The device is
driven by the platform device driver "onenand-flash".
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards/mach-kfr2r09')
-rw-r--r-- | arch/sh/boards/mach-kfr2r09/setup.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-kfr2r09/setup.c b/arch/sh/boards/mach-kfr2r09/setup.c index 13550804090..bdb10c29ef1 100644 --- a/arch/sh/boards/mach-kfr2r09/setup.c +++ b/arch/sh/boards/mach-kfr2r09/setup.c @@ -11,6 +11,7 @@ #include <linux/platform_device.h> #include <linux/interrupt.h> #include <linux/mtd/physmap.h> +#include <linux/mtd/onenand.h> #include <linux/delay.h> #include <linux/clk.h> #include <linux/gpio.h> @@ -62,6 +63,21 @@ static struct platform_device kfr2r09_nor_flash_device = { }, }; +static struct resource kfr2r09_nand_flash_resources[] = { + [0] = { + .name = "NAND Flash", + .start = 0x10000000, + .end = 0x1001ffff, + .flags = IORESOURCE_MEM, + } +}; + +static struct platform_device kfr2r09_nand_flash_device = { + .name = "onenand-flash", + .resource = kfr2r09_nand_flash_resources, + .num_resources = ARRAY_SIZE(kfr2r09_nand_flash_resources), +}; + static struct sh_keysc_info kfr2r09_sh_keysc_info = { .mode = SH_KEYSC_MODE_1, /* KEYOUT0->4, KEYIN0->4 */ .scan_timing = 3, @@ -161,12 +177,15 @@ static struct platform_device kfr2r09_sh_lcdc_device = { static struct platform_device *kfr2r09_devices[] __initdata = { &kfr2r09_nor_flash_device, + &kfr2r09_nand_flash_device, &kfr2r09_sh_keysc_device, &kfr2r09_sh_lcdc_device, }; #define BSC_CS0BCR 0xfec10004 #define BSC_CS0WCR 0xfec10024 +#define BSC_CS4BCR 0xfec10010 +#define BSC_CS4WCR 0xfec10030 static int __init kfr2r09_devices_setup(void) { @@ -178,6 +197,10 @@ static int __init kfr2r09_devices_setup(void) ctrl_outl(0x36db0400, BSC_CS0BCR); ctrl_outl(0x00000500, BSC_CS0WCR); + /* setup NAND flash at CS4 */ + ctrl_outl(0x36db0400, BSC_CS4BCR); + ctrl_outl(0x00000500, BSC_CS4WCR); + /* setup KEYSC pins */ gpio_request(GPIO_FN_KEYOUT0, NULL); gpio_request(GPIO_FN_KEYOUT1, NULL); |