rtc.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. #ifndef __ASM_POWERPC_RTC_H__
  24. #define __ASM_POWERPC_RTC_H__
  25. #ifdef __KERNEL__
  26. #include <linux/rtc.h>
  27. #include <asm/machdep.h>
  28. #include <asm/time.h>
  29. #define RTC_PIE 0x40 /* periodic interrupt enable */
  30. #define RTC_AIE 0x20 /* alarm interrupt enable */
  31. #define RTC_UIE 0x10 /* update-finished interrupt enable */
  32. /* some dummy definitions */
  33. #define RTC_BATT_BAD 0x100 /* battery bad */
  34. #define RTC_SQWE 0x08 /* enable square-wave output */
  35. #define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */
  36. #define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */
  37. #define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */
  38. static inline unsigned int get_rtc_time(struct rtc_time *time)
  39. {
  40. if (ppc_md.get_rtc_time)
  41. ppc_md.get_rtc_time(time);
  42. return RTC_24H;
  43. }
  44. /* Set the current date and time in the real time clock. */
  45. static inline int set_rtc_time(struct rtc_time *time)
  46. {
  47. if (ppc_md.set_rtc_time)
  48. return ppc_md.set_rtc_time(time);
  49. return -EINVAL;
  50. }
  51. static inline unsigned int get_rtc_ss(void)
  52. {
  53. struct rtc_time h;
  54. get_rtc_time(&h);
  55. return h.tm_sec;
  56. }
  57. static inline int get_rtc_pll(struct rtc_pll_info *pll)
  58. {
  59. return -EINVAL;
  60. }
  61. static inline int set_rtc_pll(struct rtc_pll_info *pll)
  62. {
  63. return -EINVAL;
  64. }
  65. #endif /* __KERNEL__ */
  66. #endif /* __ASM_POWERPC_RTC_H__ */