mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-16 03:18:54 +00:00
v1.0.3
This commit is contained in:
@@ -28,37 +28,52 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
{
|
||||
.id = 0,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI0,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_DMA,
|
||||
.smp_period = 1,
|
||||
.mode = AIC_GPAI_MODE_PERIOD,
|
||||
.fifo_depth = 64,
|
||||
.obtain_data_mode = AIC_GPAI0_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI0_MODE,
|
||||
#ifdef AIC_GPAI0_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI0_PERIOD_TIME,
|
||||
#endif
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
.fifo_depth = 8,
|
||||
#else
|
||||
.fifo_depth = 32,
|
||||
#endif
|
||||
},
|
||||
#endif
|
||||
#ifdef AIC_USING_GPAI1
|
||||
{
|
||||
.id = 1,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI1,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.fifo_depth = 64,
|
||||
.obtain_data_mode = AIC_GPAI1_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI1_MODE,
|
||||
#ifdef AIC_GPAI1_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI1_PERIOD_TIME,
|
||||
#endif
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
.fifo_depth = 8,
|
||||
#else
|
||||
.fifo_depth = 32,
|
||||
#endif
|
||||
},
|
||||
#endif
|
||||
#ifdef AIC_USING_GPAI2
|
||||
{
|
||||
.id = 2,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI2,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.smp_period = 1,
|
||||
.mode = AIC_GPAI_MODE_PERIOD,
|
||||
.obtain_data_mode = AIC_GPAI2_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI2_MODE,
|
||||
#ifdef AIC_GPAI2_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI2_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -66,11 +81,14 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
{
|
||||
.id = 3,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI3,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI3_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI3_MODE,
|
||||
#ifdef AIC_GPAI3_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI3_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -78,11 +96,14 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
{
|
||||
.id = 4,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI4,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI4_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI4_MODE,
|
||||
#ifdef AIC_GPAI4_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI4_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -90,11 +111,14 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
{
|
||||
.id = 5,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI5,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI5_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI5_MODE,
|
||||
#ifdef AIC_GPAI5_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI5_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -102,11 +126,14 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
{
|
||||
.id = 6,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI6,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI6_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI6_MODE,
|
||||
#ifdef AIC_GPAI6_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI6_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -114,22 +141,27 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
{
|
||||
.id = 7,
|
||||
.available = 1,
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_GPAI_DRV_V20
|
||||
.dma_port_id = DMA_ID_GPAI7,
|
||||
#endif
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI7_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI7_MODE,
|
||||
#ifdef AIC_GPAI7_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI7_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
#ifdef AIC_GPAI_DRV_V11
|
||||
#ifdef AIC_USING_GPAI8
|
||||
{
|
||||
.id = 8,
|
||||
.available = 1,
|
||||
.dma_port_id = DMA_ID_GPAI8,
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI8_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI8_MODE,
|
||||
#ifdef AIC_GPAI8_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI8_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -138,8 +170,11 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
.id = 9,
|
||||
.available = 1,
|
||||
.dma_port_id = DMA_ID_GPAI9,
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI9_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI9_MODE,
|
||||
#ifdef AIC_GPAI9_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI9_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -148,8 +183,11 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
.id = 10,
|
||||
.available = 1,
|
||||
.dma_port_id = DMA_ID_GPAI10,
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI10_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI10_MODE,
|
||||
#ifdef AIC_GPAI10_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI10_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
@@ -158,12 +196,14 @@ struct aic_gpai_ch aic_gpai_chs[] = {
|
||||
.id = 11,
|
||||
.available = 1,
|
||||
.dma_port_id = DMA_ID_GPAI11,
|
||||
.obtain_data_mode = AIC_GPAI_OBTAIN_DATA_BY_CPU,
|
||||
.mode = AIC_GPAI_MODE_SINGLE,
|
||||
.obtain_data_mode = AIC_GPAI11_OBTAIN_DATA_MODE,
|
||||
.mode = AIC_GPAI11_MODE,
|
||||
#ifdef AIC_GPAI11_PERIOD_TIME
|
||||
.smp_period = AIC_GPAI11_PERIOD_TIME,
|
||||
#endif
|
||||
.fifo_depth = 8,
|
||||
},
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
static rt_err_t drv_gpai_enabled(struct rt_adc_device *dev,
|
||||
@@ -220,7 +260,18 @@ static rt_uint32_t drv_gpai_get_irq_count(struct rt_adc_device *dev,
|
||||
return chan->irq_count;
|
||||
}
|
||||
|
||||
#if defined(AIC_GPAI_DRV_V11) && defined(AIC_DMA_DRV)
|
||||
static rt_uint32_t drv_gpai_obtain_data_mode(struct rt_adc_device *dev,
|
||||
rt_uint32_t channel)
|
||||
{
|
||||
struct aic_gpai_ch *chan = hal_gpai_ch_is_valid(channel);
|
||||
|
||||
if (!chan)
|
||||
return -RT_EINVAL;
|
||||
|
||||
return chan->obtain_data_mode;
|
||||
}
|
||||
|
||||
#if defined(AIC_GPAI_DRV_V20) && defined(AIC_DMA_DRV)
|
||||
static rt_err_t drv_gpai_config_dma(struct rt_adc_device *dev, void *dma_info)
|
||||
{
|
||||
if (!dma_info)
|
||||
@@ -257,12 +308,13 @@ static const struct rt_adc_ops aic_adc_ops =
|
||||
{
|
||||
.enabled = drv_gpai_enabled,
|
||||
.convert = drv_gpai_convert,
|
||||
#if defined(AIC_GPAI_DRV_V11) && defined(AIC_DMA_DRV)
|
||||
#if defined(AIC_GPAI_DRV_V20) && defined(AIC_DMA_DRV)
|
||||
.config_dma = drv_gpai_config_dma,
|
||||
.get_dma_data = drv_gpai_get_dma_data,
|
||||
#endif
|
||||
.get_resolution = drv_gpai_resolution,
|
||||
.get_irq_count = drv_gpai_get_irq_count,
|
||||
.get_obtaining_data_mode = drv_gpai_obtain_data_mode,
|
||||
};
|
||||
|
||||
static int drv_gpai_init(void)
|
||||
|
||||
Reference in New Issue
Block a user