提交 a497aa20 编写于 作者: C Chris Elston 提交者: Linus Torvalds

[PATCH] ppc32: add rtc hooks in PPC7D platform file

This patch adds the hooks into the PPC7D platforms file to support the DS1337
RTC device as the clock device for the PPC7D board.
Signed-off-by: NChris Elston <chris.elston@radstone.co.uk>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 630710e3
......@@ -68,6 +68,7 @@
#define PPC7D_RST_PIN 17 /* GPP17 */
extern u32 mv64360_irq_base;
extern spinlock_t rtc_lock;
static struct mv64x60_handle bh;
static int ppc7d_has_alma;
......@@ -75,6 +76,11 @@ static int ppc7d_has_alma;
extern void gen550_progress(char *, unsigned short);
extern void gen550_init(int, struct uart_port *);
/* FIXME - move to h file */
extern int ds1337_do_command(int id, int cmd, void *arg);
#define DS1337_GET_DATE 0
#define DS1337_SET_DATE 1
/* residual data */
unsigned char __res[sizeof(bd_t)];
......@@ -1242,6 +1248,38 @@ static void __init ppc7d_setup_arch(void)
printk(KERN_INFO "Radstone Technology PPC7D\n");
if (ppc_md.progress)
ppc_md.progress("ppc7d_setup_arch: exit", 0);
}
/* Real Time Clock support.
* PPC7D has a DS1337 accessed by I2C.
*/
static ulong ppc7d_get_rtc_time(void)
{
struct rtc_time tm;
int result;
spin_lock(&rtc_lock);
result = ds1337_do_command(0, DS1337_GET_DATE, &tm);
spin_unlock(&rtc_lock);
if (result == 0)
result = mktime(tm.tm_year, tm.tm_mon, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
return result;
}
static int ppc7d_set_rtc_time(unsigned long nowtime)
{
struct rtc_time tm;
int result;
spin_lock(&rtc_lock);
to_tm(nowtime, &tm);
result = ds1337_do_command(0, DS1337_SET_DATE, &tm);
spin_unlock(&rtc_lock);
return result;
}
/* This kernel command line parameter can be used to have the target
......@@ -1299,6 +1337,10 @@ static void ppc7d_init2(void)
data8 |= 0x07;
outb(data8, PPC7D_CPLD_LEDS);
/* Hook up RTC. We couldn't do this earlier because we need the I2C subsystem */
ppc_md.set_rtc_time = ppc7d_set_rtc_time;
ppc_md.get_rtc_time = ppc7d_get_rtc_time;
pr_debug("%s: exit\n", __FUNCTION__);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册