From fc31739eb6fdf230a26930e8d42de7a26558aeae Mon Sep 17 00:00:00 2001 From: Joey Castillo Date: Tue, 3 Aug 2021 18:00:07 -0400 Subject: WIP deep sleep mode --- watch-library/hal/include/hpl_calendar.h | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) (limited to 'watch-library/hal/include') diff --git a/watch-library/hal/include/hpl_calendar.h b/watch-library/hal/include/hpl_calendar.h index 16601d3a..87b1a5a8 100644 --- a/watch-library/hal/include/hpl_calendar.h +++ b/watch-library/hal/include/hpl_calendar.h @@ -77,12 +77,7 @@ enum calendar_alarm_mode { ONESHOT = 1, REPEAT }; /** * \brief Prototype of callback on alarm match */ -typedef void (*calendar_drv_cb_alarm_t)(struct calendar_dev *const dev); - -/** - * \brief Prototype of callback on tamper detect - */ -typedef void (*tamper_drv_cb_t)(struct calendar_dev *const dev); +typedef void (*calendar_drv_cb_t)(struct calendar_dev *const dev); /** * \brief Structure of Calendar instance @@ -91,9 +86,11 @@ struct calendar_dev { /** Pointer to the hardware base */ void *hw; /** Alarm match callback */ - calendar_drv_cb_alarm_t callback; + calendar_drv_cb_t callback_alarm; /** Tamper callback */ - tamper_drv_cb_t callback_tamper; + calendar_drv_cb_t callback_tamper; + /** Tamper callback */ + calendar_drv_cb_t callback_tick; /** IRQ struct */ struct _irq_descriptor irq; }; @@ -236,7 +233,7 @@ uint32_t _calendar_get_comp(struct calendar_dev *const dev); * * \return ERR_NONE on success, or an error code on failure. */ -int32_t _calendar_register_callback(struct calendar_dev *const dev, calendar_drv_cb_alarm_t callback); +int32_t _calendar_register_callback(struct calendar_dev *const dev, calendar_drv_cb_t callback); /** * \brief Set calendar IRQ @@ -245,6 +242,16 @@ int32_t _calendar_register_callback(struct calendar_dev *const dev, calendar_drv */ void _calendar_set_irq(struct calendar_dev *const dev); +/** + * \brief Register callback for 1Hz tick from prescaler + * + * \param[in] dev The pointer to calendar device struct + * \param[in] callback The pointer to callback function + * + * \return ERR_NONE on success, or an error code on failure. + */ +int32_t _prescaler_register_callback(struct calendar_dev *const dev, calendar_drv_cb_t callback); + /** * \brief Register callback for tamper detection * @@ -253,7 +260,7 @@ void _calendar_set_irq(struct calendar_dev *const dev); * * \return ERR_NONE on success, or an error code on failure. */ -int32_t _tamper_register_callback(struct calendar_dev *const dev, tamper_drv_cb_t callback_tamper); +int32_t _extwake_register_callback(struct calendar_dev *const dev, calendar_drv_cb_t callback); /** * \brief Find tamper is detected on specified pin -- cgit v1.2.3