diff options
author | Hartley Sweeten <hartleys@visionengravers.com> | 2009-07-20 13:12:23 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-07-23 05:21:24 -0400 |
commit | 3174c88af4b6b2e81cacfaa2bb90cc7abe36f1cc (patch) | |
tree | 35726b3f0382ae7513a23575c0a1b075bfd51ead /arch/arm/mach-ep93xx | |
parent | 4be3bd7849165e7efa6b0b35a23d6a3598d97465 (diff) |
[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')
-rw-r--r-- | arch/arm/mach-ep93xx/include/mach/ts72xx.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/ts72xx.c | 18 |
2 files changed, 13 insertions, 8 deletions
diff --git a/arch/arm/mach-ep93xx/include/mach/ts72xx.h b/arch/arm/mach-ep93xx/include/mach/ts72xx.h index 34ddec081c40..411734422c1d 100644 --- a/arch/arm/mach-ep93xx/include/mach/ts72xx.h +++ b/arch/arm/mach-ep93xx/include/mach/ts72xx.h | |||
@@ -41,9 +41,6 @@ | |||
41 | #define TS72XX_OPTIONS2_TS9420_BOOT 0x02 | 41 | #define TS72XX_OPTIONS2_TS9420_BOOT 0x02 |
42 | 42 | ||
43 | 43 | ||
44 | #define TS72XX_NOR_PHYS_BASE 0x60000000 | ||
45 | #define TS72XX_NOR2_PHYS_BASE 0x62000000 | ||
46 | |||
47 | #define TS72XX_NAND1_DATA_PHYS_BASE 0x60000000 | 44 | #define TS72XX_NAND1_DATA_PHYS_BASE 0x60000000 |
48 | #define TS72XX_NAND2_DATA_PHYS_BASE 0x70000000 | 45 | #define TS72XX_NAND2_DATA_PHYS_BASE 0x70000000 |
49 | #define TS72XX_NAND_DATA_VIRT_BASE 0xfebfc000 | 46 | #define TS72XX_NAND_DATA_VIRT_BASE 0xfebfc000 |
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) | |||
112 | } | 112 | } |
113 | } | 113 | } |
114 | 114 | ||
115 | /************************************************************************* | ||
116 | * NOR flash (TS-7200 only) | ||
117 | *************************************************************************/ | ||
115 | static struct physmap_flash_data ts72xx_flash_data = { | 118 | static struct physmap_flash_data ts72xx_flash_data = { |
116 | .width = 1, | 119 | .width = 2, |
117 | }; | 120 | }; |
118 | 121 | ||
119 | static struct resource ts72xx_flash_resource = { | 122 | static struct resource ts72xx_flash_resource = { |
120 | .start = TS72XX_NOR_PHYS_BASE, | 123 | .start = EP93XX_CS6_PHYS_BASE, |
121 | .end = TS72XX_NOR_PHYS_BASE + SZ_16M - 1, | 124 | .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1, |
122 | .flags = IORESOURCE_MEM, | 125 | .flags = IORESOURCE_MEM, |
123 | }; | 126 | }; |
124 | 127 | ||
@@ -132,6 +135,12 @@ static struct platform_device ts72xx_flash = { | |||
132 | .resource = &ts72xx_flash_resource, | 135 | .resource = &ts72xx_flash_resource, |
133 | }; | 136 | }; |
134 | 137 | ||
138 | static void __init ts72xx_register_flash(void) | ||
139 | { | ||
140 | if (board_is_ts7200()) | ||
141 | platform_device_register(&ts72xx_flash); | ||
142 | } | ||
143 | |||
135 | static unsigned char ts72xx_rtc_readbyte(unsigned long addr) | 144 | static unsigned char ts72xx_rtc_readbyte(unsigned long addr) |
136 | { | 145 | { |
137 | __raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE); | 146 | __raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE); |
@@ -165,8 +174,7 @@ static struct ep93xx_eth_data ts72xx_eth_data = { | |||
165 | static void __init ts72xx_init_machine(void) | 174 | static void __init ts72xx_init_machine(void) |
166 | { | 175 | { |
167 | ep93xx_init_devices(); | 176 | ep93xx_init_devices(); |
168 | if (board_is_ts7200()) | 177 | ts72xx_register_flash(); |
169 | platform_device_register(&ts72xx_flash); | ||
170 | platform_device_register(&ts72xx_rtc_device); | 178 | platform_device_register(&ts72xx_rtc_device); |
171 | 179 | ||
172 | ep93xx_register_eth(&ts72xx_eth_data, 1); | 180 | ep93xx_register_eth(&ts72xx_eth_data, 1); |