m48t35.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * BK Id: SCCS/s.m48t35.h 1.8 10/16/01 15:58:42 trini
  3.  */
  4. /*
  5.  *  Registers for the SGS-Thomson M48T35 Timekeeper RAM chip
  6.  *  and
  7.  *  Registers for the SGS-Thomson M48T37 Timekeeper RAM chip
  8.  *  The 37 is the 35 plus alarm and century thus the offsets
  9.  *  are shifted by the extra registers.
  10.  */
  11. #ifndef __PPC_M48T35_H
  12. #define __PPC_M48T35_H
  13. /* RTC offsets */
  14. #define M48T35_RTC_FLAGS (-8) /* the negative regs are really T37 only */ 
  15. #define M48T35_RTC_CENTURY (-7)
  16. #define M48T35_RTC_AL_SEC (-6)    
  17. #define M48T35_RTC_AL_MIN (-5)    
  18. #define M48T35_RTC_AL_HRS (-4)    
  19. #define M48T35_RTC_AL_DOM (-3)    
  20. #define M48T35_RTC_INTERRUPT (-2)
  21. #define M48T35_RTC_WATCHDOG (-1)
  22. #define M48T35_RTC_CONTROL 0 /* T35 starts here */ 
  23. #define M48T35_RTC_SECONDS 1
  24. #define M48T35_RTC_MINUTES 2
  25. #define M48T35_RTC_HOURS 3
  26. #define M48T35_RTC_DAY 4
  27. #define M48T35_RTC_DOM 5
  28. #define M48T35_RTC_MONTH 6
  29. #define M48T35_RTC_YEAR 7
  30. /* this way help us know which bits go with which regs */ 
  31. #define M48T35_RTC_FLAGS_BL           0x10
  32. #define M48T35_RTC_FLAGS_AF           0x40
  33. #define M48T35_RTC_FLAGS_WDF          0x80
  34. #define M48T35_RTC_INTERRUPT_AFE       0x80
  35. #define M48T35_RTC_INTERRUPT_ABE       0x20
  36. #define M48T35_RTC_INTERRUPT_ALL       (M48T35_RTC_INTERRUPT_AFE|M48T35_RTC_INTERRUPT_ABE)
  37. #define M48T35_RTC_WATCHDOG_RB         0x03
  38. #define M48T35_RTC_WATCHDOG_BMB        0x7c
  39. #define M48T35_RTC_WATCHDOG_WDS        0x80
  40. #define M48T35_RTC_WATCHDOG_ALL        (M48T35_RTC_WATCHDOG_RB|M48T35_RTC_WATCHDOG_BMB|M48T35_RTC_W
  41. #define M48T35_RTC_CONTROL_WRITE       0x80
  42. #define M48T35_RTC_CONTROL_READ        0x40
  43. #define M48T35_RTC_CONTROL_CAL_SIGN    0x20    
  44. #define M48T35_RTC_CONTROL_CAL_VALUE   0x1f
  45. #define M48T35_RTC_CONTROL_LOCKED      (M48T35_RTC_WRITE|M48T35_RTC_READ)
  46. #define M48T35_RTC_CONTROL_CALIBRATION (M48T35_RTC_CONTROL_CAL_SIGN|M48T35_RTC_CONTROL_CAL_VALUE)
  47. #define M48T35_RTC_SECONDS_SEC_1       0x0f
  48. #define M48T35_RTC_SECONDS_SEC_10      0x70    
  49. #define M48T35_RTC_SECONDS_ST          0x80
  50. #define M48T35_RTC_SECONDS_SEC_ALL     (M48T35_RTC_SECONDS_SEC_1|M48T35_RTC_SECONDS_SEC_10)
  51. #define M48T35_RTC_MINUTES_MIN_1       0x0f
  52. #define M48T35_RTC_MINUTES_MIN_10      0x70    
  53. #define M48T35_RTC_MINUTES_MIN_ALL     (M48T35_RTC_MINUTES_MIN_1|M48T35_RTC_MINUTES_MIN_10)
  54. #define M48T35_RTC_HOURS_HRS_1         0x0f
  55. #define M48T35_RTC_HOURS_HRS_10        0x30
  56. #define M48T35_RTC_HOURS_HRS_ALL       (M48T35_RTC_HOURS_HRS_1|M48T35_RTC_HOURS_HRS_10)
  57. #define M48T35_RTC_DAY_DAY_1           0x03
  58. #define M48T35_RTC_DAY_FT              0x40
  59. #define M48T35_RTC_ALARM_OFF           0x00
  60. #define M48T35_RTC_WATCHDOG_OFF        0x00
  61. /* legacy */
  62. #define M48T35_RTC_SET      0x80
  63. #define M48T35_RTC_STOPPED  0x80
  64. #define M48T35_RTC_READ     0x40
  65. /* read/write conversions */
  66. #ifndef BCD_TO_BIN
  67. #define BCD_TO_BIN(x)   ((x)=((x)&15) + ((x)>>4)*10)
  68. #endif
  69. #ifndef BIN_TO_BCD
  70. #define BIN_TO_BCD(x)   ((x)=(((x)/10)<<4) + (x)%10)
  71. #endif
  72. #endif