home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-m32r / rtc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.0 KB  |  70 lines

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