summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriysheng <[email protected]>2021-07-05 14:00:37 +0800
committeriysheng <[email protected]>2021-07-08 22:41:40 +0800
commit2bd7e04827d7d1ccaeaba6f4c4fbea1bff85af03 (patch)
tree8bc13d9164270ffe7dd960e1006e024012eff116
parente62943abd27b4b7cadd149ed34ccb1bb332c790d (diff)
[components][rtc] Add microsecond resolution support with RTC framework V2.0
-rw-r--r--components/drivers/include/drivers/rtc_core.h2
-rw-r--r--components/drivers/rtc/rtc_core.c6
2 files changed, 8 insertions, 0 deletions
diff --git a/components/drivers/include/drivers/rtc_core.h b/components/drivers/include/drivers/rtc_core.h
index c093a1d749..f0c7b64e94 100644
--- a/components/drivers/include/drivers/rtc_core.h
+++ b/components/drivers/include/drivers/rtc_core.h
@@ -27,6 +27,8 @@ struct rt_rtc_ops
rt_err_t (*set_secs)(void *arg);
rt_err_t (*get_alarm)(void *arg);
rt_err_t (*set_alarm)(void *arg);
+ rt_err_t (*get_usecs)(void *arg);
+ rt_err_t (*set_usecs)(void *arg);
};
typedef struct rt_rtc_device
diff --git a/components/drivers/rtc/rtc_core.c b/components/drivers/rtc/rtc_core.c
index ada0ed283b..80bb61c8aa 100644
--- a/components/drivers/rtc/rtc_core.c
+++ b/components/drivers/rtc/rtc_core.c
@@ -61,6 +61,12 @@ static rt_err_t rt_rtc_core_control(struct rt_device *dev,
case RT_DEVICE_CTRL_RTC_SET_TIME:
ret = TRY_DO_RTC_FUNC(rtc_core, set_secs, args);
break;
+ case RT_DEVICE_CTRL_RTC_GET_TIME_US:
+ ret = TRY_DO_RTC_FUNC(rtc_core, get_usecs, args);
+ break;
+ case RT_DEVICE_CTRL_RTC_SET_TIME_US:
+ ret = TRY_DO_RTC_FUNC(rtc_core, set_usecs, args);
+ break;
case RT_DEVICE_CTRL_RTC_GET_ALARM:
ret = TRY_DO_RTC_FUNC(rtc_core, get_alarm, args);
break;