[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;
+
+}