26#ifndef SDRV_SENT_DRV_H_
27#define SDRV_SENT_DRV_H_
34#define SENT_SECURE_SENSOR_DATA_NIBBLE 6U
36#define SENT_HIGH_SPEED_DATA_NIBBLE 4U
SemiDrive driver common header file.
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
enum sent_frame_state sdrv_sent_frame_state_e
Sdrv sent frame status enum.
struct sdrv_sent_config sdrv_sent_config_t
Sdrv sent module config struct.
void(* sdrv_sent_recv_cb_t)(sdrv_sent_t *ctrl, sdrv_sent_chanid_e sent_chan_id, void *userdata)
Definition: sdrv_sent.h:51
sdrv_sent_bitnum_e
Sdrv sent data width enum.
Definition: sdrv_sent.h:66
@ SENT_DATA_WIDTH_8_BIT
Definition: sdrv_sent.h:68
@ SENT_DATA_WIDTH_16_BIT
Definition: sdrv_sent.h:70
@ SENT_DATA_WIDTH_4_BIT
Definition: sdrv_sent.h:67
@ SENT_DATA_WIDTH_12_BIT
Definition: sdrv_sent.h:69
@ SENT_DATA_WIDTH_20_BIT
Definition: sdrv_sent.h:71
@ SENT_DATA_WIDTH_24_BIT
Definition: sdrv_sent.h:72
sdrv_frame_err
Sdrv sent frame error code enum.
Definition: sdrv_sent.h:90
@ SENT_OK
Definition: sdrv_sent.h:91
@ SENT_TICK_FREQ_ERR
Definition: sdrv_sent.h:100
@ SENT_NOT_OK
Definition: sdrv_sent.h:101
@ SENT_LOW_PULSE_ERR
Definition: sdrv_sent.h:96
@ SENT_MSB_NOT_ZERO
Definition: sdrv_sent.h:97
@ SENT_INV_MSN_ERR
Definition: sdrv_sent.h:98
@ SENT_STATUS_ERR
Definition: sdrv_sent.h:93
@ SENT_CONUNTER_VAL_ERR
Definition: sdrv_sent.h:99
@ SENT_SYNC_ERR
Definition: sdrv_sent.h:92
@ SENT_CRC_ERR
Definition: sdrv_sent.h:95
@ SENT_DATA_ERR
Definition: sdrv_sent.h:94
enum sent_chan_state sent_chan_state_e
Sdrv sent frame status enum.
enum sdrv_frame_err sdrv_frame_err_e
Sdrv sent frame error code enum.
struct sent_chan_frame sent_chan_frame_t
status_t sdrv_sent_init(sdrv_sent_t *ctrl, sdrv_sent_config_t *cfg)
Sdrv sent controller initialization.
sent_chan_state
Sdrv sent frame status enum.
Definition: sdrv_sent.h:119
@ CHAN_STATUS_STOPPED
Definition: sdrv_sent.h:123
@ CHAN_STATUS_RUNNING
Definition: sdrv_sent.h:122
@ CHAN_STATUS_UNINIT
Definition: sdrv_sent.h:120
@ CHAN_STATUS_INITED
Definition: sdrv_sent.h:121
status_t sdrv_sent_get_frame(sdrv_sent_t *ctrl, sdrv_sent_chanid_e sent_chan_id, uint32_t *frame_err, sent_chan_frame_t *frame)
Get sent frame info.
sdrv_sent_sta_e
Sdrv sent status enum.
Definition: sdrv_sent.h:76
@ SENT_STATUS_INITED
Definition: sdrv_sent.h:78
@ SENT_STATUS_UNINIT
Definition: sdrv_sent.h:77
int sdrv_sent_irq_handle(uint32_t irq, void *ctrl)
Sdrv sent interrupt handler.
struct sdrv_sent_chan sdrv_sent_chan_t
Sdrv sent channel struct.
status_t sdrv_sent_recv_stop(sdrv_sent_t *ctrl, sdrv_sent_chanid_e sent_chan_id)
Sent stop recv frame.
sdrv_sent_chanid
Sdrv sent channel id enum.
Definition: sdrv_sent.h:39
@ SDRV_SENT_HW_CPT_B
Definition: sdrv_sent.h:41
@ SDRV_SENT_HW_CPT_A
Definition: sdrv_sent.h:40
@ SDRV_SENT_CHAN_NUM
Definition: sdrv_sent.h:44
@ SDRV_SENT_HW_CPT_D
Definition: sdrv_sent.h:43
@ SDRV_SENT_HW_CPT_C
Definition: sdrv_sent.h:42
status_t sdrv_sent_parse_msg(sdrv_sent_t *ctrl, sdrv_sent_chanid_e sent_chan_id)
Parse sent frame.
enum sdrv_sent_chanid sdrv_sent_chanid_e
Definition: sdrv_sent.h:49
status_t sdrv_sent_recv_start(sdrv_sent_t *ctrl, sdrv_sent_chanid_e sent_chan_id)
Sent starts to receive frames.
sent_frame_state
Sdrv sent frame status enum.
Definition: sdrv_sent.h:105
@ SENT_DATA
Definition: sdrv_sent.h:111
@ SENT_IDLE
Definition: sdrv_sent.h:106
@ SENT_CRC
Definition: sdrv_sent.h:112
@ SENT_PAUSE
Definition: sdrv_sent.h:114
@ SENT_SYNC
Definition: sdrv_sent.h:107
@ SENT_STATUS
Definition: sdrv_sent.h:109
sdrv_sent_fastchan_e
Sdrv sent channel transmit format enum.
Definition: sdrv_sent.h:82
@ SENT_HIGH_SPEED_FORMAT
Definition: sdrv_sent.h:86
@ SENT_STANDARD_FORMAT
Definition: sdrv_sent.h:83
@ SENT_SINGLE_SECURE_FORMAT
Definition: sdrv_sent.h:84
struct sdrv_sent_chan_config sdrv_sent_chan_config_t
Sdrv sent channel config struct.
status_t sdrv_sent_set_callback(sdrv_sent_t *ctrl, sdrv_sent_chanid_e sdrv_sent_chanid, sdrv_sent_recv_cb_t callback, void *userdata)
Sent set callback function.
status_t sdrv_sent_deinit(sdrv_sent_t *ctrl)
Sdrv sent controller deinitialization.
sdrv_sent_clk_src_e
sdrv sent clock source enum.
Definition: sdrv_sent.h:56
@ SDRV_SENT_LP_CLK
Definition: sdrv_sent.h:61
@ SDRV_SENT_AHF_CLK
Definition: sdrv_sent.h:58
@ SDRV_SENT_HF_CLK
Definition: sdrv_sent.h:57
@ SDRV_SENT_EXT_CLK
Definition: sdrv_sent.h:60
Sdrv sent channel config struct.
Definition: sdrv_sent.h:183
bool filter_en
Definition: sdrv_sent.h:201
sdrv_sent_fastchan_e fast_chan
Definition: sdrv_sent.h:189
sdrv_sent_chanid_e chan_id
Definition: sdrv_sent.h:184
uint8_t lowpulse_width
Definition: sdrv_sent.h:192
uint8_t sample_interval
Definition: sdrv_sent.h:205
bool pause_pulse
Definition: sdrv_sent.h:199
uint8_t fifowml
Definition: sdrv_sent.h:194
uint32_t tickfreq
Definition: sdrv_sent.h:186
uint8_t filter_bandwidth
Definition: sdrv_sent.h:203
sdrv_sent_bitnum_e data_bitnum
Definition: sdrv_sent.h:191
Sdrv sent channel struct.
Definition: sdrv_sent.h:140
bool filter_en
Definition: sdrv_sent.h:155
sent_chan_frame_t frame_info
Definition: sdrv_sent.h:164
sdrv_sent_chanid_e chan_id
Definition: sdrv_sent.h:141
volatile uint32_t actual_scaler
Definition: sdrv_sent.h:162
uint8_t lowpulse_width
Definition: sdrv_sent.h:147
uint8_t sample_interval
Definition: sdrv_sent.h:159
volatile sent_chan_state_e chan_sta
Definition: sdrv_sent.h:142
bool pause_pulse
Definition: sdrv_sent.h:148
sdrv_sent_recv_cb_t frameover_cb
Definition: sdrv_sent.h:144
uint32_t expect_scaler
Definition: sdrv_sent.h:161
uint8_t fifowml
Definition: sdrv_sent.h:150
uint32_t tickfreq
Definition: sdrv_sent.h:149
uint8_t filter_bandwidth
Definition: sdrv_sent.h:157
void * userdata
Definition: sdrv_sent.h:145
Sdrv sent module config struct.
Definition: sdrv_sent.h:210
uint32_t base
Definition: sdrv_sent.h:211
uint32_t irq
Definition: sdrv_sent.h:212
sdrv_sent_chan_config_t chan_cfg[SDRV_SENT_CHAN_NUM]
Definition: sdrv_sent.h:221
uint32_t clk_freq
Definition: sdrv_sent.h:216
uint16_t clk_div
Definition: sdrv_sent.h:215
uint8_t chan_cfg_num
Definition: sdrv_sent.h:219
sdrv_sent_clk_src_e clk_sel
Definition: sdrv_sent.h:214
Sdrv sent module struct.
Definition: sdrv_sent.h:168
uint32_t base
Definition: sdrv_sent.h:169
int32_t irq
Definition: sdrv_sent.h:170
uint32_t clk_freq
Definition: sdrv_sent.h:174
uint8_t chan_num
Definition: sdrv_sent.h:177
uint16_t clk_div
Definition: sdrv_sent.h:173
sdrv_sent_chan_t chan[SDRV_SENT_CHAN_NUM]
Definition: sdrv_sent.h:179
sdrv_sent_clk_src_e clk_sel
Definition: sdrv_sent.h:172
volatile sdrv_sent_sta_e sent_sta
Definition: sdrv_sent.h:176
Definition: sdrv_sent.h:127
volatile sdrv_sent_frame_state_e cur_state
Definition: sdrv_sent.h:129
volatile uint8_t frame_sta
Definition: sdrv_sent.h:133
volatile uint32_t frame_err
Definition: sdrv_sent.h:135
volatile uint8_t frame_crc
Definition: sdrv_sent.h:134
volatile uint8_t rx_index
Definition: sdrv_sent.h:132
uint8_t frame_dl
Definition: sdrv_sent.h:131
volatile uint8_t rxframe[6]
Definition: sdrv_sent.h:130
sdrv_sent_fastchan_e frame_format
Definition: sdrv_sent.h:128
volatile bool frame_valid
Definition: sdrv_sent.h:136