@@ -63,8 +63,8 @@ static void pmu_isolation_rtc(void)
6363
6464 /* disable pmu isolation */
6565 data = * addr ;
66- data &= ~0x20 ;
67- * addr = data ;
66+ data &= ~0x20 ;
67+ * addr = data ;
6868 rt_iounmap (reg_pmu_pwr );
6969
7070 /* map pmu base address */
@@ -249,7 +249,7 @@ static void rtc_date_time_set(struct k230_rtc_dev *dev, int year, int month, int
249249 }
250250
251251 rtc -> int_ctrl .timer_w_en = 1 ;
252-
252+
253253 date .year_h = year_h ;
254254 date .year_l = year_l ;
255255 date .month = month ;
@@ -273,7 +273,7 @@ static void rtc_timer_get(struct k230_rtc_dev *dev, time_t *t)
273273 {
274274 rtc -> int_ctrl .timer_r_en = 1 ;
275275 }
276-
276+
277277 tm .tm_sec = rtc -> time .second ;
278278 tm .tm_min = rtc -> time .minute ;
279279 tm .tm_hour = rtc -> time .hour ;
@@ -289,7 +289,7 @@ static void rtc_timer_set(struct k230_rtc_dev *dev, time_t *t)
289289{
290290 struct tm p_tm ;
291291 gmtime_r (t , & p_tm );
292-
292+
293293 rtc_date_time_set (dev , (p_tm .tm_year + 1900 ), p_tm .tm_mon + 1 , p_tm .tm_mday , \
294294 p_tm .tm_hour , p_tm .tm_min , p_tm .tm_sec , p_tm .tm_wday );
295295
@@ -302,7 +302,7 @@ static void rtc_alarm_get(struct k230_rtc_dev *dev, void *args)
302302 volatile rtc_t * rtc = (rtc_t * )dev -> base ;
303303 rtc_alarm_date_t alarm_date = rtc -> alarm_date ;
304304 rtc_alarm_time_t alarm_time = rtc -> alarm_time ;
305-
305+
306306 tm -> tm_year = (alarm_date .alarm_year_h * 100 + alarm_date .alarm_year_l ) - 1900 ;
307307 tm -> tm_mon = alarm_date .alarm_month - 1 ;
308308 tm -> tm_mday = alarm_date .alarm_day ;
@@ -313,16 +313,21 @@ static void rtc_alarm_get(struct k230_rtc_dev *dev, void *args)
313313
314314static void rtc_alarm_set (struct k230_rtc_dev * dev , void * args )
315315{
316- struct kd_alarm_setup * setup = (struct kd_alarm_setup * )args ;
316+ rtc_alarm_setup_t * setup = (rtc_alarm_setup_t * )args ;
317317 struct tm tm = setup -> tm ;
318+ time_t t ;
319+ struct tm p_tm ;
318320 volatile rtc_t * rtc = (rtc_t * )dev -> base ;
319321 rtc_alarm_time_t alarm_time ;
320322 rtc_alarm_date_t alarm_date ;
321323 rtc_date_t date = rtc -> date ;
324+ int year , year_l , year_h , val ;
322325
323- int year = tm .tm_year + 1900 ;
324- int val = year % 100 ;
325- int year_l ,year_h ;
326+ t = mktime (& tm );
327+ gmtime_r (& t , & p_tm );
328+
329+ year = p_tm .tm_year + 1900 ;
330+ val = year % 100 ;
326331
327332 if (val == 0 )
328333 {
@@ -337,11 +342,11 @@ static void rtc_alarm_set(struct k230_rtc_dev *dev, void *args)
337342
338343 alarm_date .alarm_year_h = year_h ;
339344 alarm_date .alarm_year_l = year_l ;
340- alarm_date .alarm_month = tm .tm_mon + 1 ;
341- alarm_date .alarm_day = tm .tm_mday ;
342- alarm_time .alarm_hour = tm .tm_hour ;
343- alarm_time .alarm_minute = tm .tm_min ;
344- alarm_time .alarm_second = tm .tm_sec ;
345+ alarm_date .alarm_month = p_tm .tm_mon + 1 ;
346+ alarm_date .alarm_day = p_tm .tm_mday ;
347+ alarm_time .alarm_hour = p_tm .tm_hour ;
348+ alarm_time .alarm_minute = p_tm .tm_min ;
349+ alarm_time .alarm_second = p_tm .tm_sec ;
345350
346351 rtc -> alarm_date = alarm_date ;
347352 rtc -> alarm_time = alarm_time ;
@@ -424,7 +429,7 @@ static rt_err_t rtc_device_control(rt_device_t dev, int cmd, void *args)
424429 rtc_dev -> vector_callback = args ;
425430 break ;
426431 default :
427- return RT_EINVAL ;
432+ return - RT_EINVAL ;
428433 }
429434 return RT_EOK ;
430435}
@@ -439,7 +444,7 @@ const static struct rt_device_ops rtc_ops =
439444 .control = rtc_device_control ,
440445};
441446
442- static struct k230_rtc_dev rtc_dev =
447+ static struct k230_rtc_dev rtc_dev =
443448{
444449 .name = "rtc" ,
445450 .base = RTC_BASE_ADDR ,
@@ -478,4 +483,4 @@ static int rt_hw_rtc_init(void)
478483 rtc_tick_stop (& rtc_dev );
479484 return ret ;
480485}
481- INIT_DEVICE_EXPORT (rt_hw_rtc_init );
486+ INIT_DEVICE_EXPORT (rt_hw_rtc_init );
0 commit comments