1/* 2 * include/asm-mips/rtc.h 3 * 4 * (Really an interface for drivers/char/genrtc.c) 5 * 6 * Copyright (C) 2004 MontaVista Software Inc. 7 * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net 8 * 9 * Please read the COPYING file for all license details. 10 */ 11 12#ifndef _MIPS_RTC_H 13#define _MIPS_RTC_H 14 15#ifdef __KERNEL__ 16 17#include <linux/rtc.h> 18#include <asm/time.h> 19 20#define RTC_PIE 0x40 /* periodic interrupt enable */ 21#define RTC_AIE 0x20 /* alarm interrupt enable */ 22#define RTC_UIE 0x10 /* update-finished interrupt enable */ 23 24/* some dummy definitions */ 25#define RTC_BATT_BAD 0x100 /* battery bad */ 26#define RTC_SQWE 0x08 /* enable square-wave output */ 27#define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */ 28#define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */ 29#define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */ 30 31static inline unsigned int get_rtc_time(struct rtc_time *time) 32{ 33 unsigned long nowtime; 34 35 nowtime = rtc_mips_get_time(); 36 to_tm(nowtime, time); 37 time->tm_year -= 1900; 38 39 return RTC_24H; 40} 41 42static inline int set_rtc_time(struct rtc_time *time) 43{ 44 unsigned long nowtime; 45 int ret; 46 47 nowtime = mktime(time->tm_year+1900, time->tm_mon+1, 48 time->tm_mday, time->tm_hour, time->tm_min, 49 time->tm_sec); 50 ret = rtc_mips_set_time(nowtime); 51 52 return ret; 53} 54 55static inline unsigned int get_rtc_ss(void) 56{ 57 struct rtc_time h; 58 59 get_rtc_time(&h); 60 return h.tm_sec; 61} 62 63static inline int get_rtc_pll(struct rtc_pll_info *pll) 64{ 65 return -EINVAL; 66} 67 68static inline int set_rtc_pll(struct rtc_pll_info *pll) 69{ 70 return -EINVAL; 71} 72#endif 73#endif 74