17#define SDRV_ADC_POLL_TMO (1000 * 1000u)
20#define sdrv_adc1 ((sdrv_adc_t *)APB_ADC1_BASE)
21#define sdrv_adc2 ((sdrv_adc_t *)APB_ADC2_BASE)
22#define sdrv_adc3 ((sdrv_adc_t *)APB_ADC3_BASE)
25#define SDRV_ADC_RC_CNT (4u)
26#define SDRV_ADC_RC_ENTRY_CNT (16u)
27#define SDRV_ADC_RCHT_ENTRY_CNT (32u)
28#define SDRV_ADC_CID_PART_CNT (8u)
29#define SDRV_ADC_ANA_PARAM_CNT (16u)
30#define SDRV_ADC_MNT_SINGLE_CNT (8u)
31#define SDRV_ADC_SUB_FIFO_CNT (4u)
33#define ADC_CH_POLAR_POS 1u
34#define ADC_CH_POLAR_NEG 0u
37#define ADC_CH_SEL_TAISHAN(ch, polar, mux) \
38 ((((mux) & 0x7u) << 6) | (((polar) & 0x1u) << 3) | ((ch) & 0x7u))
40#define ADC_DCH_SEL_TAISHAN(ch_p, ch_n, mux) \
41 ((((mux) & 0x7u) << 6) | (((ch_p) & 0x7u) << 3) | ((ch_n) & 0x7u))
44#define SADC_SOFT_RST_DIG (1u << 0)
45#define SADC_SOFT_RST_ANA (1u << 1)
46#define SADC_SOFT_RST_RC_POS (2)
47#define SADC_SOFT_RST_RC0TMR (1u << 2)
48#define SADC_SOFT_RST_RC1TMR (1u << 3)
49#define SADC_SOFT_RST_RC2TMR (1u << 4)
50#define SADC_SOFT_RST_RC3TMR (1u << 5)
52#define SADC_INIT_VALUE_POS (0)
53#define SADC_INIT_VALUE_MSK (0xFFFFFu << SADC_INIT_VALUE_POS)
54#define SADC_INIT_START (1u << 20)
55#define SADC_INIT_DONE (1u << 24)
57#define SADC_DCOC_TIMES_POS (0)
58#define SADC_DCOC_TIMES_MSK (0x7u << SADC_DCOC_TIMES_POS)
59#define SADC_DCOC_START (1u << 3)
60#define SADC_DCOC_EN (1u << 4)
61#define SADC_DCOC_OVWR (1u << 8)
62#define SADC_DCOC_VALUE_POS (16)
63#define SADC_DCOC_VALUE_MSK (0xFFFu << SADC_DCOC_VALUE_POS)
64#define SADC_DCOC_VALUE_SIGN (1u << 28)
65#define SADC_DCOC_VALUE_DONE (1u << 31)
67#define SADC_HTC_DONE_LEN_POS (0)
68#define SADC_HTC_DONE_LEN_MSK (0xFu << SADC_HTC_DONE_LEN_POS)
69#define SADC_HTC_READY_LEN_POS (8)
70#define SADC_HTC_READY_LEN_MSK (0xFFu << SADC_HTC_READY_LEN_POS)
71#define SADC_HTC_READY (1u << 31)
73#define SADC_RCHT_ENTRY_AMSEL_POS (0)
74#define SADC_RCHT_ENTRY_AMSEL_MSK (0x1FFu << SADC_RCHT_ENTRY_AMSEL_POS)
75#define SADC_RCHT_ENTRY_CSEL_POS (12)
76#define SADC_RCHT_ENTRY_CSEL_MSK (0xFu << SADC_RCHT_ENTRY_CSEL_POS)
77#define SADC_RCHT_ENTRY_RPT_MODE (1u << 16)
78#define SADC_RCHT_ENTRY_RPT_CNT_POS (24)
79#define SADC_RCHT_ENTRY_RPT_CNT_MSK (0x7u << SADC_RCHT_ENTRY_RPT_CNT_POS)
81#define SADC_RC_TIMER_COMPARE_POS (0)
82#define SADC_RC_TIMER_COMPARE_MSK (0xFFFFu << SADC_RC_TIMER_COMPARE_POS)
83#define SADC_RC_TIMER_TERMINAL_POS (16)
84#define SADC_RC_TIMER_TERMINAL_MSK (0xFFFFu << SADC_RC_TIMER_TERMINAL_POS)
86#define SADC_RC_Q_CUR_POS (0)
87#define SADC_RC_Q_CUR_MSK (0xFu << SADC_RC_Q_CUR_POS)
88#define SADC_RC_Q_START_POS (4)
89#define SADC_RC_Q_START_MSK (0xFu << SADC_RC_Q_START_POS)
90#define SADC_RC_Q_END_POS (8)
91#define SADC_RC_Q_END_MSK (0xFu << SADC_RC_Q_END_POS)
92#define SADC_RC_TRG_START (1u << 12)
93#define SADC_RC_TMR_SLAVE (1u << 13)
94#define SADC_RC_TRG_MODE_SW (1u << 14)
95#define SADC_RC_SOFT_TRG (1u << 15)
96#define SADC_RC_OVWR_CUR_EN (1u << 16)
97#define SADC_RC_TRG_EN (1u << 17)
99#define SADC_INT_STAT_END_COV_RC3 (1u << 0)
100#define SADC_INT_STAT_END_COV_RC2 (1u << 1)
101#define SADC_INT_STAT_END_COV_RC1 (1u << 2)
102#define SADC_INT_STAT_END_COV_RC0 (1u << 3)
103#define SADC_INT_STAT_END_COV_RCHT (1u << 4)
104#define SADC_INT_STAT_SUB_FIFO0 (1u << 8)
105#define SADC_INT_STAT_SUB_FIFO1 (1u << 9)
106#define SADC_INT_STAT_SUB_FIFO2 (1u << 10)
107#define SADC_INT_STAT_SUB_FIFO3 (1u << 11)
108#define SADC_INT_STAT_TS_OVF (1u << 12)
109#define SADC_INT_STAT_MNT_SINGLE0 (1u << 16)
110#define SADC_INT_STAT_MNT_SINGLE1 (1u << 17)
111#define SADC_INT_STAT_MNT_SINGLE2 (1u << 18)
112#define SADC_INT_STAT_MNT_SINGLE3 (1u << 19)
113#define SADC_INT_STAT_MNT_SINGLE4 (1u << 20)
114#define SADC_INT_STAT_MNT_SINGLE5 (1u << 21)
115#define SADC_INT_STAT_MNT_SINGLE6 (1u << 22)
116#define SADC_INT_STAT_MNT_SINGLE7 (1u << 23)
117#define SADC_INT_STAT_MNT_CONT (1u << 24)
119#define SADC_RC_ENTRY_AMSEL_POS (0)
120#define SADC_RC_ENTRY_AMSEL_MSK (0x1FFu << SADC_RC_ENTRY_AMSEL_POS)
121#define SADC_RC_ENTRY_CSEL_POS (12)
122#define SADC_RC_ENTRY_CSEL_MSK (0xFu << SADC_RC_ENTRY_CSEL_POS)
123#define SADC_RC_ENTRY_RPT_MODE (1u << 16)
124#define SADC_RC_ENTRY_RPT_CNT_POS (24)
125#define SADC_RC_ENTRY_RPT_CNT_MSK (0xFu << SADC_RC_ENTRY_RPT_CNT_POS)
127#define SADC_SCH_CID_MSK (0x7u)
128#define SADC_SCH_CID_WIDTH_BIT (4)
129#define SADC_SCH_CID_CNT_PER_REG (32 / SADC_SCH_CID_WIDTH_BIT)
130#define SADC_SCH_CID_CNT (SDRV_ADC_CID_PART_CNT * SADC_SCH_CID_CNT_PER_REG)
131#define SADC_SCH_CID_MV_NEXT (7u)
134#define SADC_SCH_CFG_SLOT_ITVL_POS (0)
135#define SADC_SCH_CFG_SLOT_ITVL_MSK (0xFFu << SADC_SCH_CFG_SLOT_ITVL_POS)
136#define SADC_SCH_CFG_SLOT_CONST (1u << 8)
137#define SADC_SCH_CFG_MODE_MASTER (1u << 9)
138#define SADC_SCH_CFG_MODE_SYNC (1u << 10)
139#define SADC_SCH_CFG_ROT_EN (1u << 11)
140#define SADC_SCH_CFG_ASYNC_STALL (1u << 12)
141#define SADC_SCH_CFG_SLV_DLY_POS (16)
142#define SADC_SCH_CFG_SLV_DLY_MSK (0xFFu << SADC_SCH_CFG_SLV_DLY_POS)
143#define SADC_SCH_CFG_SLOT_HALT (1u << 24)
144#define SADC_SCH_CFG_SLOT_RST (1u << 25)
145#define SADC_SCH_CFG_RST_DONE (1u << 28)
146#define SADC_SCH_CFG_TS_VLD (1u << 30)
147#define SADC_SCH_CFG_TS_RST (1u << 31)
149#define SADC_CLK_CTRL_DIV_BYPASS (1u << 0)
150#define SADC_CLK_CTRL_REFH_POS (8)
151#define SADC_CLK_CTRL_REFH_MSK (0xFu << SADC_CLK_CTRL_REFH_POS)
152#define SADC_CLK_CTRL_REFL_POS (12)
153#define SADC_CLK_CTRL_REFL_MSK (0xFu << SADC_CLK_CTRL_REFL_POS)
154#define SDRV_ADC_CLK_DIV_MAX 32
155#define SDRV_ADC_CLK_DIV_MIN 5
157#define SADC_ANA_PARAM_SAMCTRL_POS (0)
158#define SADC_ANA_PARAM_SAMCTRL_MSK (0x7u << SADC_ANA_PARAM_SAMCTRL_POS)
159#define SADC_ANA_PARAM_REF_SEL (1u << 4)
160#define SADC_ANA_PARAM_DIFF_SEL (1u << 5)
161#define SADC_ANA_PARAM_CCP_POS (8)
162#define SADC_ANA_PARAM_CCP_MSK (0xFu << SADC_ANA_PARAM_CCP_POS)
163#define SADC_ANA_PARAM_CCN_POS (12)
164#define SADC_ANA_PARAM_CCN_MSK (0xFu << SADC_ANA_PARAM_CCN_POS)
165#define SADC_ANA_PARAM_CCT_POS (16)
166#define SADC_ANA_PARAM_CCT_MSK (0x1Fu << SADC_ANA_PARAM_CCT_POS)
168#define SADC_MNT_THRES_HIGH_POS (0)
169#define SADC_MNT_THRES_HIGH_MSK (0xFFFu << SADC_MNT_THRES_HIGH_POS)
170#define SADC_MNT_THRES_LOW_POS (16)
171#define SADC_MNT_THRES_LOW_MSK (0xFFFu << SADC_MNT_THRES_LOW_POS)
172#define SADC_MNT_THRES_MODE_POS (28)
173#define SADC_MNT_THRES_MODE_MSK (0x3u << SADC_MNT_THRES_MODE_POS)
174#define SADC_MNT_THRES_MODE_HIGHER (0x0u << SADC_MNT_THRES_MODE_POS)
175#define SADC_MNT_THRES_MODE_LOWER (0x1u << SADC_MNT_THRES_MODE_POS)
176#define SADC_MNT_THRES_MODE_BETWEEN (0x2u << SADC_MNT_THRES_MODE_POS)
177#define SADC_MNT_THRES_MODE_CLOSE (0x3u << SADC_MNT_THRES_MODE_POS)
179#define SADC_FIFO_CFG_PACK_M_POS (0)
180#define SADC_FIFO_CFG_PACK_M_MSK (0x3u << SADC_FIFO_CFG_PACK_M_POS)
181#define SADC_FIFO_CFG_PACK_M_16 (0u)
182#define SADC_FIFO_CFG_PACK_M_32 (1u)
183#define SADC_FIFO_CFG_PACK_M_64 (2u)
184#define SADC_FIFO_CFG_BYPASS (1u << 4)
185#define SADC_FIFO_CFG_PACK16_AMSEL (1u << 8)
187#define SADC_SUB_FIFO_SADDR_POS (0)
188#define SADC_SUB_FIFO_SADDR_MSK (0x7Fu << SADC_SUB_FIFO_SADDR_POS)
189#define SADC_SUB_FIFO_THRES_POS (8)
190#define SADC_SUB_FIFO_THRES_MSK (0x7Fu << SADC_SUB_FIFO_THRES_POS)
191#define SADC_SUB_FIFO_RC_EN_POS (16)
192#define SADC_SUB_FIFO_RC_EN_MSK (0x1Fu << SADC_SUB_FIFO_RC_EN_POS)
193#define SADC_SUB_FIFO_EMPTY (1u << 24)
194#define SADC_SUB_FIFO_FULL (1u << 25)
196#define SADC_DMA_MODE_FIFO3 (1u << 0)
197#define SADC_DMA_MODE_FIFO2 (1u << 1)
198#define SADC_DMA_MODE_FIFO1 (1u << 2)
199#define SADC_DMA_MODE_FIFO0 (1u << 3)
200#define SADC_DMA_MODE_RCHT (1u << 4)
201#define SADC_DMA_CH0EN_F3RC3 (1u << 8)
202#define SADC_DMA_CH0EN_F2RC2 (1u << 9)
203#define SADC_DMA_CH0EN_F1RC1 (1u << 10)
204#define SADC_DMA_CH0EN_F0RC0 (1u << 11)
205#define SADC_DMA_CH0EN_RCHT (1u << 12)
206#define SADC_DMA_CH1EN_F3RC3 (1u << 16)
207#define SADC_DMA_CH1EN_F2RC2 (1u << 17)
208#define SADC_DMA_CH1EN_F1RC1 (1u << 18)
209#define SADC_DMA_CH1EN_F0RC0 (1u << 19)
210#define SADC_DMA_CH1EN_RCHT (1u << 20)
212#define SADC_ANA_REF_PART1_PD (1U << 0)
213#define SADC_ANA_REF_PART1_PDBISA (1U << 1)
286#define SDRV_ADC_RC_TMR_MODE_SLAVE 1
287#define SDRV_ADC_RC_TMR_MODE_MASTER 0
288#define SDRV_ADC_RC_TRG_MODE_SW 1
289#define SDRV_ADC_RC_TRG_MODE_HW 0
306#define SDRV_ADC_RCHT_REPEAT_1 0
307#define SDRV_ADC_RCHT_REPEAT_2 1
308#define SDRV_ADC_RCHT_REPEAT_4 2
309#define SDRV_ADC_RCHT_REPEAT_8 3
310#define SDRV_ADC_RCHT_REPEAT_16 4
322#define SDRV_ADC_RC_REPM_SW_TRG 1
323#define SDRV_ADC_RC_REPM_HW_TRG 0
336#define SDRV_ADC_SAMPLE_TIME_2D5 0
337#define SDRV_ADC_SAMPLE_TIME_4D5 1
338#define SDRV_ADC_SAMPLE_TIME_6D5 2
339#define SDRV_ADC_SAMPLE_TIME_10D5 3
340#define SDRV_ADC_SAMPLE_TIME_18D5 4
341#define SDRV_ADC_SAMPLE_TIME_34D5 5
342#define SDRV_ADC_SAMPLE_TIME_66D5 6
343#define SDRV_ADC_SAMPLE_TIME_130D5 7
344#define SDRV_ADC_REF_VREFP2 1
345#define SDRV_ADC_REF_VREFP1 0
346#define SDRV_ADC_INPUT_DIFF 1
347#define SDRV_ADC_INPUT_SINGLE 0
358#define SDRV_ADC_FIFO_MODE_PACK16 (0u)
359#define SDRV_ADC_FIFO_MODE_PACK32 (1u)
360#define SDRV_ADC_FIFO_MODE_PACK64 (2u)
376#define SDRV_ADC_FIFO_INPUT_RC3 (1u << 0)
377#define SDRV_ADC_FIFO_INPUT_RC2 (1u << 1)
378#define SDRV_ADC_FIFO_INPUT_RC1 (1u << 2)
379#define SDRV_ADC_FIFO_INPUT_RC0 (1u << 3)
380#define SDRV_ADC_FIFO_INPUT_RCHT (1u << 4)
381#define SDRV_ADC_FIFO_INPUT_ALL (0x1Fu)
387#define SDRV_ADC_START_RC0 (1u << 0)
388#define SDRV_ADC_START_RC1 (1u << 1)
389#define SDRV_ADC_START_RC2 (1u << 2)
390#define SDRV_ADC_START_RC3 (1u << 3)
391#define SDRV_ADC_START_ALL ((1u << SDRV_ADC_RC_CNT) - 1)
577 unsigned int entry_nbr,
590 unsigned int entry_nbr,
601 unsigned int param_nbr,
void sdrv_adc_init(sdrv_adc_t *sdrv_adcX, unsigned int clk_div)
ADC controller init.
struct sdrv_adc_rc_cfg sdrv_adc_rc_cfg_t
RC(Request Channel) configuration info.
volatile struct sdrv_adc sdrv_adc_t
Registers of ADC Controller.
struct sdrv_adc_rcht_entry_cfg sdrv_adc_rcht_entry_cfg_t
RCHT(Request Channel Hardware Trigger) entry configuration info.
void sdrv_adc_sync_cfg(sdrv_adc_t *sdrv_adcX, sdrv_adc_sync_cfg_t sync_cfg, uint8_t *slot_cid, unsigned int len)
Configure slot CIDs and interval if it's in sync mode.
struct sdrv_adc_fifo_cfg sdrv_adc_fifo_cfg_t
FIFO configuration info.
void sdrv_adc_clr_slave_mode(sdrv_adc_t *sdrv_adcX)
Set ADC controller to Master mode.
struct sdrv_adc_rc_entry_cfg sdrv_adc_rc_entry_cfg_t
RC(Request Channel) entry configuration info.
void sdrv_adc_fifo_rc_cfg(sdrv_adc_t *sdrv_adcX, sdrv_adc_fifo_rc_cfg_t rc_cfg)
Configure which RC or RCHT could insert its data into FIFO.
void sdrv_adc_ana_param_cfg(sdrv_adc_t *sdrv_adcX, unsigned int param_nbr, sdrv_adc_ana_param_cfg_t aparam_cfg)
Configure one of the analog parameter array.
void sdrv_adc_clear_int_status(sdrv_adc_t *sdrv_adcX, uint32_t int_bits)
Clear ADC normal interrupt status.
void sdrv_adc_rc_start_timers(sdrv_adc_t *sdrv_adcX, sdrv_adc_rc_start_flag_t rc_flags)
Start multiple RC timer at the same time to trigger ADC conversion.
void sdrv_adc_rc_cfg(sdrv_adc_t *sdrv_adcX, unsigned int rc_nbr, sdrv_adc_rc_cfg_t *rc_cfg)
RC(Request Channel) configuration.
void sdrv_adc_dma_enable(sdrv_adc_t *sdrv_adcX, sdrv_adc_dma_src_cfg_t req_src)
Configure the source to trigger DMA request and enable it.
void sdrv_adc_Async_start(sdrv_adc_t *sdrv_adcX)
Put ADC in Async mode and start working.
void sdrv_adc_rc_soft_trg(sdrv_adc_t *sdrv_adcX, unsigned int rc_nbr)
Trigger ADC conversion once if the RC is in software trigger mode.
void sdrv_adc_rc_stop_tmr(sdrv_adc_t *sdrv_adcX, unsigned int rc_nbr)
Stop RC timer.
void sdrv_adc_rcht_entry_cfg(sdrv_adc_t *sdrv_adcX, unsigned int entry_nbr, sdrv_adc_rcht_entry_cfg_t entry_cfg)
Configure RCHT(Request Channel Hardware Trigger) entry.
#define SDRV_ADC_RC_CNT
Definition: sdrv_adc.h:25
#define SDRV_ADC_ANA_PARAM_CNT
Definition: sdrv_adc.h:29
uintptr_t sdrv_adc_fifo_addr(sdrv_adc_t *sdrv_adcX)
Return FIFO address of the ADC controller.
enum sdrv_adc_sync_cid sdrv_adc_sync_cid_t
Descriptor for configuring slot CID in sync mode.
#define SDRV_ADC_RC_ENTRY_CNT
Definition: sdrv_adc.h:26
void sdrv_adc_int_status_sig_en_cfg(sdrv_adc_t *sdrv_adcX, uint32_t int_bits, bool enable)
Enable or disable ADC controller to trigger normal interrupt.
sdrv_adc_dma_src_cfg
Describe which source to trigger DMA request.
Definition: sdrv_adc.h:397
@ SDRV_ADC_DMA_SRC_RC1
Definition: sdrv_adc.h:400
@ SDRV_ADC_DMA_SRC_FIFO
Definition: sdrv_adc.h:398
@ SDRV_ADC_DMA_SRC_RC2
Definition: sdrv_adc.h:401
@ SDRV_ADC_DMA_SRC_RC3
Definition: sdrv_adc.h:402
@ SDRV_ADC_DMA_SRC_RCHT
Definition: sdrv_adc.h:403
@ SDRV_ADC_DMA_SRC_RC0
Definition: sdrv_adc.h:399
uint32_t sdrv_adc_read_int_status(sdrv_adc_t *sdrv_adcX)
Read ADC normal interrupt status.
struct sdrv_adc_ana_param_cfg sdrv_adc_ana_param_cfg_t
Analog Param configuration info.
#define SDRV_ADC_RCHT_ENTRY_CNT
Definition: sdrv_adc.h:27
#define SDRV_ADC_MNT_SINGLE_CNT
Definition: sdrv_adc.h:30
unsigned int sdrv_adc_fifo_rc_cfg_t
Definition: sdrv_adc.h:382
void sdrv_adc_stop(sdrv_adc_t *sdrv_adcX, bool rc_tmr_stop)
Stop ADC from working.
void sdrv_adc_sync_slot_reset(sdrv_adc_t *sdrv_adcX)
Reset slot CID pointer to 0 in sync mode.
void sdrv_adc_dma_disable(sdrv_adc_t *sdrv_adcX)
Disable DMA request of the ADC controller.
void sdrv_adc_set_dc_offset(sdrv_adc_t *sdrv_adcX, int16_t offset)
Set data calibration offset value of ADC controller.
uint32_t sdrv_adc_read_fifo(sdrv_adc_t *sdrv_adcX)
Read ADC FIFO data.
void sdrv_adc_int_status_en_cfg(sdrv_adc_t *sdrv_adcX, uint32_t int_bits, bool enable)
Enable or disable ADC controller to record normal interrupt status.
sdrv_adc_sync_cid
Descriptor for configuring slot CID in sync mode.
Definition: sdrv_adc.h:409
@ SDRV_ADC_SYNC_CID_RC0
Definition: sdrv_adc.h:410
@ SDRV_ADC_SYNC_CID_IDLE
Definition: sdrv_adc.h:416
@ SDRV_ADC_SYNC_CID_RC1
Definition: sdrv_adc.h:411
@ SDRV_ADC_SYNC_CID_RC2
Definition: sdrv_adc.h:412
@ SDRV_ADC_SYNC_CID_MERGE
Definition: sdrv_adc.h:415
@ SDRV_ADC_SYNC_CID_RC3
Definition: sdrv_adc.h:413
@ SDRV_ADC_SYNC_CID_RCHT
Definition: sdrv_adc.h:414
void sdrv_adc_rcht_clr_ready(sdrv_adc_t *sdrv_adcX)
Clear RCHT(Request Channel Hardware Trigger) ready.
void sdrv_adc_power_ctrl(sdrv_adc_t *sdrv_adcX, bool down)
ADC analog reference configuration.
#define SDRV_ADC_SUB_FIFO_CNT
Definition: sdrv_adc.h:31
uint32_t sdrv_adc_fifo_status(sdrv_adc_t *sdrv_adcX)
Get ADC FIFO status.
void sdrv_adc_fifo_cfg(sdrv_adc_t *sdrv_adcX, sdrv_adc_fifo_cfg_t *fifo_cfg)
Configure FIFO working mode.
struct sdrv_adc_sync_cfg sdrv_adc_sync_cfg_t
Sync mode configuration info.
void sdrv_adc_rc_start_tmr(sdrv_adc_t *sdrv_adcX, unsigned int rc_nbr)
Start RC timer to trigger ADC conversion.
void sdrv_adc_rcht_ready(sdrv_adc_t *sdrv_adcX, uint8_t ready_len)
Set RCHT(Request Channel Hardware Trigger) ready.
unsigned int sdrv_adc_rc_start_flag_t
Definition: sdrv_adc.h:392
int16_t sdrv_adc_get_dc_offset(sdrv_adc_t *sdrv_adcX)
Get current data calibration offset value of ADC controller.
void sdrv_adc_set_slave_mode(sdrv_adc_t *sdrv_adcX)
Set ADC controller to Slave mode.
#define SDRV_ADC_CID_PART_CNT
Definition: sdrv_adc.h:28
void sdrv_adc_sync_start(sdrv_adc_t *sdrv_adcX)
Put ADC in sync mode and start working.
void sdrv_adc_rc_entry_cfg(sdrv_adc_t *sdrv_adcX, unsigned int rc_nbr, unsigned int entry_nbr, sdrv_adc_rc_entry_cfg_t entry_cfg)
Configure RC(Request Channel) entry.
enum sdrv_adc_dma_src_cfg sdrv_adc_dma_src_cfg_t
Describe which source to trigger DMA request.
Analog Param configuration info.
Definition: sdrv_adc.h:351
uint32_t ref_sel
Definition: sdrv_adc.h:354
uint32_t input_mode
Definition: sdrv_adc.h:355
uint32_t sample_time
Definition: sdrv_adc.h:352
FIFO configuration info.
Definition: sdrv_adc.h:364
uint32_t pack16_chnl
Definition: sdrv_adc.h:369
uint32_t bypass
Definition: sdrv_adc.h:367
uint32_t threshold
Definition: sdrv_adc.h:370
uint32_t pack_mode
Definition: sdrv_adc.h:365
RC(Request Channel) configuration info.
Definition: sdrv_adc.h:293
uint32_t trg_mode
Definition: sdrv_adc.h:301
uint32_t q_start
Definition: sdrv_adc.h:297
uint32_t tmr_mode
Definition: sdrv_adc.h:300
uint16_t compare
Definition: sdrv_adc.h:295
uint32_t q_end
Definition: sdrv_adc.h:298
uint32_t q_cur
Definition: sdrv_adc.h:296
uint32_t trg_en
Definition: sdrv_adc.h:303
uint16_t terminal
Definition: sdrv_adc.h:294
RC(Request Channel) entry configuration info.
Definition: sdrv_adc.h:327
uint32_t channel
Definition: sdrv_adc.h:328
uint32_t cfg_sel
Definition: sdrv_adc.h:330
uint32_t repeat_cnt
Definition: sdrv_adc.h:333
uint32_t repeat_mode
Definition: sdrv_adc.h:331
RCHT(Request Channel Hardware Trigger) entry configuration info.
Definition: sdrv_adc.h:314
uint32_t channel
Definition: sdrv_adc.h:315
uint32_t cfg_sel
Definition: sdrv_adc.h:317
uint32_t repeat_cnt
Definition: sdrv_adc.h:319
Sync mode configuration info.
Definition: sdrv_adc.h:422
uint32_t itvl_const
Definition: sdrv_adc.h:424
uint32_t slot_itvl
Definition: sdrv_adc.h:423
Registers of ADC Controller.
Definition: sdrv_adc.h:219
uint32_t init
Definition: sdrv_adc.h:221
uint32_t unc_err_int_stat_en
Definition: sdrv_adc.h:236
uint32_t reserved8
Definition: sdrv_adc.h:269
uint32_t fusa_unc_err_int_stat_en
Definition: sdrv_adc.h:275
uint32_t clk_ctrl
Definition: sdrv_adc.h:247
uint32_t reg_prty_err_int_sig_en
Definition: sdrv_adc.h:268
uint32_t ts_value
Definition: sdrv_adc.h:242
uint32_t sch_prio
Definition: sdrv_adc.h:246
uint32_t reserved5
Definition: sdrv_adc.h:248
uint64_t conv_rc[SDRV_ADC_RC_CNT]
Definition: sdrv_adc.h:279
uint32_t sch_cid_part[SDRV_ADC_CID_PART_CNT]
Definition: sdrv_adc.h:241
uint32_t fusa_cor_err_int_stat
Definition: sdrv_adc.h:270
uint32_t ate_test_cfg
Definition: sdrv_adc.h:281
uint32_t rc_timer[SDRV_ADC_RC_CNT]
Definition: sdrv_adc.h:225
uint32_t htc
Definition: sdrv_adc.h:223
uint32_t sub_fifo[SDRV_ADC_SUB_FIFO_CNT]
Definition: sdrv_adc.h:261
uint32_t reserved4[2]
Definition: sdrv_adc.h:244
uint32_t reg_prty_err_int_stat
Definition: sdrv_adc.h:266
uint32_t cor_err_int_sig_en
Definition: sdrv_adc.h:233
uint32_t ana_ref_cfg1
Definition: sdrv_adc.h:249
uint32_t int_sig_en
Definition: sdrv_adc.h:229
uint32_t mnt_single[SDRV_ADC_MNT_SINGLE_CNT]
Definition: sdrv_adc.h:254
uint32_t ana_ref_cfg2
Definition: sdrv_adc.h:250
uint8_t reserved3[0x100 - 0xDC]
Definition: sdrv_adc.h:239
uint32_t mnt_cont
Definition: sdrv_adc.h:255
uint32_t dbg_reg_ctrl
Definition: sdrv_adc.h:282
uint32_t ana_para[SDRV_ADC_ANA_PARAM_CNT]
Definition: sdrv_adc.h:253
uint32_t mnt_thrd_single[SDRV_ADC_MNT_SINGLE_CNT]
Definition: sdrv_adc.h:256
uint32_t fusa_unc_err_int_sig_en
Definition: sdrv_adc.h:276
uint32_t fusa_cor_err_int_stat_en
Definition: sdrv_adc.h:271
uint32_t unc_err_int_sig_en
Definition: sdrv_adc.h:237
uint32_t unc_err_int_stat
Definition: sdrv_adc.h:235
uint32_t reg_prty_err_int_stat_en
Definition: sdrv_adc.h:267
uint32_t mnt_thrd_cont
Definition: sdrv_adc.h:257
uint32_t int_stat
Definition: sdrv_adc.h:227
uint32_t dcoc
Definition: sdrv_adc.h:222
uint32_t reserved7
Definition: sdrv_adc.h:263
uint32_t cor_err_int_stat_en
Definition: sdrv_adc.h:232
uint64_t conv_rcht
Definition: sdrv_adc.h:278
uint32_t fusa_cor_err_int_sig_en
Definition: sdrv_adc.h:272
uint32_t dbg_reg[10]
Definition: sdrv_adc.h:283
uint32_t fifo_cfg
Definition: sdrv_adc.h:260
uint32_t soft_rst
Definition: sdrv_adc.h:220
uint32_t dma_cfg
Definition: sdrv_adc.h:262
uint32_t fifo[SDRV_ADC_SUB_FIFO_CNT][16]
Definition: sdrv_adc.h:264
uint32_t rc_entry[SDRV_ADC_RC_CNT][SDRV_ADC_RC_ENTRY_CNT]
Definition: sdrv_adc.h:240
uint32_t int_stat_en
Definition: sdrv_adc.h:228
uint32_t ate_test
Definition: sdrv_adc.h:280
uint32_t cont_mode
Definition: sdrv_adc.h:251
uint32_t rcht_entry[SDRV_ADC_RCHT_ENTRY_CNT]
Definition: sdrv_adc.h:224
uint32_t fusa_unc_err_int_stat
Definition: sdrv_adc.h:274
uint32_t sch_cfg
Definition: sdrv_adc.h:245
uint32_t mnt_cont_cfg
Definition: sdrv_adc.h:259
uint32_t reserved9
Definition: sdrv_adc.h:273
uint8_t reserved10[0x460 - 0x42C]
Definition: sdrv_adc.h:277
uint32_t sch_tmo
Definition: sdrv_adc.h:243
uint32_t reserved2
Definition: sdrv_adc.h:234
uint32_t rc[SDRV_ADC_RC_CNT]
Definition: sdrv_adc.h:226
uint32_t reserved1
Definition: sdrv_adc.h:230
uint32_t cor_err_int_stat
Definition: sdrv_adc.h:231
uint32_t reserved6[2]
Definition: sdrv_adc.h:258
uint32_t cont_mode1
Definition: sdrv_adc.h:252