ARM: ep93xx: ts72xx: allow rtc-m48t86 to manage its own resources
The rtc-m48t86 driver can now handle its own resources and do the read/write operations internally. Pass the necessary resources to the driver and remove the m48t86_ops platform data. Remove the, then unnecessary, static remapping for the registers. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
This commit is contained in:
parent
3ea07127d9
commit
5594e88a44
|
@ -16,7 +16,6 @@
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/platform_data/rtc-m48t86.h>
|
|
||||||
#include <linux/mtd/nand.h>
|
#include <linux/mtd/nand.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
|
|
||||||
|
@ -45,16 +44,6 @@ static struct map_desc ts72xx_io_desc[] __initdata = {
|
||||||
.pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE),
|
.pfn = __phys_to_pfn(TS72XX_OPTIONS2_PHYS_BASE),
|
||||||
.length = TS72XX_OPTIONS2_SIZE,
|
.length = TS72XX_OPTIONS2_SIZE,
|
||||||
.type = MT_DEVICE,
|
.type = MT_DEVICE,
|
||||||
}, {
|
|
||||||
.virtual = (unsigned long)TS72XX_RTC_INDEX_VIRT_BASE,
|
|
||||||
.pfn = __phys_to_pfn(TS72XX_RTC_INDEX_PHYS_BASE),
|
|
||||||
.length = TS72XX_RTC_INDEX_SIZE,
|
|
||||||
.type = MT_DEVICE,
|
|
||||||
}, {
|
|
||||||
.virtual = (unsigned long)TS72XX_RTC_DATA_VIRT_BASE,
|
|
||||||
.pfn = __phys_to_pfn(TS72XX_RTC_DATA_PHYS_BASE),
|
|
||||||
.length = TS72XX_RTC_DATA_SIZE,
|
|
||||||
.type = MT_DEVICE,
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -179,31 +168,22 @@ static void __init ts72xx_register_flash(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* RTC M48T86
|
||||||
|
*************************************************************************/
|
||||||
|
#define TS72XX_RTC_INDEX_PHYS_BASE (EP93XX_CS1_PHYS_BASE + 0x00800000)
|
||||||
|
#define TS72XX_RTC_DATA_PHYS_BASE (EP93XX_CS1_PHYS_BASE + 0x01700000)
|
||||||
|
|
||||||
static unsigned char ts72xx_rtc_readbyte(unsigned long addr)
|
static struct resource ts72xx_rtc_resources[] = {
|
||||||
{
|
DEFINE_RES_MEM(TS72XX_RTC_INDEX_PHYS_BASE, 0x01),
|
||||||
__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
|
DEFINE_RES_MEM(TS72XX_RTC_DATA_PHYS_BASE, 0x01),
|
||||||
return __raw_readb(TS72XX_RTC_DATA_VIRT_BASE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ts72xx_rtc_writebyte(unsigned char value, unsigned long addr)
|
|
||||||
{
|
|
||||||
__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
|
|
||||||
__raw_writeb(value, TS72XX_RTC_DATA_VIRT_BASE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct m48t86_ops ts72xx_rtc_ops = {
|
|
||||||
.readbyte = ts72xx_rtc_readbyte,
|
|
||||||
.writebyte = ts72xx_rtc_writebyte,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct platform_device ts72xx_rtc_device = {
|
static struct platform_device ts72xx_rtc_device = {
|
||||||
.name = "rtc-m48t86",
|
.name = "rtc-m48t86",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
.dev = {
|
.resource = ts72xx_rtc_resources,
|
||||||
.platform_data = &ts72xx_rtc_ops,
|
.num_resources = ARRAY_SIZE(ts72xx_rtc_resources),
|
||||||
},
|
|
||||||
.num_resources = 0,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource ts72xx_wdt_resources[] = {
|
static struct resource ts72xx_wdt_resources[] = {
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
* febff000 22000000 4K model number register (bits 0-2)
|
* febff000 22000000 4K model number register (bits 0-2)
|
||||||
* febfe000 22400000 4K options register
|
* febfe000 22400000 4K options register
|
||||||
* febfd000 22800000 4K options register #2
|
* febfd000 22800000 4K options register #2
|
||||||
* febf9000 10800000 4K TS-5620 RTC index register
|
|
||||||
* febf8000 11700000 4K TS-5620 RTC data register
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define TS72XX_MODEL_PHYS_BASE 0x22000000
|
#define TS72XX_MODEL_PHYS_BASE 0x22000000
|
||||||
|
@ -40,15 +38,6 @@
|
||||||
#define TS72XX_OPTIONS2_TS9420 0x04
|
#define TS72XX_OPTIONS2_TS9420 0x04
|
||||||
#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
|
#define TS72XX_OPTIONS2_TS9420_BOOT 0x02
|
||||||
|
|
||||||
|
|
||||||
#define TS72XX_RTC_INDEX_VIRT_BASE IOMEM(0xfebf9000)
|
|
||||||
#define TS72XX_RTC_INDEX_PHYS_BASE 0x10800000
|
|
||||||
#define TS72XX_RTC_INDEX_SIZE 0x00001000
|
|
||||||
|
|
||||||
#define TS72XX_RTC_DATA_VIRT_BASE IOMEM(0xfebf8000)
|
|
||||||
#define TS72XX_RTC_DATA_PHYS_BASE 0x11700000
|
|
||||||
#define TS72XX_RTC_DATA_SIZE 0x00001000
|
|
||||||
|
|
||||||
#define TS72XX_WDT_CONTROL_PHYS_BASE 0x23800000
|
#define TS72XX_WDT_CONTROL_PHYS_BASE 0x23800000
|
||||||
#define TS72XX_WDT_FEED_PHYS_BASE 0x23c00000
|
#define TS72XX_WDT_FEED_PHYS_BASE 0x23c00000
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue