Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
82
sdk/include/dev/adc/hgadc_v1.h
Normal file
82
sdk/include/dev/adc/hgadc_v1.h
Normal file
@@ -0,0 +1,82 @@
|
||||
#ifndef _HGADC_V1_H
|
||||
#define _HGADC_V1_H
|
||||
#include "hal/adc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct hgadc_v1;
|
||||
|
||||
typedef struct _adc_channel_data {
|
||||
/* pointer of config function */
|
||||
int32 (*func)(struct hgadc_v1 *dev, uint32 channel, uint32 enable);
|
||||
|
||||
/* channel */
|
||||
uint16 channel;
|
||||
|
||||
/* sel for hw*/
|
||||
uint32 sel;
|
||||
uint16 sch_vdd;
|
||||
|
||||
}adc_channel_data;
|
||||
|
||||
|
||||
typedef struct _adc_channel_node {
|
||||
/* data type */
|
||||
adc_channel_data data;
|
||||
|
||||
/* for list opreation */
|
||||
struct _adc_channel_node *next;
|
||||
|
||||
/* channel amount */
|
||||
uint8 channel_amount;
|
||||
}adc_channel_node;
|
||||
|
||||
|
||||
|
||||
struct hgadc_v1 {
|
||||
struct adc_device dev;
|
||||
uint32 hw;
|
||||
adc_irq_hdl irq_hdl;
|
||||
uint32 irq_data;
|
||||
uint32 irq_num;
|
||||
os_mutex_t adc_lock;
|
||||
os_semaphore_t adc_done;
|
||||
adc_channel_node head_node;
|
||||
adc_channel_node *cur_node;
|
||||
uint32 refer_vddi;
|
||||
uint32 refer_vddi_adc_data;
|
||||
uint32 refer_tsensor;
|
||||
uint32 refer_pmu_tsensor;
|
||||
uint32 refer_adda_vref;
|
||||
uint32 ref_temp;
|
||||
int32 adkey_range;
|
||||
uint32 rf_vddi_en:1,
|
||||
opened :1,
|
||||
irq_en :1;
|
||||
};
|
||||
|
||||
struct hgadc_v1_hw;
|
||||
|
||||
void saradc_pri_channel_config(struct hgadc_v1_hw *hw, uint8 pri_chanx_en,uint8 pri_chan_sel,uint8 pri_trg_sel);
|
||||
void saradc_pri_channel_clr_pending(struct hgadc_v1_hw *hw, uint8 pri_chan_sel);
|
||||
void saradc_pri_channel_kick(struct hgadc_v1_hw *hw);
|
||||
uint16 saradc_pri_channel_get_pending(struct hgadc_v1_hw *hw, uint8 pri_chan_sel);
|
||||
void saradc_pri_channel_disable(struct hgadc_v1_hw *hw, uint8 pri_chanx_en);
|
||||
uint16 saradc_pri_channel_get_raw_data(struct hgadc_v1_hw *hw, uint8 pri_chan_sel);
|
||||
void sar_adc_sample_one_channel(uint32 channel, uint32 *raw_data);
|
||||
void saradc_channel_disable(struct hgadc_v1_hw *hw, uint8 chanx_en);
|
||||
uint16 saradc_one_channel_single_kick(struct hgadc_v1_hw *hw);
|
||||
uint16 saradc_channel_get_raw_data(struct hgadc_v1_hw *hw, uint8 chan_en);
|
||||
uint16 saradc_channel_get_pending(struct hgadc_v1_hw *hw, uint8 chan_en);
|
||||
void saradc_channel_config(struct hgadc_v1_hw *hw, uint8 chanx_en,uint8 smp_mode_sel,uint8 chan_sel,uint8 trg_sel);
|
||||
void saradc_channel_clr_pending(struct hgadc_v1_hw *hw, uint8 chan_en);
|
||||
|
||||
int32 hgadc_v1_attach(uint32 dev_id, struct hgadc_v1 *adc);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
Reference in New Issue
Block a user