91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 0.06M
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2024-04-22
  • 語言: C/C++
  • 標簽: linux??LIN??方案??10??驅動??

資源簡介

支持4路矩陣mic,有可并聯兩個ac108實現8路矩陣mic

資源截圖

代碼片段和文件信息

/*
?*?ac108.c??--??ac108?ALSA?Soc?Audio?driver
?*
?*?Version:?3.0
?*
?*?Author:?panjunwen
?*
?*?This?program?is?free?software;?you?can?redistribute?it?and/or?modify
?*?it?under?the?terms?of?the?GNU?General?Public?License?version?2?as
?*?published?by?the?Free?Software?Foundation.
?*
?*/

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?

#include?“ac108.h“


#define?AC108_DEBUG_EN 1

#if?AC108_DEBUG_EN
#define?AC108_DEBUG(...) printk(__VA_ARGS__)
#else
#define?AC108_DEBUG(...)
#endif

#define?USE_CONFIG?1

#if?USE_CONFIG
static?int?power_gpio1?=?0;
static?int?power_gpio2?=?0;
static?int?ac108_rst_gpio?=?0;
#else
#define?AC108_POWER_GPIO1 GPIOE(0)
#define?AC108_POWER_GPIO2 GPIOL(11)
#define?AC108_RST_GPIO GPIOE(1)
#endif




//test?config
#define?AC108_DAPM_TEST_EN 1
#define?AC108_CODEC_RW_TEST_EN 0
#define?AC108_ADC_PATTERN_SEL ADC_PTN_NORMAL //0:ADC?normal??1:0x5A5A5A??2:0x123456??3:0x000000??4~7:I2S_RX_DATA??other:reserved


//AC108?config
#define?AC108_CHANNELS_MAX 4 //range[1?16]
#define?AC108_SLOT_WIDTH 32 //16bit?or?32bit?slot?width?other?value?will?be?reserved
#define?AC108_ENCODING_EN 1 //TX?Encoding?mode?enable
#define?AC108_ENCODING_CH_NUMS? 4 //TX?Encoding?channel?numbers?must?be?dual?range[1?16]
#define?AC108_PGA_GAIN ADC_PGA_GAIN_5dB //0dB~30dB?and?-6dB?except?1~2dB
#define?AC108_LRCK_PERIOD ((AC108_SLOT_WIDTH*(AC108_ENCODING_EN???2?:?AC108_CHANNELS_MAX))/2) //range[1?1024]?default?PCM?mode?I2S/LJ/RJ?mode?shall?divide?by?2

#define?AC108_SDO2_EN 0 //AC108?SDO2/TX2?Enable?(SDO1?has?be?enabled?default)
#define?AC108_DMIC_EN 0 //0:ADC ?1:DMIC
#define?AC108_IDLE_RESET_EN 0 //reset?AC108?when?in?idle?time
#define?AC108_POWERON_RESET_EN 1 //AC108?poweron?soft?reset?enable
#define?AC108_MATCH_DTS_EN 0 //AC108?match?method?select:?0:?i2c_detect?1:devices?tree

#define?AC108_REGULATOR_NAME “voltage_enable“
#define?AC108_RATES? (SNDRV_PCM_RATE_8000_96000?|?SNDRV_PCM_RATE_KNOT)
#define?AC108_FORMATS (SNDRV_PCM_FMTBIT_S16_LE?|?SNDRV_PCM_FMTBIT_S20_3LE?|?SNDRV_PCM_FMTBIT_S24_LE?|?SNDRV_PCM_FMTBIT_S32_LE)


struct?i2c_client?*i2c_clt[(AC108_CHANNELS_MAX+3)/4];
int regulator_en;

struct?voltage_supply?{
struct?regulator?*vcc3v3;
};

struct?ac108_priv?{
struct?i2c_client?*i2c;
struct?snd_soc_codec?*codec;
struct?voltage_supply?vol_supply;
};

static?const?struct?regmap_config?ac108_regmap_config?

評論

共有 條評論