37 #ifndef __MHAL_ADC_H__
38 #define __MHAL_ADC_H__
40 #include "mhal_osai.h"
106 #define ADC_EPARAMETER 2
ADC channel3 bit map.
Definition: mhal_adc.h:183
adc_fifo_mode fifo_mode
ADC operation mode: FIFO or DMA mode, one shot mode use ADC_FIFO_DIRECT, periodic mode use ADC_FIFO_D...
Definition: mhal_adc.h:283
This structure defines ADC related parameters, such as ADC mode, sample times, channel map...
Definition: mhal_adc.h:249
ADC channel7 bit map.
Definition: mhal_adc.h:191
ADC channel1 bit map.
Definition: mhal_adc.h:179
ADC state machine samples 32 times.
Definition: mhal_adc.h:151
int mtk_mhal_adc_enable_clk(struct mtk_adc_controller *ctlr)
This function is used to enable ADC clock.
ADC channel0 bit map.
Definition: mhal_adc.h:177
void __iomem * base
ADC controller base address.
Definition: mhal_adc.h:324
u8 dma_channel
ADC DMA channel number.
Definition: mhal_adc.h:334
ADC state machine samples 1 time.
Definition: mhal_adc.h:141
ADC rxfull and timeout interrupt enable.
Definition: mhal_adc.h:167
ADC state machine samples 16 times.
Definition: mhal_adc.h:149
ADC periodic mode.
Definition: mhal_adc.h:135
int mtk_mhal_adc_deinit(struct mtk_adc_controller *ctlr)
This function is used to de-initialize an ADC hardware controller.
int mtk_mhal_adc_init(struct mtk_adc_controller *ctlr)
This function is used to initialize an ADC hardware controller.
adc_channel_bit_map
This enum defines ADC channel bit map.
Definition: mhal_adc.h:176
ADC state machine samples 4 times.
Definition: mhal_adc.h:145
adc_fifo_mode
This enum defines ADC operation mode: FIFO or DMA mode.
Definition: mhal_adc.h:158
adc_pmode pmode
ADC mode, one shot or periodic mode.
Definition: mhal_adc.h:250
int mtk_mhal_adc_fsm_param_set(struct mtk_adc_controller *ctlr, struct adc_fsm_param *adc_fsm_parameter)
This function is used to configure ADC controller parameters.
void(* adc_dma_callback_func)(void *user_data)
This defines the callback function prototype.
Definition: mhal_adc.h:232
ADC state machine samples 64 times.
Definition: mhal_adc.h:153
u32 sample_rate
Sample rate used in periodic mode, for example, the sampling rate can be set as 10K, ch_num * sample_rate <= 90K.
Definition: mhal_adc.h:254
ADC channel 2.
Definition: mhal_adc.h:201
ADC channel 3.
Definition: mhal_adc.h:203
ADC channel 5.
Definition: mhal_adc.h:207
adc_channel
This enum defines ADC channel number.
Definition: mhal_adc.h:196
ADC rxfull interrupt enable.
Definition: mhal_adc.h:169
u32 vfifo_len
ADC Virtual FIFO length.
Definition: mhal_adc.h:297
adc_avg_mode
This enum defines ADC finite state machine sampling times.
Definition: mhal_adc.h:140
ADC state machine samples 2 times.
Definition: mhal_adc.h:143
ADC FIFO sample.
Definition: mhal_adc.h:159
ADC state machine samples 8 times.
Definition: mhal_adc.h:147
ADC channel4 bit map.
Definition: mhal_adc.h:185
ADC channel 0.
Definition: mhal_adc.h:197
int mtk_mhal_adc_disable_clk(struct mtk_adc_controller *ctlr)
This function is used to disable ADC clock.
Interface to ADC, used to store the hardware register base address, clock, Rx done callback API...
Definition: mhal_adc.h:322
ADC DMA sample.
Definition: mhal_adc.h:161
ADC channel2 bit map.
Definition: mhal_adc.h:181
ADC channel 7.
Definition: mhal_adc.h:211
adc_fifo_ier_mode ier_mode
ADC interrupt mode, config ADC_FIFO_IER_RXFULL irq enable.
Definition: mhal_adc.h:311
ADC channel6 bit map.
Definition: mhal_adc.h:189
ADC channel5 bit map.
Definition: mhal_adc.h:187
u16 adc_processing
ADC hardware is sampling data.
Definition: mhal_adc.h:330
u16 channel_map
ADC bit map, REG_CH_MAP[7:0]=8'0000_0011, enable CH0 & CH1.
Definition: mhal_adc.h:252
struct adc_fsm_param * adc_fsm_parameter
ADC fsm related parameters.
Definition: mhal_adc.h:328
ADC one shot mode.
Definition: mhal_adc.h:133
ADC channel 4.
Definition: mhal_adc.h:205
adc_dma_callback_func rx_callback_func
RX DMA callback function.
Definition: mhal_adc.h:313
ADC timeout interrupt enable.
Definition: mhal_adc.h:171
adc_fifo_ier_mode
This enum defines ADC interrupt enable.
Definition: mhal_adc.h:166
ADC channel 1.
Definition: mhal_adc.h:199
void __iomem * cg_base
Clock gate base address.
Definition: mhal_adc.h:326
ADC max channel(invalid)
Definition: mhal_adc.h:213
dma_addr_t rx_addr
Rx DMA physical address.
Definition: mhal_adc.h:332
void * rx_callback_data
RX DMA callback data.
Definition: mhal_adc.h:315
ADC channel 6.
Definition: mhal_adc.h:209
int mtk_mhal_adc_stop(struct mtk_adc_controller *ctlr)
This function is used to stop ADC controller.
int mtk_mhal_adc_fifo_handle_rx(struct mtk_adc_controller *ctlr)
This function is used to read FIFO data from HW.
int mtk_mhal_adc_start(struct mtk_adc_controller *ctlr)
This function is used to start the predefined channels by ADC parameter configre API...
u32 rx_period_len
ADC rx period length.
Definition: mhal_adc.h:304
u32 * vfifo_addr
ADC Virtual FIFO address for periodic or one shot mode, record the data storage the SRAM address pass...
Definition: mhal_adc.h:287
adc_pmode
This enum defines ADC one shot or periodic mode.
Definition: mhal_adc.h:132