00001 #ifndef _DEV_X12RTC_H_
00002 #define _DEV_X12RTC_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 #include <dev/rtc.h>
00053
00056 #define X12RTC_SCA0 0x00
00057 #define X12RTC_SCA1 0x08
00058 #define X12RTC_SCA_ESC 0x80
00060 #define X12RTC_MNA0 0x01
00061 #define X12RTC_MNA1 0x09
00062 #define X12RTC_MNA_EMN 0x80
00064 #define X12RTC_HRA0 0x02
00065 #define X12RTC_HRA1 0x0A
00066 #define X12RTC_HRA_EHR 0x80
00068 #define X12RTC_DTA0 0x03
00069 #define X12RTC_DTA1 0x0B
00070 #define X12RTC_DTA_EDT 0x80
00072 #define X12RTC_MOA0 0x04
00073 #define X12RTC_MOA1 0x0C
00074 #define X12RTC_MOA_EMO 0x80
00076 #define X12RTC_YRA0 0x05
00077 #define X12RTC_YRA1 0x0D
00079 #define X12RTC_DWA0 0x06
00080 #define X12RTC_DWA1 0x0E
00081 #define X12RTC_DWA_EDW 0x80
00083 #define X12RTC_Y2K0 0x07
00084 #define X12RTC_Y2K1 0x0F
00086
00087
00089 #define X12RTC_BL 0x10
00091 #define X12RTC_BL_WD 0x18
00092 #define X12RTC_BL_WD_1750 0x00
00093 #define X12RTC_BL_WD_750 0x08
00094 #define X12RTC_BL_WD_250 0x10
00095 #define X12RTC_BL_WD_OFF 0x18
00097 #define X12RTC_BL_BP 0xE0
00098 #define X12RTC_BL_BP_NONE 0x00
00099 #define X12RTC_BL_BP_UQUAD 0x20
00100 #define X12RTC_BL_BP_UHALF 0x40
00101 #define X12RTC_BL_BP_FULL 0x60
00102 #define X12RTC_BL_BP_FIRST1 0x80
00103 #define X12RTC_BL_BP_FIRST2 0xA0
00104 #define X12RTC_BL_BP_FIRST3 0xC0
00105 #define X12RTC_BL_BP_FIRST8 0xE0
00107 #define X12RTC_INT 0x11
00109 #define X12RTC_INT_FO 0x14
00110 #define X12RTC_INT_FO_IRQ 0x00
00111 #define X12RTC_INT_FO_32KHZ 0x04
00112 #define X12RTC_INT_FO_100HZ 0x10
00113 #define X12RTC_INT_FO_1HZ 0x14
00115 #define X12RTC_INT_AL0E 0x20
00116 #define X12RTC_INT_AL1E 0x40
00117 #define X12RTC_INT_IM 0x80
00119 #define X12RTC_ATR 0x12
00121 #define X12RTC_DTR 0x13
00122 #define X12RTC_DTR_NONE 0x00
00123 #define X12RTC_DTR_PLUS10 0x02
00124 #define X12RTC_DTR_PLUS20 0x01
00125 #define X12RTC_DTR_PLUS30 0x03
00126 #define X12RTC_DTR_MINUS10 0x06
00127 #define X12RTC_DTR_MINUS20 0x05
00128 #define X12RTC_DTR_MINUS30 0x07
00130
00131
00133 #define X12RTC_SC 0x30
00134 #define X12RTC_MN 0x31
00135 #define X12RTC_HR 0x32
00136 #define X12RTC_HR_MIL 0x80
00137 #define X12RTC_DT 0x33
00138 #define X12RTC_MO 0x34
00139 #define X12RTC_YR 0x35
00140 #define X12RTC_DW 0x36
00141 #define X128xRTC_SSEC 0x37
00142 #define X122xRTC_Y2K 0x37
00144
00145
00147 #define X12RTC_SR 0x3F
00148 #define X12RTC_SR_RTCF 0x01
00149 #define X12RTC_SR_WEL 0x02
00150 #define X12RTC_SR_RWEL 0x04
00151 #define X12RTC_SR_AL0 0x20
00152 #define X12RTC_SR_AL1 0x40
00153 #define X12RTC_SR_BAT 0x80
00155
00156 extern NUTRTC rtcX12x6;
00157
00158 __BEGIN_DECLS
00159
00160 extern int X12Init(void);
00161
00162 extern int X12RtcGetClock(struct _tm *tm);
00163 extern int X12RtcSetClock(CONST struct _tm *tm);
00164 extern int X12RtcGetAlarm(int idx, struct _tm *tm, int *aflgs);
00165 extern int X12RtcSetAlarm(int idx, CONST struct _tm *tm, int aflgs);
00166 extern int X12RtcGetStatus(u_long *sflgs);
00167 extern int X12RtcClearStatus(u_long sflgs);
00168 extern int X12RtcReadRegs(u_char addr, u_char *buff, size_t len);
00169 extern int X12RtcWrite(int nv, CONST u_char *buff, size_t len);
00170
00171 extern int X12EepromRead(u_int addr, void *buff, size_t len);
00172 extern int X12EepromWrite(u_int addr, CONST void *buff, size_t len);
00173
00174 __END_DECLS
00175
00176 #endif