[Feature][T8TSK-240]RTC can cancel and reset
Change-Id: If1474ad0e75c6047b7acdc43a25334f2919a3861
diff --git a/src/lynq/lib/libpoweralarm/libpoweralarm.c b/src/lynq/lib/libpoweralarm/libpoweralarm.c
old mode 100644
new mode 100755
index 0cc3eb8..b63d663
--- a/src/lynq/lib/libpoweralarm/libpoweralarm.c
+++ b/src/lynq/lib/libpoweralarm/libpoweralarm.c
@@ -19,6 +19,9 @@
ssize_t poweralarm(char *buffer);
ssize_t wakealarm(char *buffer);
+
+int cancel_wakealarm(void);
+
/*****************************************************************************
*
* Prototype : poweralarm
@@ -56,7 +59,7 @@
/*****************************************************************************
* Prototype : wakealarm
* Description : set the wake-up alarm clock in low power mode
-* Input : char *buffer ; input format : 04-23-15-30-00 ( Mon-Day-Hour-Min-Sec ) Or 1200 ( seconds )
+* Input : char *buffer ; input format : 04-23-15-30-00 ( Mon-Day-Hour-Min-Sec ) Or 1200 ( seconds )
* Output : None
* Return Value : -1: error ; >0: set to wake up the devices after seconds
*
@@ -65,14 +68,15 @@
{
ssize_t sec;
char *time_buff = NULL;
-
+ int ret;
sec = format_change(buffer); //computing seconds for lowpower alarm
if(sec < 60)
{
ALOGI("No Mattch\n");
return -1;
}
-
+ ret = system("echo +0 > /sys/class/rtc/rtc0/wakealarm");
+ RLOGD("close wakealarm ret= %d\n", ret);
time_buff = (char*)malloc(100);
bzero(time_buff,100);
@@ -84,3 +88,45 @@
return sec; // wake-up devices after sec seconds
}
+
+
+/*****************************************************************************
+* Prototype : cancel wakealarm
+* Description : cancel the wake-up alarm clock in low power mode
+* Input : void
+* Output : int
+* Return Value : -1: error ; 0: cannel wakealarm success
+*
+*****************************************************************************/
+
+int cancel_wakealarm(void)
+{
+ int ret;
+ ret = system("echo +0 > /sys/class/rtc/rtc0/wakealarm");
+ RLOGD("close wakealarm ret= %d\n", ret);
+ return ret;
+
+}
+
+/*****************************************************************************
+* Prototype : check wake up by rtc
+* Description : check weather AP is waked up by RTC
+* Input : void
+* Output : int
+* Return Value : 1: AP is waked up by rtc ; 0: AP is not waked up by rtc
+*
+*****************************************************************************/
+
+int check_wakeupbydtr(void)
+{
+ FILE *fp;
+ char buf[4];
+ int ret;
+ fp = popen("cat /proc/driver/rtc_wakeup","r");
+ fgets(buf, sizeof(buf), fp);
+ RLOGD("buf=%s\n", buf);
+ ret=atoi(buf);
+ pclose(fp);
+ return ret;
+
+}