|
@@ -16,6 +16,7 @@
|
|
|
#include <linux/mm.h>
|
|
|
#include <linux/sched.h>
|
|
|
#include <linux/interrupt.h>
|
|
|
+#include <linux/ioport.h>
|
|
|
#include <linux/mtd/physmap.h>
|
|
|
#include <linux/platform_device.h>
|
|
|
#include <linux/m48t86.h>
|
|
@@ -111,6 +112,26 @@ static void __init ts72xx_map_io(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static struct physmap_flash_data ts72xx_flash_data = {
|
|
|
+ .width = 1,
|
|
|
+};
|
|
|
+
|
|
|
+static struct resource ts72xx_flash_resource = {
|
|
|
+ .start = TS72XX_NOR_PHYS_BASE,
|
|
|
+ .end = TS72XX_NOR_PHYS_BASE + 0x01000000,
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device ts72xx_flash = {
|
|
|
+ .name = "physmap-flash",
|
|
|
+ .id = 0,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &ts72xx_flash_data,
|
|
|
+ },
|
|
|
+ .num_resources = 1,
|
|
|
+ .resource = &ts72xx_flash_resource,
|
|
|
+};
|
|
|
+
|
|
|
static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
|
|
|
{
|
|
|
__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
|
|
@@ -141,7 +162,7 @@ static void __init ts72xx_init_machine(void)
|
|
|
{
|
|
|
ep93xx_init_devices();
|
|
|
if (board_is_ts7200())
|
|
|
- physmap_configure(TS72XX_NOR_PHYS_BASE, 0x01000000, 1, NULL);
|
|
|
+ platform_device_register(&ts72xx_flash);
|
|
|
platform_device_register(&ts72xx_rtc_device);
|
|
|
}
|
|
|
|