9#ifndef INCLUDE_DRV_SDRV_ETIMER_H
10#define INCLUDE_DRV_SDRV_ETIMER_H
15#include "../source/etimer/sdrv_etimer_lld.h"
17#if (CONFIG_E3 || CONFIG_D3)
18#define ETMR_SOURCE_CLK 250
20#if ((CONFIG_E3106) || (CONFIG_E3104))
21#define ETMR_SOURCE_CLK 150
23#define ETMR_SOURCE_CLK 198
308 bool cmp0_init,
bool cmp1_init);
410 sdrv_etimer_cpt_trig_mode_e edge_sel);
SemiDrive driver common header file.
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
enum sdrv_etimer_basic_cnt_id sdrv_etimer_basic_cnt_id_t
sdrv etimer basic counter num
status_t sdrv_etimer_icu_config(sdrv_etimer_t *etmr, sdrv_etimer_cpt_trig_mode_e edge_sel)
configure etimer icu config
status_t sdrv_etimer_compare_pwm_initial_out_status(sdrv_etimer_t *etmr, bool cmp0_init, bool cmp1_init)
etimer pwm set initial putput status.
struct etimer_multi_cmp_val sdrv_etimer_multi_cmp_val_t
sdrv etimer multi cmp mode cmp val (ns)
status_t sdrv_etimer_compare_multi_mode(sdrv_etimer_t *etmr, sdrv_etimer_multi_cmp_val_t *multi_cmp)
configure multi compare mode.
sdrv_etimer_basic_cnt_id
sdrv etimer basic counter num
Definition: sdrv_etimer.h:84
@ ETIMR_BASIC_TMR_G0
Definition: sdrv_etimer.h:85
@ ETIMR_BASIC_TMR_NUM
Definition: sdrv_etimer.h:87
@ ETIMR_BASIC_TMR_G1
Definition: sdrv_etimer.h:86
status_t sdrv_etimer_capture_init(sdrv_etimer_t *etmr)
init etimer capture chan.
struct sdrv_etimer_tmr_cfg sdrv_etimer_tmr_cfg_t
sdrv tmr config
status_t sdrv_etimer_compare_pwm_config_update(sdrv_etimer_t *etmr, sdrv_etimer_cmp_cfg_t *cmp_cfg, const sdrv_etimer_pwm_state_t *state)
etimer pwm config update.
status_t sdrv_etimer_icu_start(sdrv_etimer_t *etmr)
start etimer icu chan.
status_t sdrv_etimer_compare_pwm_config(sdrv_etimer_t *etmr, sdrv_etimer_cmp_cfg_t *cmp_cfg, const sdrv_etimer_pwm_state_t *state)
etimer pwm state config.
struct sdrv_etimer_pwm_state sdrv_etimer_pwm_state_t
sdrv etimer pwm_status
status_t sdrv_etimer_compare_pwm_stop(sdrv_etimer_t *etmr)
stop to generate etimer pwm signal.
etimer_work_mode
etimer work mode
Definition: sdrv_etimer.h:36
@ ETIMER_PWM_CAPTURE
Definition: sdrv_etimer.h:40
@ ETIMER_TIMER_FUNC
Definition: sdrv_etimer.h:44
@ ETIMER_PWM_GENERATE
Definition: sdrv_etimer.h:42
@ ETIMER_ICU_FUNC
Definition: sdrv_etimer.h:46
@ ETIMER_PWM_OTHERS
Definition: sdrv_etimer.h:48
@ ETIMER_PWM_IDLE
Definition: sdrv_etimer.h:38
status_t sdrv_etimer_icu_dma_en(sdrv_etimer_t *etmr, uint16_t wml)
configure etimer icu dma enable (dma_en must after icu config)
uint32_t sdrv_etimer_icu_get_cnt_val(sdrv_etimer_t *etmr)
stop etimer icu get capture timestamp.
enum etimer_work_mode etimer_work_mode_t
etimer work mode
enum etimer_chn_status etimer_chn_status_t
etimer work status
status_t sdrv_etimer_capture_start(sdrv_etimer_t *etmr)
start etimer capture chan.
etimer_g0_mode
etimer g0 counter mode
Definition: sdrv_etimer.h:56
@ G0_FOR_PWM_GEN
Definition: sdrv_etimer.h:62
@ G0_FOR_TIMER
Definition: sdrv_etimer.h:60
@ G0_IDLE
Definition: sdrv_etimer.h:58
struct sdrv_etimer_chn sdrv_etimer_t
sdrv etimer ctrl
status_t sdrv_etimer_capture_stop(sdrv_etimer_t *etmr)
stop etimer capture chan.
struct etimer_cmp_cfg sdrv_etimer_cmp_cfg_t
sdrv etimer cmp mode ctrl
status_t sdrv_etimer_capture_pwm(sdrv_etimer_t *etmr, sdrv_etimer_pwm_state_t *state)
etimer capture pwm signal.
status_t sdrv_etimer_compare_pwm_dma_en(sdrv_etimer_t *etmr, uint16_t wml)
configure etimer pwm output dma enable (dma_en must after pwm config)
bool sdrv_etimer_icu_get_level(sdrv_etimer_t *etmr)
stop etimer icu get channel level status.
status_t sdrv_etimer_filter_config(sdrv_etimer_t *etmr, flt_config_t *filter_cfg)
configure etimer filter config
struct sdrv_etimer_basic_cnt_cfg sdrv_etimer_basic_cnt_cfg_t
sdrv etimer tmr config
status_t sdrv_etimer_icu_stop(sdrv_etimer_t *etmr)
stop etimer icu chan.
status_t sdrv_etimer_compare_pwm_start(sdrv_etimer_t *etmr)
start to generate etimer pwm signal.
status_t sdrv_etimer_quad_start(sdrv_etimer_t *etmr)
start etimer quad.
status_t sdrv_etimer_timer_init(sdrv_etimer_t *etmr, sdrv_etimer_basic_cnt_cfg_t *cnt_cfg)
etimer timer init
uint32_t sdrv_etimer_timer_get_current_time(sdrv_etimer_t *etmr)
etimer timer get current time val (us)
uint8_t sdrv_etimer_set_callback(sdrv_etimer_t *etmr, etimer_callback callback, void *arg)
etimer setup callback funciton
status_t sdrv_etimer_timer_start(sdrv_etimer_t *etmr, uint32_t time_out)
etimer timer start
void(* etimer_callback)(void *arg)
Definition: sdrv_etimer.h:28
enum etimer_g0_mode etimer_g0_mode_t
etimer g0 counter mode
status_t sdrv_etimer_timer_stop(sdrv_etimer_t *etmr)
etimer timer stop
etimer_chn_status
etimer work status
Definition: sdrv_etimer.h:69
@ ETIMER_CHAN_UNINIT
Definition: sdrv_etimer.h:71
@ ETIMER_CHAN_STOP
Definition: sdrv_etimer.h:77
@ ETIMER_CHAN_RUNNING
Definition: sdrv_etimer.h:75
@ ETIMER_CHAN_INIT
Definition: sdrv_etimer.h:73
status_t sdrv_etimer_quad_config(sdrv_etimer_t *etmr, quad_ctrl_t *quad_ctrl)
etimer quad config.
status_t sdrv_etimer_quad_stop(sdrv_etimer_t *etmr)
stop etimer quad.
bool sdrv_etimer_quad_dir_up(sdrv_etimer_t *etmr)
get quad dir signal status
sdrv etimer cmp mode ctrl
Definition: sdrv_etimer.h:200
sdrv_etimer_cmp_con_mode_e con_mode
Definition: sdrv_etimer.h:204
sdrv_etimer_cmp_mode_e cmp_mode
Definition: sdrv_etimer.h:207
sdrv_etimer_cmp_out_e chnl_out_mode
Definition: sdrv_etimer.h:202
sdrv etimer multi cmp mode cmp val (ns)
Definition: sdrv_etimer.h:213
uint32_t cmp00_val
Definition: sdrv_etimer.h:214
uint32_t cmp01_val
Definition: sdrv_etimer.h:215
uint32_t cmp10_val
Definition: sdrv_etimer.h:216
uint32_t cmp11_val
Definition: sdrv_etimer.h:217
sdrv etimer tmr config
Definition: sdrv_etimer.h:93
sdrv_etimer_cnt_con_mode_e con_mode
Definition: sdrv_etimer.h:97
uint32_t clk_div
Definition: sdrv_etimer.h:103
sdrv_etimer_clk_src_e clk_sel
Definition: sdrv_etimer.h:99
sdrv_etimer_basic_cnt_id_t tmr_id
Definition: sdrv_etimer.h:95
uint32_t clk_frq
Definition: sdrv_etimer.h:101
sdrv etimer ctrl
Definition: sdrv_etimer.h:121
uint32_t base
Definition: sdrv_etimer.h:123
uint32_t irq
Definition: sdrv_etimer.h:128
bool use_g0_cnt
Definition: sdrv_etimer.h:133
etimer_callback callback
Definition: sdrv_etimer.h:142
bool int_en
Definition: sdrv_etimer.h:131
etimer_chn_status_t crtl_sta
Definition: sdrv_etimer.h:150
bool use_multicpt
Definition: sdrv_etimer.h:154
sdrv_etimer_clk_src_e clk_src
Definition: sdrv_etimer.h:125
uint16_t clk_div
Definition: sdrv_etimer.h:126
sdrv_etimer_controller_t * controller
Definition: sdrv_etimer.h:156
bool fre_double_flag
Definition: sdrv_etimer.h:138
void * arg
Definition: sdrv_etimer.h:144
sdrv_etimer_tmr_cfg_t config
Definition: sdrv_etimer.h:148
bool center_align_mode
Definition: sdrv_etimer.h:135
bool cpt_read_flag
Definition: sdrv_etimer.h:152
sdrv_etimer_chn_id_e channel
Definition: sdrv_etimer.h:146
etimer_work_mode_t mode
Definition: sdrv_etimer.h:140
eTimer hardware contrller
Definition: sdrv_etimer.h:162
uint32_t base
Definition: sdrv_etimer.h:164
etimer_g0_mode_t g0_mode
Definition: sdrv_etimer.h:174
sdrv_etimer_t * etimer_bank[SDRV_ETIMR_CHN_NR *2]
Definition: sdrv_etimer.h:179
sdrv_etimer_t * cnt_bank[ETIMR_BASIC_TMR_NUM]
Definition: sdrv_etimer.h:181
uint32_t g0_period
Definition: sdrv_etimer.h:176
sdrv_etimer_clk_src_e etimer_clk_src
Definition: sdrv_etimer.h:170
bool int_init_flag
Definition: sdrv_etimer.h:166
uint32_t etimer_clk_div
Definition: sdrv_etimer.h:172
bool clk_set_flag
Definition: sdrv_etimer.h:168
sdrv etimer pwm_status
Definition: sdrv_etimer.h:187
uint32_t duty2
Definition: sdrv_etimer.h:194
uint32_t period
Definition: sdrv_etimer.h:189
uint32_t duty1
Definition: sdrv_etimer.h:192
sdrv tmr config
Definition: sdrv_etimer.h:109
uint32_t cnt_per_ms
Definition: sdrv_etimer.h:115
sdrv_etimer_basic_cnt_cfg_t * cnt_cfg
Definition: sdrv_etimer.h:111
uint32_t time_out
Definition: sdrv_etimer.h:113