Lines Matching +full:deep +full:- +full:sleep +full:- +full:counter

4  * SPDX-License-Identifier: Apache-2.0
9 #include <zephyr/drivers/counter.h>
27 /* Timer Clock control in Sleep State */
29 /* Timer Clock control in Deep Sleep State */
43 dev->config; in tmr_cmsdk_apb_start()
44 struct tmr_cmsdk_apb_dev_data *data = dev->data; in tmr_cmsdk_apb_start()
47 cfg->timer->reload = data->load; in tmr_cmsdk_apb_start()
49 cfg->timer->ctrl = TIMER_CTRL_EN; in tmr_cmsdk_apb_start()
57 dev->config; in tmr_cmsdk_apb_stop()
59 cfg->timer->ctrl = 0x0; in tmr_cmsdk_apb_stop()
67 dev->config; in tmr_cmsdk_apb_get_value()
68 struct tmr_cmsdk_apb_dev_data *data = dev->data; in tmr_cmsdk_apb_get_value()
70 /* Get Counter Value */ in tmr_cmsdk_apb_get_value()
71 *ticks = data->load - cfg->timer->value; in tmr_cmsdk_apb_get_value()
79 dev->config; in tmr_cmsdk_apb_set_top_value()
80 struct tmr_cmsdk_apb_dev_data *data = dev->data; in tmr_cmsdk_apb_set_top_value()
82 /* Counter is always reset when top value is updated. */ in tmr_cmsdk_apb_set_top_value()
83 if (top_cfg->flags & COUNTER_TOP_CFG_DONT_RESET) { in tmr_cmsdk_apb_set_top_value()
84 return -ENOTSUP; in tmr_cmsdk_apb_set_top_value()
87 data->top_callback = top_cfg->callback; in tmr_cmsdk_apb_set_top_value()
88 data->top_user_data = top_cfg->user_data; in tmr_cmsdk_apb_set_top_value()
91 data->load = top_cfg->ticks; in tmr_cmsdk_apb_set_top_value()
94 cfg->timer->value = top_cfg->ticks; in tmr_cmsdk_apb_set_top_value()
97 cfg->timer->reload = top_cfg->ticks; in tmr_cmsdk_apb_set_top_value()
100 cfg->timer->ctrl |= TIMER_CTRL_IRQ_EN; in tmr_cmsdk_apb_set_top_value()
107 struct tmr_cmsdk_apb_dev_data *data = dev->data; in tmr_cmsdk_apb_get_top_value()
109 uint32_t ticks = data->load; in tmr_cmsdk_apb_get_top_value()
117 dev->config; in tmr_cmsdk_apb_get_pending_int()
119 return cfg->timer->intstatus; in tmr_cmsdk_apb_get_pending_int()
122 static DEVICE_API(counter, tmr_cmsdk_apb_api) = {
134 struct tmr_cmsdk_apb_dev_data *data = dev->data; in tmr_cmsdk_apb_isr()
136 dev->config; in tmr_cmsdk_apb_isr()
138 cfg->timer->intclear = TIMER_CTRL_INT_CLEAR; in tmr_cmsdk_apb_isr()
139 if (data->top_callback) { in tmr_cmsdk_apb_isr()
140 data->top_callback(dev, data->top_user_data); in tmr_cmsdk_apb_isr()
147 dev->config; in tmr_cmsdk_apb_init()
154 return -ENODEV; in tmr_cmsdk_apb_init()
158 clock_control_on(clk, (clock_control_subsys_t) &cfg->timer_cc_as); in tmr_cmsdk_apb_init()
159 clock_control_on(clk, (clock_control_subsys_t) &cfg->timer_cc_ss); in tmr_cmsdk_apb_init()
160 clock_control_on(clk, (clock_control_subsys_t) &cfg->timer_cc_dss); in tmr_cmsdk_apb_init()
164 cfg->timer_config_func(dev); in tmr_cmsdk_apb_init()