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
00053
00054
00055
00056
00057
00058
00059 #include <dev/rtc.h>
00060
00063 #define X12RTC_SCA0 0x00
00064 #define X12RTC_SCA1 0x08
00065 #define X12RTC_SCA_ESC 0x80
00067 #define X12RTC_MNA0 0x01
00068 #define X12RTC_MNA1 0x09
00069 #define X12RTC_MNA_EMN 0x80
00071 #define X12RTC_HRA0 0x02
00072 #define X12RTC_HRA1 0x0A
00073 #define X12RTC_HRA_EHR 0x80
00075 #define X12RTC_DTA0 0x03
00076 #define X12RTC_DTA1 0x0B
00077 #define X12RTC_DTA_EDT 0x80
00079 #define X12RTC_MOA0 0x04
00080 #define X12RTC_MOA1 0x0C
00081 #define X12RTC_MOA_EMO 0x80
00083 #define X12RTC_YRA0 0x05
00084 #define X12RTC_YRA1 0x0D
00086 #define X12RTC_DWA0 0x06
00087 #define X12RTC_DWA1 0x0E
00088 #define X12RTC_DWA_EDW 0x80
00090 #define X12RTC_Y2K0 0x07
00091 #define X12RTC_Y2K1 0x0F
00093
00094
00096 #define X12RTC_BL 0x10
00098 #define X12RTC_BL_WD 0x18
00099 #define X12RTC_BL_WD_1750 0x00
00100 #define X12RTC_BL_WD_750 0x08
00101 #define X12RTC_BL_WD_250 0x10
00102 #define X12RTC_BL_WD_OFF 0x18
00104 #define X12RTC_BL_BP 0xE0
00105 #define X12RTC_BL_BP_NONE 0x00
00106 #define X12RTC_BL_BP_UQUAD 0x20
00107 #define X12RTC_BL_BP_UHALF 0x40
00108 #define X12RTC_BL_BP_FULL 0x60
00109 #define X12RTC_BL_BP_FIRST1 0x80
00110 #define X12RTC_BL_BP_FIRST2 0xA0
00111 #define X12RTC_BL_BP_FIRST3 0xC0
00112 #define X12RTC_BL_BP_FIRST8 0xE0
00114 #define X12RTC_INT 0x11
00116 #define X12RTC_INT_FO 0x14
00117 #define X12RTC_INT_FO_IRQ 0x00
00118 #define X12RTC_INT_FO_32KHZ 0x04
00119 #define X12RTC_INT_FO_100HZ 0x10
00120 #define X12RTC_INT_FO_1HZ 0x14
00122 #define X12RTC_INT_AL0E 0x20
00123 #define X12RTC_INT_AL1E 0x40
00124 #define X12RTC_INT_IM 0x80
00126 #define X12RTC_ATR 0x12
00128 #define X12RTC_DTR 0x13
00129 #define X12RTC_DTR_NONE 0x00
00130 #define X12RTC_DTR_PLUS10 0x02
00131 #define X12RTC_DTR_PLUS20 0x01
00132 #define X12RTC_DTR_PLUS30 0x03
00133 #define X12RTC_DTR_MINUS10 0x06
00134 #define X12RTC_DTR_MINUS20 0x05
00135 #define X12RTC_DTR_MINUS30 0x07
00137
00138
00140 #define X12RTC_SC 0x30
00141 #define X12RTC_MN 0x31
00142 #define X12RTC_HR 0x32
00143 #define X12RTC_HR_MIL 0x80
00144 #define X12RTC_DT 0x33
00145 #define X12RTC_MO 0x34
00146 #define X12RTC_YR 0x35
00147 #define X12RTC_DW 0x36
00148 #define X128xRTC_SSEC 0x37
00149 #define X122xRTC_Y2K 0x37
00151
00152
00154 #define X12RTC_SR 0x3F
00155 #define X12RTC_SR_RTCF 0x01
00156 #define X12RTC_SR_WEL 0x02
00157 #define X12RTC_SR_RWEL 0x04
00158 #define X12RTC_SR_AL0 0x20
00159 #define X12RTC_SR_AL1 0x40
00160 #define X12RTC_SR_BAT 0x80
00162
00163 extern NUTRTC rtcX12x6;
00164
00165 __BEGIN_DECLS
00166
00167 extern int X12Init(void);
00168
00169 extern int X12RtcGetClock(struct _tm *tm);
00170 extern int X12RtcSetClock(CONST struct _tm *tm);
00171 extern int X12RtcGetAlarm(int idx, struct _tm *tm, int *aflgs);
00172 extern int X12RtcSetAlarm(int idx, CONST struct _tm *tm, int aflgs);
00173 extern int X12RtcGetStatus(uint32_t *sflgs);
00174 extern int X12RtcClearStatus(uint32_t sflgs);
00175 extern int X12RtcReadRegs(uint8_t addr, uint8_t *buff, size_t len);
00176 extern int X12RtcWrite(int nv, CONST uint8_t *buff, size_t len);
00177
00178 extern int X12EepromRead(unsigned int addr, void *buff, size_t len);
00179 extern int X12EepromWrite(unsigned int addr, CONST void *buff, size_t len);
00180
00181 __END_DECLS
00182
00183 #endif