SmartSnippets DA1459x SDK
hw_rtc.h
Go to the documentation of this file.
1 
42 #ifndef HW_RTC_H_
43 #define HW_RTC_H_
44 
45 
46 #if dg_configUSE_HW_RTC
47 
48 #include <stdbool.h>
49 #include <stdint.h>
50 #include "sdk_defs.h"
51 
61 #define HW_RTC_REG_GETF(reg, field) \
62  ((RTC->reg & (RTC_##reg##_##field##_Msk)) >> (RTC_##reg##_##field##_Pos))
63 
72 #define HW_RTC_REG_SETF(reg, field, val) \
73  RTC->reg = ((RTC->reg & ~(RTC_##reg##_##field##_Msk)) | \
74  ((RTC_##reg##_##field##_Msk) & ((val) << (RTC_##reg##_##field##_Pos))))
75 
76 
81 #define RTC_PDC_EVENT_PERIOD_MAX_VAL 0x1fff
82 
87 #define RTC_ALL_STATUS_VALID 0xf
88 
93 #define RTC_TIME_CLDR_STATUS_VALID 0x3
94 
99 #define RTC_ALARM_TIME_CLDR_STATUS_VALID 0xc
100 
105 typedef enum {
106  RTC_LP_CLK_RC32K,
107  RTC_LP_CLK_XTAL32K,
108  RTC_LP_CLK_RCX,
109 } HW_RTC_LP_CLK;
110 
115 typedef enum {
119 
124 typedef enum {
128 
138 typedef enum {
139 
147 } HW_RTC_INTR;
148 
157 typedef enum {
165 } HW_RTC_EVENT;
166 
167 
178 typedef enum {
186 
195 typedef enum {
200 } HW_RTC_STATUS;
201 
211 typedef enum {
222 
229 typedef void (*hw_rtc_interrupt_cb)(uint8_t event);
230 
235 typedef struct {
236  uint16_t year;
237  uint8_t month;
238  uint8_t mday;
239  uint8_t wday;
241 
246 typedef struct {
247  uint8_t month;
248  uint8_t mday;
250 
255 typedef struct {
256  uint8_t hour_mode;
257  bool pm_flag;
258  uint8_t hour;
259  uint8_t minute;
260  uint8_t sec;
261  uint8_t hsec;
262 } hw_rtc_time_t;
263 
268 typedef struct {
269  bool pdc_evt_en;
270  uint16_t pdc_evt_period;
272 
273 
285 
296 void hw_rtc_register_intr(hw_rtc_interrupt_cb handler, uint8_t mask);
297 
298 
310 void hw_rtc_unregister_intr(void);
311 
327 
339 __STATIC_INLINE void hw_rtc_set_time_bcd(uint32_t time_bcd)
340 {
341  RTC->RTC_TIME_REG = time_bcd;
342 }
343 
354 __STATIC_INLINE void hw_rtc_set_clndr_bcd(uint32_t clndr_bcd)
355 {
356  RTC->RTC_CALENDAR_REG = clndr_bcd;
357 }
358 
372 
379 __STATIC_INLINE uint32_t hw_rtc_get_time_bcd(void)
380 {
381  return RTC->RTC_TIME_REG;
382 }
383 
390 __STATIC_INLINE uint32_t hw_rtc_get_clndr_bcd(void)
391 {
392  return RTC->RTC_CALENDAR_REG;
393 }
394 
399 __STATIC_INLINE void hw_rtc_time_start(void)
400 {
401  HW_RTC_REG_SETF(RTC_CONTROL_REG, RTC_TIME_DISABLE, 0);
402 }
403 
408 __STATIC_INLINE void hw_rtc_time_stop(void)
409 {
410  HW_RTC_REG_SETF(RTC_CONTROL_REG, RTC_TIME_DISABLE, 1);
411 }
412 
417 __STATIC_INLINE void hw_rtc_clndr_start(void)
418 {
419  HW_RTC_REG_SETF(RTC_CONTROL_REG, RTC_CAL_DISABLE, 0);
420 }
421 
426 __STATIC_INLINE void hw_rtc_clndr_stop(void)
427 {
428  HW_RTC_REG_SETF(RTC_CONTROL_REG, RTC_CAL_DISABLE, 1);
429 }
430 
442 __STATIC_INLINE void hw_rtc_start(void)
443 {
444  RTC->RTC_CONTROL_REG = 0x0;
445 }
446 
451 __STATIC_INLINE void hw_rtc_stop(void)
452 {
453  RTC->RTC_CONTROL_REG = 0x3;
454 }
455 
478 HW_RTC_SET_REG_STATUS hw_rtc_set_alarm(const hw_rtc_time_t *time, const hw_rtc_alarm_calendar_t *clndr, const uint8_t mask);
479 
489 __STATIC_INLINE void hw_rtc_set_alarm_time_bcd(uint32_t time_bcd)
490 {
491  RTC->RTC_TIME_ALARM_REG = time_bcd;
492 }
493 
503 __STATIC_INLINE void hw_rtc_set_alarm_clndr_bcd(uint32_t clndr_bcd)
504 {
505  RTC->RTC_CALENDAR_ALARM_REG = clndr_bcd;
506 }
507 
523 void hw_rtc_get_alarm(hw_rtc_time_t *time, hw_rtc_alarm_calendar_t *clndr, uint8_t *mask);
524 
531 __STATIC_INLINE uint32_t hw_rtc_get_alarm_time_bcd(void)
532 {
533  return RTC->RTC_TIME_ALARM_REG;
534 }
535 
542 __STATIC_INLINE uint32_t hw_rtc_get_alarm_clndr_bcd(void)
543 {
544  return RTC->RTC_CALENDAR_ALARM_REG;
545 }
546 
547 
560 __STATIC_INLINE void hw_rtc_alarm_enable(const uint8_t mask)
561 {
562  RTC->RTC_ALARM_ENABLE_REG = mask;
563 }
564 
577 __STATIC_INLINE uint8_t hw_rtc_get_alarm_enable_msk(void)
578 {
579  return RTC->RTC_ALARM_ENABLE_REG;
580 }
581 
593 __STATIC_INLINE void hw_rtc_interrupt_enable(const uint8_t mask)
594 {
595  RTC->RTC_INTERRUPT_ENABLE_REG = mask;
596 }
597 
609 __STATIC_INLINE void hw_rtc_interrupt_disable(const uint8_t mask)
610 {
611  RTC->RTC_INTERRUPT_DISABLE_REG = mask;
612 }
613 
628 __STATIC_INLINE uint8_t hw_rtc_get_event_flags(void)
629 {
630  return RTC->RTC_EVENT_FLAGS_REG;
631 }
632 
651 __STATIC_INLINE uint8_t hw_rtc_get_interrupt_mask(void)
652 {
653  return RTC->RTC_INTERRUPT_MASK_REG;
654 }
655 
663 {
664  ASSERT_WARNING(mode == RTC_24H_CLK || mode == RTC_12H_CLK);
665  RTC->RTC_HOUR_MODE_REG = (mode == RTC_12H_CLK) ? 1 : 0;
666 }
667 
675 {
676  return ((HW_RTC_HOUR_MODE)RTC->RTC_HOUR_MODE_REG);
677 }
678 
697 __STATIC_INLINE uint8_t hw_rtc_get_status(void)
698 {
699  return RTC->RTC_STATUS_REG;
700 }
701 
710 __STATIC_INLINE void hw_rtc_set_keep_reg_on_reset(bool keep)
711 {
712  RTC->RTC_KEEP_RTC_REG = keep;
713 }
714 
723 __STATIC_INLINE bool hw_rtc_get_keep_reg_on_reset(void)
724 {
725  return RTC->RTC_KEEP_RTC_REG;
726 }
727 
732 __STATIC_INLINE void hw_rtc_pdc_event_enable(void)
733 {
734  HW_RTC_REG_SETF(RTC_EVENT_CTRL_REG, RTC_PDC_EVENT_EN, 1);
735 }
736 
741 __STATIC_INLINE void hw_rtc_pdc_event_disable(void)
742 {
743  HW_RTC_REG_SETF(RTC_EVENT_CTRL_REG, RTC_PDC_EVENT_EN, 0);
744 }
745 
751 __STATIC_INLINE bool hw_rtc_get_pdc_event_cntrl(void)
752 {
753  return HW_RTC_REG_GETF(RTC_EVENT_CTRL_REG, RTC_PDC_EVENT_EN);
754 }
755 
756 
767 __STATIC_INLINE void hw_rtc_set_pdc_event_period(uint16_t period)
768 {
769  ASSERT_WARNING(RTC_PDC_EVENT_PERIOD_MAX_VAL >= period);
770  RTC->RTC_PDC_EVENT_PERIOD_REG = period;
771 }
772 
782 __STATIC_INLINE uint16_t hw_rtc_get_pdc_event_period(void)
783 {
784  return RTC->RTC_PDC_EVENT_PERIOD_REG;
785 }
786 
793 __STATIC_INLINE bool hw_rtc_pdc_event_clear(void)
794 {
795  return RTC->RTC_PDC_EVENT_CLEAR_REG;
796 }
797 
798 
807 __STATIC_INLINE uint16_t hw_rtc_get_pdc_event_cnt(void)
808 {
809  return RTC->RTC_PDC_EVENT_CNT_REG;
810 }
811 
825 __STATIC_INLINE void hw_rtc_reset(void)
826 {
827  uint8_t temp_reg;
828  temp_reg = RTC->RTC_INTERRUPT_MASK_REG;
829  RTC->RTC_INTERRUPT_DISABLE_REG = 0xff; // Mask all interrupts to avoid trigger due to reset
830  REG_SETF(CRG_TOP, CLK_RTCDIV_REG, RTC_RESET_REQ, 1);
831  REG_SETF(CRG_TOP, CLK_RTCDIV_REG, RTC_RESET_REQ, 0);
832  RTC->RTC_INTERRUPT_ENABLE_REG = ~temp_reg & 0x7f; // restore interrupt mask
833 }
834 
850 __STATIC_INLINE void hw_rtc_reset_set(void)
851 {
852  REG_SETF(CRG_TOP, CLK_RTCDIV_REG, RTC_RESET_REQ, 1);
853 }
854 
861 __STATIC_INLINE void hw_rtc_reset_clear(void)
862 {
863  REG_SETF(CRG_TOP, CLK_RTCDIV_REG, RTC_RESET_REQ, 0);
864 }
865 
879 __STATIC_INLINE void hw_rtc_clk_config(HW_RTC_DIV_DENOM div_denom, uint16_t div_int, uint16_t div_frac)
880 {
881  uint32_t tmp = CRG_TOP->CLK_RTCDIV_REG;
882 
883  REG_SET_FIELD(CRG_TOP, CLK_RTCDIV_REG, RTC_DIV_DENOM, tmp, div_denom);
884  REG_SET_FIELD(CRG_TOP, CLK_RTCDIV_REG, RTC_DIV_INT, tmp, div_int);
885  REG_SET_FIELD(CRG_TOP, CLK_RTCDIV_REG, RTC_DIV_FRAC, tmp, div_frac);
886 
887  CRG_TOP->CLK_RTCDIV_REG = tmp;
888 }
889 
895 __STATIC_INLINE void hw_rtc_clock_enable(void)
896 {
897  REG_SETF(CRG_TOP, CLK_RTCDIV_REG, RTC_DIV_ENABLE, 1);
898 }
899 
900 #endif /* dg_configUSE_HW_RTC */
901 #endif /* HW_RTC_H_ */
902 
hw_rtc_time_t::pm_flag
bool pm_flag
Definition: hw_rtc.h:257
hw_rtc_get_keep_reg_on_reset
__STATIC_INLINE bool hw_rtc_get_keep_reg_on_reset(void)
Get RTC keep register status.
Definition: hw_rtc.h:723
HW_RTC_SET_REG_STATUS
HW_RTC_SET_REG_STATUS
RTC status.
Definition: hw_rtc.h:211
hw_rtc_set_keep_reg_on_reset
__STATIC_INLINE void hw_rtc_set_keep_reg_on_reset(bool keep)
Configure RTC to keep or reset its registers after reset.
Definition: hw_rtc.h:710
HW_RTC_INTR
HW_RTC_INTR
RTC interrupt source.
Definition: hw_rtc.h:138
hw_rtc_config_pdc_evt_t
RTC to Power Domain Controller event configuration.
Definition: hw_rtc.h:268
hw_rtc_calendar_t::wday
uint8_t wday
Definition: hw_rtc.h:239
hw_rtc_pdc_event_disable
__STATIC_INLINE void hw_rtc_pdc_event_disable(void)
Disable RTC to Power Domains Controller event.
Definition: hw_rtc.h:741
hw_rtc_set_alarm
HW_RTC_SET_REG_STATUS hw_rtc_set_alarm(const hw_rtc_time_t *time, const hw_rtc_alarm_calendar_t *clndr, const uint8_t mask)
Set RTC alarm.
REG_SETF
#define REG_SETF(base, reg, field, new_val)
Set the value of a register field.
Definition: sdk_defs.h:738
HW_RTC_ALARM_MDAY
Definition: hw_rtc.h:180
HW_RTC_INVALID_CLNDR
Definition: hw_rtc.h:218
hw_rtc_alarm_calendar_t::mday
uint8_t mday
Definition: hw_rtc.h:248
HW_RTC_VALID_TIME
Definition: hw_rtc.h:199
hw_rtc_clndr_start
__STATIC_INLINE void hw_rtc_clndr_start(void)
Start RTC Calendar.
Definition: hw_rtc.h:417
RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_MIN_EN_Msk
#define RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_MIN_EN_Msk
Definition: DA1459x-00.h:4415
RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_HOUR_Msk
#define RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_HOUR_Msk
Definition: DA1459x-00.h:4466
HW_RTC_VALID_ENTRY
Definition: hw_rtc.h:212
RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_SEC_EN_Msk
#define RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_SEC_EN_Msk
Definition: DA1459x-00.h:4417
HW_RTC_INT_HOUR
Definition: hw_rtc.h:143
HW_RTC_INVALID_TIME_ALM
Definition: hw_rtc.h:217
HW_RTC_ALARM_MONTH
Definition: hw_rtc.h:179
hw_rtc_set_clndr_bcd
__STATIC_INLINE void hw_rtc_set_clndr_bcd(uint32_t clndr_bcd)
Set RTC Calendar date.
Definition: hw_rtc.h:354
hw_rtc_interrupt_disable
__STATIC_INLINE void hw_rtc_interrupt_disable(const uint8_t mask)
Disable RTC interrupt(s)
Definition: hw_rtc.h:609
hw_rtc_get_alarm_time_bcd
__STATIC_INLINE uint32_t hw_rtc_get_alarm_time_bcd(void)
Get RTC alarm time.
Definition: hw_rtc.h:531
HW_RTC_REG_GETF
#define HW_RTC_REG_GETF(reg, field)
Get the value of a field of an RTC register.
Definition: hw_rtc.h:61
HW_RTC_INVALID_CLNDR_ALM
Definition: hw_rtc.h:216
hw_rtc_time_t::hsec
uint8_t hsec
Definition: hw_rtc.h:261
RTC_12H_CLK
Definition: hw_rtc.h:117
hw_rtc_reset
__STATIC_INLINE void hw_rtc_reset(void)
Reset RTC module.
Definition: hw_rtc.h:825
hw_rtc_time_t::sec
uint8_t sec
Definition: hw_rtc.h:260
hw_rtc_set_time_clndr
HW_RTC_SET_REG_STATUS hw_rtc_set_time_clndr(const hw_rtc_time_t *time, const hw_rtc_calendar_t *clndr)
Set RTC time and/or calendar date.
hw_rtc_time_t
Time configuration for RTC.
Definition: hw_rtc.h:255
RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_ALRM_Msk
#define RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_ALRM_Msk
Definition: DA1459x-00.h:4460
HW_RTC_INVALID_TIME_HOUR_MODE_ALM
Definition: hw_rtc.h:213
HW_RTC_DIV_DENOM
HW_RTC_DIV_DENOM
RTC denominator for the fractional division of the source clock.
Definition: hw_rtc.h:124
RTC_RTC_STATUS_REG_RTC_VALID_CAL_Msk
#define RTC_RTC_STATUS_REG_RTC_VALID_CAL_Msk
Definition: DA1459x-00.h:4539
hw_rtc_reset_set
__STATIC_INLINE void hw_rtc_reset_set(void)
Set RTC reset high.
Definition: hw_rtc.h:850
hw_rtc_alarm_calendar_t
Alarm Calendar configuration for RTC.
Definition: hw_rtc.h:246
RTC_PDC_EVENT_PERIOD_MAX_VAL
#define RTC_PDC_EVENT_PERIOD_MAX_VAL
Maximum value of RTC to PDC event period (13bits).
Definition: hw_rtc.h:81
sdk_defs.h
Central include header file with platform definitions.
hw_rtc_get_interrupt_mask
__STATIC_INLINE uint8_t hw_rtc_get_interrupt_mask(void)
Get RTC interrupt mask.
Definition: hw_rtc.h:651
RTC_RTC_INTERRUPT_MASK_REG_RTC_MIN_INT_MSK_Msk
#define RTC_RTC_INTERRUPT_MASK_REG_RTC_MIN_INT_MSK_Msk
Definition: DA1459x-00.h:4516
hw_rtc_pdc_event_enable
__STATIC_INLINE void hw_rtc_pdc_event_enable(void)
Enable RTC to Power Domains Controller (PDC) event.
Definition: hw_rtc.h:732
hw_rtc_get_pdc_event_cntrl
__STATIC_INLINE bool hw_rtc_get_pdc_event_cntrl(void)
Get status of control of RTC to Power Domains Controller event.
Definition: hw_rtc.h:751
hw_rtc_config_pdc_evt_t::pdc_evt_en
bool pdc_evt_en
Definition: hw_rtc.h:269
HW_RTC_INVALID_TIME
Definition: hw_rtc.h:219
hw_rtc_time_t::minute
uint8_t minute
Definition: hw_rtc.h:259
HW_RTC_EVENT_MONTH
Definition: hw_rtc.h:159
hw_rtc_get_pdc_event_cnt
__STATIC_INLINE uint16_t hw_rtc_get_pdc_event_cnt(void)
Get PDC event count.
Definition: hw_rtc.h:807
hw_rtc_get_event_flags
__STATIC_INLINE uint8_t hw_rtc_get_event_flags(void)
Get RTC event flags.
Definition: hw_rtc.h:628
RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_HOS_Msk
#define RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_HOS_Msk
Definition: DA1459x-00.h:4472
hw_rtc_clock_enable
__STATIC_INLINE void hw_rtc_clock_enable(void)
Enable for the 100 Hz generation for the RTC block.
Definition: hw_rtc.h:895
hw_rtc_calendar_t::year
uint16_t year
Definition: hw_rtc.h:236
HW_RTC_ALARM_HOUR
Definition: hw_rtc.h:181
HW_RTC_ALARM_HSEC
Definition: hw_rtc.h:184
HW_RTC_REG_SETF
#define HW_RTC_REG_SETF(reg, field, val)
Set the value of a field of a RTC register.
Definition: hw_rtc.h:72
hw_rtc_get_pdc_event_period
__STATIC_INLINE uint16_t hw_rtc_get_pdc_event_period(void)
Get RTC to PDC event period.
Definition: hw_rtc.h:782
hw_rtc_set_time_bcd
__STATIC_INLINE void hw_rtc_set_time_bcd(uint32_t time_bcd)
Set RTC time.
Definition: hw_rtc.h:339
HW_RTC_EVENT_MIN
Definition: hw_rtc.h:162
hw_rtc_get_hour_clk_mode
__STATIC_INLINE HW_RTC_HOUR_MODE hw_rtc_get_hour_clk_mode(void)
Get RTC hour clock mode.
Definition: hw_rtc.h:674
hw_rtc_config_RTC_to_PDC_evt
void hw_rtc_config_RTC_to_PDC_evt(const hw_rtc_config_pdc_evt_t *cfg)
RTC to PDC event configuration.
hw_rtc_get_time_bcd
__STATIC_INLINE uint32_t hw_rtc_get_time_bcd(void)
Get RTC time.
Definition: hw_rtc.h:379
RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_HOS_EN_Msk
#define RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_HOS_EN_Msk
Definition: DA1459x-00.h:4419
RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_MIN_Msk
#define RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_MIN_Msk
Definition: DA1459x-00.h:4468
hw_rtc_set_alarm_time_bcd
__STATIC_INLINE void hw_rtc_set_alarm_time_bcd(uint32_t time_bcd)
Set RTC alarm time.
Definition: hw_rtc.h:489
RTC_24H_CLK
Definition: hw_rtc.h:116
HW_RTC_EVENT_HOUR
Definition: hw_rtc.h:161
hw_rtc_set_pdc_event_period
__STATIC_INLINE void hw_rtc_set_pdc_event_period(uint16_t period)
Set RTC to PDC event period.
Definition: hw_rtc.h:767
RTC_DIV_DENOM_1024
Definition: hw_rtc.h:126
hw_rtc_calendar_t::mday
uint8_t mday
Definition: hw_rtc.h:238
hw_rtc_get_clndr_bcd
__STATIC_INLINE uint32_t hw_rtc_get_clndr_bcd(void)
Get RTC Calendar date.
Definition: hw_rtc.h:390
hw_rtc_pdc_event_clear
__STATIC_INLINE bool hw_rtc_pdc_event_clear(void)
Clear RTC to PDC event.
Definition: hw_rtc.h:793
hw_rtc_get_alarm
void hw_rtc_get_alarm(hw_rtc_time_t *time, hw_rtc_alarm_calendar_t *clndr, uint8_t *mask)
Get RTC time and/or calendar alarms.
hw_rtc_config_pdc_evt_t::pdc_evt_period
uint16_t pdc_evt_period
Definition: hw_rtc.h:270
hw_rtc_alarm_enable
__STATIC_INLINE void hw_rtc_alarm_enable(const uint8_t mask)
RTC alarm enable.
Definition: hw_rtc.h:560
hw_rtc_unregister_intr
void hw_rtc_unregister_intr(void)
Unregister the event handler and disable RTC interrupt (NVIC)
RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_HOUR_EN_Msk
#define RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_HOUR_EN_Msk
Definition: DA1459x-00.h:4413
RTC_RTC_INTERRUPT_MASK_REG_RTC_DATE_INT_MSK_Msk
#define RTC_RTC_INTERRUPT_MASK_REG_RTC_DATE_INT_MSK_Msk
Definition: DA1459x-00.h:4512
mode
HW_GPIO_MODE mode
Definition: hw_gpio.h:211
HW_RTC_EVENT_MDAY
Definition: hw_rtc.h:160
RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_DATE_EN_Msk
#define RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_DATE_EN_Msk
Definition: DA1459x-00.h:4411
RTC_RTC_INTERRUPT_MASK_REG_RTC_HOS_INT_MSK_Msk
#define RTC_RTC_INTERRUPT_MASK_REG_RTC_HOS_INT_MSK_Msk
Definition: DA1459x-00.h:4520
HW_RTC_EVENT
HW_RTC_EVENT
RTC Events.
Definition: hw_rtc.h:157
hw_rtc_time_start
__STATIC_INLINE void hw_rtc_time_start(void)
Start RTC time.
Definition: hw_rtc.h:399
RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_MNTH_EN_Msk
#define RTC_RTC_ALARM_ENABLE_REG_RTC_ALARM_MNTH_EN_Msk
Definition: DA1459x-00.h:4409
RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_MNTH_Msk
#define RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_MNTH_Msk
Definition: DA1459x-00.h:4462
HW_RTC_INVALID_TIME_CLNDR
Definition: hw_rtc.h:220
HW_RTC_INT_MONTH
Definition: hw_rtc.h:141
RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_SEC_Msk
#define RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_SEC_Msk
Definition: DA1459x-00.h:4470
hw_rtc_time_t::hour
uint8_t hour
Definition: hw_rtc.h:258
HW_RTC_INT_ALRM
Definition: hw_rtc.h:140
RTC_RTC_STATUS_REG_RTC_VALID_TIME_ALM_Msk
#define RTC_RTC_STATUS_REG_RTC_VALID_TIME_ALM_Msk
Definition: DA1459x-00.h:4537
HW_RTC_VALID_CLNDR_ALM
Definition: hw_rtc.h:196
hw_rtc_calendar_t
Calendar configuration for RTC.
Definition: hw_rtc.h:235
hw_rtc_register_intr
void hw_rtc_register_intr(hw_rtc_interrupt_cb handler, uint8_t mask)
Register an interrupt handler.
hw_rtc_interrupt_enable
__STATIC_INLINE void hw_rtc_interrupt_enable(const uint8_t mask)
Enable RTC interrupt(s)
Definition: hw_rtc.h:593
hw_rtc_get_status
__STATIC_INLINE uint8_t hw_rtc_get_status(void)
Get RTC status.
Definition: hw_rtc.h:697
hw_rtc_set_alarm_clndr_bcd
__STATIC_INLINE void hw_rtc_set_alarm_clndr_bcd(uint32_t clndr_bcd)
Set RTC alarm Calendar.
Definition: hw_rtc.h:503
HW_RTC_EVENT_HSEC
Definition: hw_rtc.h:164
HW_RTC_EVENT_SEC
Definition: hw_rtc.h:163
HW_RTC_VALID_TIME_ALM
Definition: hw_rtc.h:197
hw_rtc_clndr_stop
__STATIC_INLINE void hw_rtc_clndr_stop(void)
Stop RTC Calendar.
Definition: hw_rtc.h:426
hw_rtc_stop
__STATIC_INLINE void hw_rtc_stop(void)
Stop RTC. Stops both time and calendar.
Definition: hw_rtc.h:451
HW_RTC_INT_SEC
Definition: hw_rtc.h:145
RTC_DIV_DENOM_1000
Definition: hw_rtc.h:125
HW_RTC_EVENT_ALRM
Definition: hw_rtc.h:158
hw_rtc_set_hour_clk_mode
__STATIC_INLINE void hw_rtc_set_hour_clk_mode(HW_RTC_HOUR_MODE mode)
Set RTC hour clock mode.
Definition: hw_rtc.h:662
hw_rtc_reset_clear
__STATIC_INLINE void hw_rtc_reset_clear(void)
Clear RTC reset.
Definition: hw_rtc.h:861
hw_rtc_start
__STATIC_INLINE void hw_rtc_start(void)
Start RTC. Starts both time and calendar.
Definition: hw_rtc.h:442
hw_rtc_get_alarm_clndr_bcd
__STATIC_INLINE uint32_t hw_rtc_get_alarm_clndr_bcd(void)
Get RTC alarm calendar.
Definition: hw_rtc.h:542
hw_rtc_get_time_clndr
void hw_rtc_get_time_clndr(hw_rtc_time_t *time, hw_rtc_calendar_t *clndr)
Get RTC time and/or calendar date.
HW_RTC_INT_MDAY
Definition: hw_rtc.h:142
HW_RTC_ALARM_MIN
Definition: hw_rtc.h:182
hw_rtc_interrupt_cb
void(* hw_rtc_interrupt_cb)(uint8_t event)
Callback that is fired on RTC events.
Definition: hw_rtc.h:229
hw_rtc_calendar_t::month
uint8_t month
Definition: hw_rtc.h:237
HW_RTC_ALARM_SEC
Definition: hw_rtc.h:183
RTC_RTC_INTERRUPT_MASK_REG_RTC_SEC_INT_MSK_Msk
#define RTC_RTC_INTERRUPT_MASK_REG_RTC_SEC_INT_MSK_Msk
Definition: DA1459x-00.h:4518
HW_RTC_LP_CLK
HW_RTC_LP_CLK
RTC lp_clk sources.
Definition: hw_rtc.h:105
RTC_RTC_INTERRUPT_MASK_REG_RTC_ALRM_INT_MSK_Msk
#define RTC_RTC_INTERRUPT_MASK_REG_RTC_ALRM_INT_MSK_Msk
Definition: DA1459x-00.h:4508
REG_SET_FIELD
#define REG_SET_FIELD(base, reg, field, var, val)
Set register field value.
Definition: sdk_defs.h:626
hw_rtc_time_stop
__STATIC_INLINE void hw_rtc_time_stop(void)
Stop RTC time.
Definition: hw_rtc.h:408
RTC_RTC_STATUS_REG_RTC_VALID_CAL_ALM_Msk
#define RTC_RTC_STATUS_REG_RTC_VALID_CAL_ALM_Msk
Definition: DA1459x-00.h:4535
hw_rtc_alarm_calendar_t::month
uint8_t month
Definition: hw_rtc.h:247
HW_RTC_HOUR_MODE
HW_RTC_HOUR_MODE
Hour clock mode.
Definition: hw_rtc.h:115
hw_rtc_get_alarm_enable_msk
__STATIC_INLINE uint8_t hw_rtc_get_alarm_enable_msk(void)
Get RTC alarm enable bitmask.
Definition: hw_rtc.h:577
HW_RTC_VALID_CLNDR
Definition: hw_rtc.h:198
HW_RTC_ALARM_EN
HW_RTC_ALARM_EN
RTC Alarm enable mask.
Definition: hw_rtc.h:178
RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_DATE_Msk
#define RTC_RTC_EVENT_FLAGS_REG_RTC_EVENT_DATE_Msk
Definition: DA1459x-00.h:4464
HW_RTC_INT_MIN
Definition: hw_rtc.h:144
HW_RTC_STATUS
HW_RTC_STATUS
RTC status.
Definition: hw_rtc.h:195
hw_rtc_clk_config
__STATIC_INLINE void hw_rtc_clk_config(HW_RTC_DIV_DENOM div_denom, uint16_t div_int, uint16_t div_frac)
Configure RTC clock.
Definition: hw_rtc.h:879
hw_rtc_time_t::hour_mode
uint8_t hour_mode
Definition: hw_rtc.h:256
RTC_RTC_STATUS_REG_RTC_VALID_TIME_Msk
#define RTC_RTC_STATUS_REG_RTC_VALID_TIME_Msk
Definition: DA1459x-00.h:4541
RTC_RTC_INTERRUPT_MASK_REG_RTC_HOUR_INT_MSK_Msk
#define RTC_RTC_INTERRUPT_MASK_REG_RTC_HOUR_INT_MSK_Msk
Definition: DA1459x-00.h:4514
HW_RTC_INT_HSEC
Definition: hw_rtc.h:146
RTC_RTC_INTERRUPT_MASK_REG_RTC_MNTH_INT_MSK_Msk
#define RTC_RTC_INTERRUPT_MASK_REG_RTC_MNTH_INT_MSK_Msk
Definition: DA1459x-00.h:4510