home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-m32r / rtc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  2.0 KB  |  66 lines

  1. #ifndef __RTC_H__
  2. #define __RTC_H__
  3.  
  4.    /* Dallas DS1302 clock/calendar register numbers. */
  5. #  define RTC_SECONDS      0
  6. #  define RTC_MINUTES      1
  7. #  define RTC_HOURS        2
  8. #  define RTC_DAY_OF_MONTH 3
  9. #  define RTC_MONTH        4
  10. #  define RTC_WEEKDAY      5
  11. #  define RTC_YEAR         6
  12. #  define RTC_CONTROL      7
  13.  
  14.    /* Bits in CONTROL register. */
  15. #  define RTC_CONTROL_WRITEPROTECT     0x80
  16. #  define RTC_TRICKLECHARGER         8
  17.  
  18.   /* Bits in TRICKLECHARGER register TCS TCS TCS TCS DS DS RS RS. */
  19. #  define RTC_TCR_PATTERN     0xA0    /* 1010xxxx */
  20. #  define RTC_TCR_1DIOD     0x04    /* xxxx01xx */
  21. #  define RTC_TCR_2DIOD     0x08    /* xxxx10xx */
  22. #  define RTC_TCR_DISABLED     0x00    /* xxxxxx00 Disabled */
  23. #  define RTC_TCR_2KOHM     0x01    /* xxxxxx01 2KOhm */
  24. #  define RTC_TCR_4KOHM     0x02    /* xxxxxx10 4kOhm */
  25. #  define RTC_TCR_8KOHM     0x03    /* xxxxxx11 8kOhm */
  26.  
  27. #ifdef CONFIG_DS1302
  28. extern unsigned char ds1302_readreg(int reg);
  29. extern void ds1302_writereg(int reg, unsigned char val);
  30. extern int ds1302_init(void);
  31. #  define CMOS_READ(x) ds1302_readreg(x)
  32. #  define CMOS_WRITE(val,reg) ds1302_writereg(reg,val)
  33. #  define RTC_INIT() ds1302_init()
  34. #else
  35.   /* No RTC configured so we shouldn't try to access any. */
  36. #  define CMOS_READ(x) 42
  37. #  define CMOS_WRITE(x,y)
  38. #  define RTC_INIT() (-1)
  39. #endif
  40.  
  41. /*
  42.  * The struct used to pass data via the following ioctl. Similar to the
  43.  * struct tm in <time.h>, but it needs to be here so that the kernel
  44.  * source is self contained, allowing cross-compiles, etc. etc.
  45.  */
  46. struct rtc_time {
  47.     int tm_sec;
  48.     int tm_min;
  49.     int tm_hour;
  50.     int tm_mday;
  51.     int tm_mon;
  52.     int tm_year;
  53.     int tm_wday;
  54.     int tm_yday;
  55.     int tm_isdst;
  56. };
  57.  
  58. /* ioctl() calls that are permitted to the /dev/rtc interface. */
  59. #define RTC_MAGIC 'p'
  60. #define RTC_RD_TIME        _IOR(RTC_MAGIC, 0x09, struct rtc_time)    /* Read RTC time. */
  61. #define RTC_SET_TIME        _IOW(RTC_MAGIC, 0x0a, struct rtc_time)    /* Set RTC time. */
  62. #define RTC_SET_CHARGE      _IOW(RTC_MAGIC, 0x0b, int)
  63. #define RTC_MAX_IOCTL 0x0b
  64.  
  65. #endif /* __RTC_H__ */
  66.