1 /* 2 * Real-time clock definitions and interfaces 3 * 4 * Author: Tom Rini <trini@mvista.com> 5 * 6 * 2002 (c) MontaVista, Software, Inc. This file is licensed under 7 * the terms of the GNU General Public License version 2. This program 8 * is licensed "as is" without any warranty of any kind, whether express 9 * or implied. 10 * 11 * Based on: 12 * include/asm-m68k/rtc.h 13 * 14 * Copyright Richard Zidlicky 15 * implementation details for genrtc/q40rtc driver 16 * 17 * And the old drivers/macintosh/rtc.c which was heavily based on: 18 * Linux/SPARC Real Time Clock Driver 19 * Copyright (C) 1996 Thomas K. Dyas (tdyas@eden.rutgers.edu) 20 * 21 * With additional work by Paul Mackerras and Franz Sirl. 22 */ 23 24 #ifndef __ASM_POWERPC_RTC_H__ 25 #define __ASM_POWERPC_RTC_H__ 26 27 #ifdef __KERNEL__ 28 29 #include <linux/rtc.h> 30 31 #include <asm/machdep.h> 32 #include <asm/time.h> 33 34 #define RTC_PIE 0x40 /* periodic interrupt enable */ 35 #define RTC_AIE 0x20 /* alarm interrupt enable */ 36 #define RTC_UIE 0x10 /* update-finished interrupt enable */ 37 38 /* some dummy definitions */ 39 #define RTC_BATT_BAD 0x100 /* battery bad */ 40 #define RTC_SQWE 0x08 /* enable square-wave output */ 41 #define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */ 42 #define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */ 43 #define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */ 44 get_rtc_time(struct rtc_time * time)45static inline unsigned int get_rtc_time(struct rtc_time *time) 46 { 47 if (ppc_md.get_rtc_time) 48 ppc_md.get_rtc_time(time); 49 return RTC_24H; 50 } 51 52 /* Set the current date and time in the real time clock. */ set_rtc_time(struct rtc_time * time)53static inline int set_rtc_time(struct rtc_time *time) 54 { 55 if (ppc_md.set_rtc_time) 56 return ppc_md.set_rtc_time(time); 57 return -EINVAL; 58 } 59 get_rtc_ss(void)60static inline unsigned int get_rtc_ss(void) 61 { 62 struct rtc_time h; 63 64 get_rtc_time(&h); 65 return h.tm_sec; 66 } 67 get_rtc_pll(struct rtc_pll_info * pll)68static inline int get_rtc_pll(struct rtc_pll_info *pll) 69 { 70 return -EINVAL; 71 } set_rtc_pll(struct rtc_pll_info * pll)72static inline int set_rtc_pll(struct rtc_pll_info *pll) 73 { 74 return -EINVAL; 75 } 76 77 #endif /* __KERNEL__ */ 78 #endif /* __ASM_POWERPC_RTC_H__ */ 79