rtc.h 1.6 KB
Newer Older
L
Linus Torvalds 已提交
1
/*
2
 * include/asm-mips/rtc.h
L
Linus Torvalds 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 *
 * (Really an interface for drivers/char/genrtc.c)
 *
 * Copyright (C) 2004 MontaVista Software Inc.
 * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
 *
 * Please read the COPYING file for all license details.
 */

#ifndef _MIPS_RTC_H
#define _MIPS_RTC_H

#ifdef __KERNEL__

#include <linux/rtc.h>
18
#include <asm/time.h>
L
Linus Torvalds 已提交
19 20 21 22 23 24 25 26 27 28 29 30

#define RTC_PIE 0x40            /* periodic interrupt enable */
#define RTC_AIE 0x20            /* alarm interrupt enable */
#define RTC_UIE 0x10            /* update-finished interrupt enable */

/* some dummy definitions */
#define RTC_BATT_BAD 0x100      /* battery bad */
#define RTC_SQWE 0x08           /* enable square-wave output */
#define RTC_DM_BINARY 0x04      /* all time/date values are BCD if clear */
#define RTC_24H 0x02            /* 24 hour mode - else hours bit 7 means pm */
#define RTC_DST_EN 0x01         /* auto switch DST - works f. USA only */

31 32 33 34
static inline unsigned int get_rtc_time(struct rtc_time *time)
{
	unsigned long nowtime;

R
Ralf Baechle 已提交
35
	nowtime = rtc_mips_get_time();
36 37 38 39 40 41 42 43 44 45 46 47 48 49
	to_tm(nowtime, time);
	time->tm_year -= 1900;

	return RTC_24H;
}

static inline int set_rtc_time(struct rtc_time *time)
{
	unsigned long nowtime;
	int ret;

	nowtime = mktime(time->tm_year+1900, time->tm_mon+1,
			time->tm_mday, time->tm_hour, time->tm_min,
			time->tm_sec);
R
Ralf Baechle 已提交
50
	ret = rtc_mips_set_time(nowtime);
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

	return ret;
}

static inline unsigned int get_rtc_ss(void)
{
	struct rtc_time h;

	get_rtc_time(&h);
	return h.tm_sec;
}

static inline int get_rtc_pll(struct rtc_pll_info *pll)
{
	return -EINVAL;
}

static inline int set_rtc_pll(struct rtc_pll_info *pll)
{
	return -EINVAL;
}
L
Linus Torvalds 已提交
72 73
#endif
#endif