rtc_core.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-06-11 iysheng first version.
  9. */
  10. #ifndef __RTC_CORE_H__
  11. #define __RTC_CORE_H__
  12. #include <rtthread.h>
  13. #define RT_DEVICE_CTRL_RTC_GET_TIME 0x10 /**< get second time */
  14. #define RT_DEVICE_CTRL_RTC_SET_TIME 0x11 /**< set second time */
  15. #define RT_DEVICE_CTRL_RTC_GET_TIME_US 0x12 /**< get microsecond time */
  16. #define RT_DEVICE_CTRL_RTC_SET_TIME_US 0x13 /**< set microsecond time */
  17. #define RT_DEVICE_CTRL_RTC_GET_ALARM 0x14 /**< get alarm */
  18. #define RT_DEVICE_CTRL_RTC_SET_ALARM 0x15 /**< set alarm */
  19. struct rt_rtc_ops
  20. {
  21. rt_err_t (*init)(void);
  22. rt_err_t (*get_secs)(void *arg);
  23. rt_err_t (*set_secs)(void *arg);
  24. rt_err_t (*get_alarm)(void *arg);
  25. rt_err_t (*set_alarm)(void *arg);
  26. rt_err_t (*get_usecs)(void *arg);
  27. rt_err_t (*set_usecs)(void *arg);
  28. };
  29. typedef struct rt_rtc_device
  30. {
  31. struct rt_device parent;
  32. const struct rt_rtc_ops *ops;
  33. } rt_rtc_dev_t;
  34. rt_err_t rt_rtc_dev_register(rt_rtc_dev_t *rtc,
  35. const char *name,
  36. rt_uint32_t flag,
  37. void *data);
  38. #endif /* __RTC_CORE_H__ */