[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>
This commit is contained in:
parent
4be3bd7849
commit
3174c88af4
2 changed files with 13 additions and 8 deletions
|
@ -41,9 +41,6 @@
|
||||||
#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
|
#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
|
||||||
|
|
||||||
|
|
||||||
#define TS72XX_NOR_PHYS_BASE 0x60000000
|
|
||||||
#define TS72XX_NOR2_PHYS_BASE 0x62000000
|
|
||||||
|
|
||||||
#define TS72XX_NAND1_DATA_PHYS_BASE 0x60000000
|
#define TS72XX_NAND1_DATA_PHYS_BASE 0x60000000
|
||||||
#define TS72XX_NAND2_DATA_PHYS_BASE 0x70000000
|
#define TS72XX_NAND2_DATA_PHYS_BASE 0x70000000
|
||||||
#define TS72XX_NAND_DATA_VIRT_BASE 0xfebfc000
|
#define TS72XX_NAND_DATA_VIRT_BASE 0xfebfc000
|
||||||
|
|
|
@ -112,13 +112,16 @@ static void __init ts72xx_map_io(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* NOR flash (TS-7200 only)
|
||||||
|
*************************************************************************/
|
||||||
static struct physmap_flash_data ts72xx_flash_data = {
|
static struct physmap_flash_data ts72xx_flash_data = {
|
||||||
.width = 1,
|
.width = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource ts72xx_flash_resource = {
|
static struct resource ts72xx_flash_resource = {
|
||||||
.start = TS72XX_NOR_PHYS_BASE,
|
.start = EP93XX_CS6_PHYS_BASE,
|
||||||
.end = TS72XX_NOR_PHYS_BASE + SZ_16M - 1,
|
.end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -132,6 +135,12 @@ static struct platform_device ts72xx_flash = {
|
||||||
.resource = &ts72xx_flash_resource,
|
.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)
|
static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
|
||||||
{
|
{
|
||||||
__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
|
__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)
|
static void __init ts72xx_init_machine(void)
|
||||||
{
|
{
|
||||||
ep93xx_init_devices();
|
ep93xx_init_devices();
|
||||||
if (board_is_ts7200())
|
ts72xx_register_flash();
|
||||||
platform_device_register(&ts72xx_flash);
|
|
||||||
platform_device_register(&ts72xx_rtc_device);
|
platform_device_register(&ts72xx_rtc_device);
|
||||||
|
|
||||||
ep93xx_register_eth(&ts72xx_eth_data, 1);
|
ep93xx_register_eth(&ts72xx_eth_data, 1);
|
||||||
|
|
Loading…
Reference in a new issue