mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 06:32:08 +00:00
mips: ip32: add platform data hooks to use DS1685 driver
This modifies the IP32 (SGI O2) platform and reset code to utilize the new rtc-ds1685 driver. The old mc146818rtc.h header is removed and ip32_defconfig is updated as well. Signed-off-by: Joshua Kinard <kumba@gentoo.org> Acked-by: Ralf Baechle <ralf@linux-mips.org> Cc: Alessandro Zummo <a.zummo@towertech.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9e522c0d28
commit
15beb694c6
4 changed files with 84 additions and 140 deletions
|
@ -9,10 +9,13 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/rtc/ds1685.h>
|
||||
|
||||
#include <asm/ip32/mace.h>
|
||||
#include <asm/ip32/ip32_ints.h>
|
||||
|
||||
extern void ip32_prepare_poweroff(void);
|
||||
|
||||
#define MACEISA_SERIAL1_OFFS offsetof(struct sgi_mace, isa.serial1)
|
||||
#define MACEISA_SERIAL2_OFFS offsetof(struct sgi_mace, isa.serial2)
|
||||
|
||||
|
@ -90,18 +93,47 @@ static __init int sgio2btns_devinit(void)
|
|||
|
||||
device_initcall(sgio2btns_devinit);
|
||||
|
||||
static struct resource sgio2_cmos_rsrc[] = {
|
||||
#define MACE_RTC_RES_START (MACE_BASE + offsetof(struct sgi_mace, isa.rtc))
|
||||
#define MACE_RTC_RES_END (MACE_RTC_RES_START + 32767)
|
||||
|
||||
static struct resource ip32_rtc_resources[] = {
|
||||
{
|
||||
.start = 0x70,
|
||||
.end = 0x71,
|
||||
.flags = IORESOURCE_IO
|
||||
.start = MACEISA_RTC_IRQ,
|
||||
.end = MACEISA_RTC_IRQ,
|
||||
.flags = IORESOURCE_IRQ
|
||||
}, {
|
||||
.start = MACE_RTC_RES_START,
|
||||
.end = MACE_RTC_RES_END,
|
||||
.flags = IORESOURCE_MEM,
|
||||
}
|
||||
};
|
||||
|
||||
static __init int sgio2_cmos_devinit(void)
|
||||
/* RTC registers on IP32 are each padded by 256 bytes (0x100). */
|
||||
static struct ds1685_rtc_platform_data
|
||||
ip32_rtc_platform_data[] = {
|
||||
{
|
||||
.regstep = 0x100,
|
||||
.bcd_mode = true,
|
||||
.no_irq = false,
|
||||
.uie_unsupported = false,
|
||||
.alloc_io_resources = true,
|
||||
.plat_prepare_poweroff = ip32_prepare_poweroff,
|
||||
},
|
||||
};
|
||||
|
||||
struct platform_device ip32_rtc_device = {
|
||||
.name = "rtc-ds1685",
|
||||
.id = -1,
|
||||
.dev = {
|
||||
.platform_data = ip32_rtc_platform_data,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(ip32_rtc_resources),
|
||||
.resource = ip32_rtc_resources,
|
||||
};
|
||||
|
||||
+static int __init sgio2_rtc_devinit(void)
|
||||
{
|
||||
return IS_ERR(platform_device_register_simple("rtc_cmos", -1,
|
||||
sgio2_cmos_rsrc, 1));
|
||||
return platform_device_register(&ip32_rtc_device);
|
||||
}
|
||||
|
||||
device_initcall(sgio2_cmos_devinit);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue