Skip to content

Commit

Permalink
MIPS: IP22/28: Switch over to RTC class driver
Browse files Browse the repository at this point in the history
This patchset removes some dead code and creates a platform device
for the RTC class driver.

Signed-off-by: Thomas Bogendoerfer <[email protected]>
Signed-off-by: Ralf Baechle <[email protected]>
  • Loading branch information
tsbogend authored and ralfbaechle committed Oct 15, 2008
1 parent 540799e commit 7d81a5e
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 89 deletions.
18 changes: 0 additions & 18 deletions arch/mips/include/asm/mach-ip22/ds1286.h

This file was deleted.

4 changes: 0 additions & 4 deletions arch/mips/include/asm/mach-ip28/ds1286.h

This file was deleted.

15 changes: 15 additions & 0 deletions arch/mips/sgi-ip22/ip22-platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -192,3 +192,18 @@ static int __init sgi_button_devinit(void)
}

device_initcall(sgi_button_devinit);

static int __init sgi_ds1286_devinit(void)
{
struct resource res;

memset(&res, 0, sizeof(res));
res.start = HPC3_CHIP0_BASE + offsetof(struct hpc3_regs, rtcregs);
res.end = res.start + sizeof(hpc3c0->rtcregs) - 1;
res.flags = IORESOURCE_MEM;

return IS_ERR(platform_device_register_simple("rtc-ds1286", -1,
&res, 1));
}

device_initcall(sgi_ds1286_devinit);
1 change: 0 additions & 1 deletion arch/mips/sgi-ip22/ip22-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
* Copyright (C) 1996 David S. Miller ([email protected])
* Copyright (C) 1997, 1998 Ralf Baechle ([email protected])
*/
#include <linux/ds1286.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/kdev_t.h>
Expand Down
64 changes: 0 additions & 64 deletions arch/mips/sgi-ip22/ip22-time.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
* Copyright (C) 2003, 06 Ralf Baechle ([email protected])
*/
#include <linux/bcd.h>
#include <linux/ds1286.h>
#include <linux/init.h>
#include <linux/irq.h>
#include <linux/kernel.h>
Expand All @@ -29,69 +28,6 @@
#include <asm/sgi/hpc3.h>
#include <asm/sgi/ip22.h>

/*
* Note that mktime uses month from 1 to 12 while rtc_time_to_tm
* uses 0 to 11.
*/
unsigned long read_persistent_clock(void)
{
unsigned int yrs, mon, day, hrs, min, sec;
unsigned int save_control;
unsigned long flags;

spin_lock_irqsave(&rtc_lock, flags);
save_control = hpc3c0->rtcregs[RTC_CMD] & 0xff;
hpc3c0->rtcregs[RTC_CMD] = save_control | RTC_TE;

sec = BCD2BIN(hpc3c0->rtcregs[RTC_SECONDS] & 0xff);
min = BCD2BIN(hpc3c0->rtcregs[RTC_MINUTES] & 0xff);
hrs = BCD2BIN(hpc3c0->rtcregs[RTC_HOURS] & 0x3f);
day = BCD2BIN(hpc3c0->rtcregs[RTC_DATE] & 0xff);
mon = BCD2BIN(hpc3c0->rtcregs[RTC_MONTH] & 0x1f);
yrs = BCD2BIN(hpc3c0->rtcregs[RTC_YEAR] & 0xff);

hpc3c0->rtcregs[RTC_CMD] = save_control;
spin_unlock_irqrestore(&rtc_lock, flags);

if (yrs < 45)
yrs += 30;
if ((yrs += 40) < 70)
yrs += 100;

return mktime(yrs + 1900, mon, day, hrs, min, sec);
}

int rtc_mips_set_time(unsigned long tim)
{
struct rtc_time tm;
unsigned int save_control;
unsigned long flags;

rtc_time_to_tm(tim, &tm);

tm.tm_mon += 1; /* tm_mon starts at zero */
tm.tm_year -= 40;
if (tm.tm_year >= 100)
tm.tm_year -= 100;

spin_lock_irqsave(&rtc_lock, flags);
save_control = hpc3c0->rtcregs[RTC_CMD] & 0xff;
hpc3c0->rtcregs[RTC_CMD] = save_control | RTC_TE;

hpc3c0->rtcregs[RTC_YEAR] = BIN2BCD(tm.tm_year);
hpc3c0->rtcregs[RTC_MONTH] = BIN2BCD(tm.tm_mon);
hpc3c0->rtcregs[RTC_DATE] = BIN2BCD(tm.tm_mday);
hpc3c0->rtcregs[RTC_HOURS] = BIN2BCD(tm.tm_hour);
hpc3c0->rtcregs[RTC_MINUTES] = BIN2BCD(tm.tm_min);
hpc3c0->rtcregs[RTC_SECONDS] = BIN2BCD(tm.tm_sec);
hpc3c0->rtcregs[RTC_HUNDREDTH_SECOND] = 0;

hpc3c0->rtcregs[RTC_CMD] = save_control;
spin_unlock_irqrestore(&rtc_lock, flags);

return 0;
}

static unsigned long dosample(void)
{
u32 ct0, ct1;
Expand Down
2 changes: 0 additions & 2 deletions include/linux/ds1286.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
#ifndef __LINUX_DS1286_H
#define __LINUX_DS1286_H

#include <asm/ds1286.h>

/**********************************************************************
* register summary
**********************************************************************/
Expand Down

0 comments on commit 7d81a5e

Please sign in to comment.