diff options
author | Hartley Sweeten <hartleys@visionengravers.com> | 2009-07-20 19:12:23 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-07-23 11:21:24 +0200 |
commit | 3174c88af4b6b2e81cacfaa2bb90cc7abe36f1cc (patch) | |
tree | 35726b3f0382ae7513a23575c0a1b075bfd51ead /arch/arm/mach-ep93xx/ts72xx.c | |
parent | Linux 2.6.31-rc4 (diff) | |
download | linux-3174c88af4b6b2e81cacfaa2bb90cc7abe36f1cc.tar.xz linux-3174c88af4b6b2e81cacfaa2bb90cc7abe36f1cc.zip |
[ARM] 5611/1: ep93xx: update ts72xx nor flash support
Update the NOR flash support for TS-7200.
The TS-7200 models all have 16-bit NOR flash. Update the platform
init to support this.
Remove the private TS72XX_NOR_* defines and use the common ep93xx
defines for the external chip select physical base address instead.
Move the NOR flash registration into a static __init function. When
the NAND flash support is updated this function will also be used
to register the NAND flash for the TS-7250 and TS-7260.
Tested-by: Matthieu Crapet <mcrapet@gmail.com>
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-ep93xx/ts72xx.c')
-rw-r--r-- | arch/arm/mach-ep93xx/ts72xx.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index 7ee024d34829..aaf1371412af 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c @@ -112,13 +112,16 @@ static void __init ts72xx_map_io(void) } } +/************************************************************************* + * NOR flash (TS-7200 only) + *************************************************************************/ static struct physmap_flash_data ts72xx_flash_data = { - .width = 1, + .width = 2, }; static struct resource ts72xx_flash_resource = { - .start = TS72XX_NOR_PHYS_BASE, - .end = TS72XX_NOR_PHYS_BASE + SZ_16M - 1, + .start = EP93XX_CS6_PHYS_BASE, + .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1, .flags = IORESOURCE_MEM, }; @@ -132,6 +135,12 @@ static struct platform_device ts72xx_flash = { .resource = &ts72xx_flash_resource, }; +static void __init ts72xx_register_flash(void) +{ + if (board_is_ts7200()) + platform_device_register(&ts72xx_flash); +} + static unsigned char ts72xx_rtc_readbyte(unsigned long addr) { __raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE); @@ -165,8 +174,7 @@ static struct ep93xx_eth_data ts72xx_eth_data = { static void __init ts72xx_init_machine(void) { ep93xx_init_devices(); - if (board_is_ts7200()) - platform_device_register(&ts72xx_flash); + ts72xx_register_flash(); platform_device_register(&ts72xx_rtc_device); ep93xx_register_eth(&ts72xx_eth_data, 1); |