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:
Родитель
3ea07127d9
Коммит
5594e88a44
|
@ -16,7 +16,6 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/platform_data/rtc-m48t86.h>
|
||||
#include <linux/mtd/nand.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),
|
||||
.length = TS72XX_OPTIONS2_SIZE,
|
||||
.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)
|
||||
{
|
||||
__raw_writeb(addr, TS72XX_RTC_INDEX_VIRT_BASE);
|
||||
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 resource ts72xx_rtc_resources[] = {
|
||||
DEFINE_RES_MEM(TS72XX_RTC_INDEX_PHYS_BASE, 0x01),
|
||||
DEFINE_RES_MEM(TS72XX_RTC_DATA_PHYS_BASE, 0x01),
|
||||
};
|
||||
|
||||
static struct platform_device ts72xx_rtc_device = {
|
||||
.name = "rtc-m48t86",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = &ts72xx_rtc_ops,
|
||||
},
|
||||
.num_resources = 0,
|
||||
.resource = ts72xx_rtc_resources,
|
||||
.num_resources = ARRAY_SIZE(ts72xx_rtc_resources),
|
||||
};
|
||||
|
||||
static struct resource ts72xx_wdt_resources[] = {
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
* febff000 22000000 4K model number register (bits 0-2)
|
||||
* febfe000 22400000 4K options register
|
||||
* 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
|
||||
|
@ -40,15 +38,6 @@
|
|||
#define TS72XX_OPTIONS2_TS9420 0x04
|
||||
#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_FEED_PHYS_BASE 0x23c00000
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче