rtc.c
Go to the documentation of this file.00001
00002
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
00054 #include <dev/rtc.h>
00055
00056 static NUTRTC *reg_rtc;
00057
00058
00069 int NutRegisterRtc(NUTRTC * rtc)
00070 {
00071 reg_rtc = rtc;
00072 if (rtc && reg_rtc->rtc_init) {
00073 if ((*reg_rtc->rtc_init) ()) {
00074 reg_rtc = NULL;
00075 return -1;
00076 }
00077 }
00078 return 0;
00079 }
00080
00091 int NutRtcGetTime(struct _tm *tm)
00092 {
00093 if (reg_rtc && reg_rtc->rtc_gettime && tm) {
00094 return (*reg_rtc->rtc_gettime) (tm);
00095 }
00096 return -1;
00097 }
00098
00109 int NutRtcSetTime(CONST struct _tm *tm)
00110 {
00111 if (reg_rtc && reg_rtc->rtc_settime && tm) {
00112 return (*reg_rtc->rtc_settime) (tm);
00113 }
00114 return -1;
00115 }
00116
00128 int NutRtcGetAlarm(int idx, struct _tm *tm, int *aflags)
00129 {
00130 if (reg_rtc && reg_rtc->rtc_getalarm) {
00131 return (*reg_rtc->rtc_getalarm) (idx, tm, aflags);
00132 }
00133 return -1;
00134 }
00135
00152 int NutRtcSetAlarm(int idx, CONST struct _tm *tm, int aflags)
00153 {
00154 if (reg_rtc && reg_rtc->rtc_setalarm) {
00155 return (*reg_rtc->rtc_setalarm) (idx, tm, aflags);
00156 }
00157 return -1;
00158 }
00159
00170 int NutRtcGetStatus(uint32_t * sflags)
00171 {
00172 if (reg_rtc && reg_rtc->rtc_getstatus) {
00173 return (*reg_rtc->rtc_getstatus) (sflags);
00174 }
00175 return -1;
00176 }
00177
00185 int NutRtcClearStatus(uint32_t sflags)
00186 {
00187 if (reg_rtc && reg_rtc->rtc_clrstatus) {
00188 return (*reg_rtc->rtc_clrstatus) (sflags);
00189 }
00190 return -1;
00191 }