亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? omap2-audio-twl4030.h

?? omap3 linux 2.6 用nocc去除了冗余代碼
?? H
?? 第 1 頁 / 共 4 頁
字號:
	.period_bytes_min = 32,	.period_bytes_max = 8 * 1024,	.periods_min = 16,	.periods_max = 255,	.fifo_size = 0,};static struct snd_pcm_hardware twl4030_pcm_hardware_capture = {	.info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER |		 SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID |		 SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME),	.formats = (SNDRV_PCM_FMTBIT_S16_LE),	.rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |		  SNDRV_PCM_RATE_16000 |		  SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_32000 |		  SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 |		  SNDRV_PCM_RATE_KNOT),	.rate_min = 8000,	.rate_max = 48000,	.channels_min = 1,	.channels_max = 2,	.buffer_bytes_max = 128 * 1024,	.period_bytes_min = 32,	.period_bytes_max = 8 * 1024,	.periods_min = 16,	.periods_max = 255,	.fifo_size = 0,};static int mixer_dev_id;struct twl_local_info {	/* Global volume control */	u16 play_volume; /* Store the play volume */	u16 rec_volume; /* Store the record volume */	/* Device specific volume control */	u16 hset; /* Store the hset volume */	u16 classd; /* Store the classd volume */	u16 ear; /* Store the ear volume */	u16 line; /* Store the line volume */	u16 mic; /* Store the mic volume */	u16 aux; /* Store aux/FM volume */	u16 sidetone; /* Store sidetone volume */	u16 carkit_out; /* Store carkit output gain */	u16 carkit_in; /* Store carkit input gain */	/* Source Management */	int recsrc; /* current active record sources */	int outsrc; /* current active playback sources */	int mod_cnt;/* how many usages */};static struct twl_local_info twl4030_local = {	.play_volume =  WRITE_LR_VOLUME(DEFAULT_OUTPUT_VOLUME),	.rec_volume = WRITE_LR_VOLUME(DEFAULT_INPUT_VOLUME),	.line = WRITE_LR_VOLUME(DEFAULT_INPUT_LINE_VOLUME),	.mic = WRITE_LR_VOLUME(DEFAULT_INPUT_MIC_VOLUME),	.aux = WRITE_LR_VOLUME(DEFAULT_INPUT_LINE_VOLUME),	.hset = WRITE_LR_VOLUME(DEFAULT_OUTPUT_HSET_VOLUME),	.classd = WRITE_LR_VOLUME(DEFAULT_OUTPUT_SPK_VOLUME),	.ear = WRITE_LEFT_VOLUME(DEFAULT_OUTPUT_EAR_VOLUME),	.sidetone = WRITE_LEFT_VOLUME(DEFAULT_SIDETONE_VOLUME),	.carkit_out = WRITE_LR_VOLUME(DEFAULT_OUTPUT_CARKIT_VOLUME),	.carkit_in = WRITE_LEFT_VOLUME(DEFAULT_INPUT_CARKIT_VOLUME),	.recsrc = DEFAULT_INPUT_LNX_DEVICE,	.outsrc = DEFAULT_OUTPUT_LNX_DEVICE,	.mod_cnt = 0,};/* Configured count - * Codec is configured when this reaches 1 * Codec is shutdown when this reaches 0 */static char twl4030_configured = 0;struct mcbsp_config {	u8 mcbsp_clk_src;	/* source it from prcm? */	u8 srg_clk_src;		/* clks/fclk/clkr/clkx */	u8 srg_clk_sync;	/* free_running or just running */	u8 srg_clk_pol;		/* polarity of srg clk */	u8 tx_clk_pol;          /* TX clock polarity */	u8 tx_clk_src;		/* internal/external (master based) */	u8 rx_clk_pol;          /* TX clock polarity */	u8 rx_clk_src;		/* internal/external (master based) */	u8 fs_clk_pol;		/* Frame sync polarity */	u8 tx_polarity;		/* TX polarity */	u8 rx_polarity;		/* RX polarity */	u8 rx_ip_clk;           /* Rx input clock */	u8 tx_ip_clk;           /* Tx input clock */	omap2_mcbsp_transfer_params tx_params; /* Transmit parameters */	omap2_mcbsp_transfer_params rx_params; /* Recieve parameters */};/* Default volume */static int current_input = DEFAULT_INPUT_TWL_DEVICE;static int current_output = DEFAULT_OUTPUT_TWL_DEVICE;/* Switch flags */u8 handsfree_en = 1;u8 hsmic_en     = 1;u8 main_mic_en  = 1;u8 sub_mic_en   = 1;/* To Store the default sample rate */static long audio_samplerate = AUDIO_RATE_DEFAULT;struct sample_rate_info_t {	u16 rate;	u8 apll;};/* Hint - optimization wise move the most used values up the list */static const struct sample_rate_info_t valid_sample_rates[] = {	{.rate = 8000,.apll = AUDIO_MODE_RATE_08_000},	{.rate = 16000,.apll = AUDIO_MODE_RATE_16_000},	{.rate = 44100,.apll = AUDIO_MODE_RATE_44_100},	{.rate = 11025,.apll = AUDIO_MODE_RATE_11_025},	{.rate = 12000,.apll = AUDIO_MODE_RATE_12_000},	{.rate = 22050,.apll = AUDIO_MODE_RATE_22_050},	{.rate = 24000,.apll = AUDIO_MODE_RATE_24_000},	{.rate = 32000,.apll = AUDIO_MODE_RATE_32_000},	{.rate = 48000,.apll = AUDIO_MODE_RATE_48_000},	/* Dont support 96Khz -requires HSCLK >26Mhz	   { .rate = 96000, .apll = AUDIO_MODE_RATE_96_000 }, */};#define NUMBER_OF_RATES_SUPPORTED (sizeof (valid_sample_rates)/\				   sizeof (struct sample_rate_info_t))/* Give time for these to settle down * one frame (worst case is at 8000hz) = 125 uSec * wait two frame duration each - giving dma a chance to push data thru also * =125*4= 500uSec */#define TWL4030_MCBSP2_3430SDP_PRESCALE_TIME 500/* if we would like to listen to mono sound as stereo on stereo devices */#undef MONO_MODE_SOUNDS_STEREO/* How long to wait for stream to remain active?in Jiffies */#define TIMEOUT_WAIT_FOR_ACTIVE       20/* T2 GPIO for External Mute control - required for pop noise */#define T2_AUD_EXT_MUT_GPIO 6#define GPIO_DATA_DIR  0x03#define GPIO_CLR  0x09#define GPIO_SET  0x0Cstatic u8 current_bitspersample = AUDIO_SAMPLE_DATA_WIDTH_16;static u8 current_stereomode = STEREO_MODE;/* To handle transfer errors.. */static int tx_err, rx_err;/******************** MODULES SPECIFIC FUNCTION PROTOTYPES ********************/static inline int audio_twl4030_write(u8 address, u8 data);static inline int audio_twl4030_read(u8 address);static inline int twl4030_codec_on(void);static inline int twl4030_codec_off(void);static int twl4030_enable_output(void);static int twl4030_disable_output(void);static int twl4030_enable_input(void);static int twl4030_disable_input(void);static int twl4030_disable_input(void);static int twl4030_select_source(int flag, int val);static int twl4030_setvolume(int flag, u8 gain_l, u8 gain_r);static int twl4030_codec_conf_data_path(void);static int twl4030_conf_data_interface(void);static int twl4030_set_samplerate(long sample_rate);static int twl4030_stereomode_set(int mode, int dsp);static void twl4030_unconfigure(void);static int twl4030_configure(void);static void twl4030_mcbsp_dma_cb(u16 ch_status, void *arg);static int omap_twl4030_transfer(int mode, void *buffer_phy,u32 size, void *arg);static int omap_twl4030_transfer_stop(int mode);static int omap_twl4030_transfer_posn(int mode);static int omap_twl4030_transfer_init(int mode);static int omap_twl4030_initialize(void);static void omap_twl4030_shutdown(void);static int omap_twl4030_sidle(u32 level);static int omap_twl4030_probe(void);static int omap_twl4030_mixer_init(struct snd_card *card);static int omap_twl4030_mixer_shutdown(struct snd_card *card);/******************** DATA STRUCTURES USING FUNCTION POINTERS *****************//* * The TWL4030 will always use stereo I2S protocol to communicate * * McBSP Configuration Required: * Stereo 16 bit:(default) * ------------- * Single phase, FSYNC=Rising, words=1 DMA->Normal,32bit DXR * * Stereo 24 bit: * ------------- * Single phase, FSYNC=Falling, words=2 DMA->Normal,32bit DXR * * Mono 16 bit: * ------------ * Single phase, FSYNC=Rising, words=1 DMA->Normal,16 bit DXR+2 * OR * Single phase, FSYNC=Falling, words=1 DMA->Normal,32bit DXR * * Mono 24 bit: * ------------ * Single phase, FSYNC=Falling, words=2 DMA-> ei=1,fi=-1,32bit DXR * */static struct mcbsp_config plat_mcbsp_config = {	.mcbsp_clk_src = OMAP2_MCBSP_FCLKSRC_PRCM,	/* Driven by twl4030 */	.srg_clk_src = OMAP2_MCBSP_SRGCLKSRC_CLKX,	.tx_clk_src = OMAP2_MCBSP_TXFSYNC_EXTERNAL,	.rx_clk_src = OMAP2_MCBSP_RXFSYNC_EXTERNAL,	.rx_ip_clk = OMAP2_MCBSP_CLKRXSRC_EXTERNAL,	.tx_ip_clk = OMAP2_MCBSP_CLKTXSRC_EXTERNAL,	.srg_clk_sync = OMAP2_MCBSP_SRG_FREERUNNING,	.tx_polarity = OMAP2_MCBSP_FS_ACTIVE_LOW,	.rx_polarity = OMAP2_MCBSP_FS_ACTIVE_LOW,	.srg_clk_pol = OMAP2_MCBSP_CLKX_POLARITY_FALLING,	.tx_clk_pol = OMAP2_MCBSP_CLKX_POLARITY_RISING,	.rx_clk_pol = OMAP2_MCBSP_CLKR_POLARITY_RISING,	/* we will start with right channel and transmit the MSB of DXR */	.fs_clk_pol = OMAP2_MCBSP_FS_ACTIVE_HIGH,	/* I2S */	.tx_params = {			       .data_type = OMAP2_MCBSP_WORDLEN_NONE,			       .skip_alt = OMAP2_MCBSP_SKIP_NONE,			       .auto_reset = OMAP2_MCBSP_AUTO_XRST,			       .phase = OMAP2_MCBSP_FRAME_DUALPHASE,			       .data_delay = OMAP2_MCBSP_DATADELAY1,	/* 1 bit delay expected */			       .reverse_compand = OMAP2_MCBSP_MSBFIRST,	/* Set msb first */			       .word_length1 = OMAP2_MCBSP_WORDLEN_16,	/* RWDLEN1 */			       .word_length2 = OMAP2_MCBSP_WORDLEN_16,	/* RWDLEN2 -dnt care*/			       .frame_length1 = OMAP2_MCBSP_FRAMELEN_1,	/* RFRLEN1 */			       .frame_length2 = OMAP2_MCBSP_FRAMELEN_1,	/* RFRLEN2 -dnt care*/			       .justification = OMAP2_MCBSP_RJUST_ZEROMSB,	/* RJUST and fill 0s */			       .dxena = 0,			       .dxendly = 0,			       .callback = twl4030_mcbsp_dma_cb,			       },	.rx_params = {			       .data_type = OMAP2_MCBSP_WORDLEN_NONE,			       .skip_alt = OMAP2_MCBSP_SKIP_NONE,			       .auto_reset = OMAP2_MCBSP_AUTO_RRST,			       .phase = OMAP2_MCBSP_FRAME_DUALPHASE,			       .data_delay = OMAP2_MCBSP_DATADELAY1,	/* 1 bit delay expected */			       .reverse_compand = OMAP2_MCBSP_MSBFIRST,	/* Set msb first */			       .word_length1 = OMAP2_MCBSP_WORDLEN_16,	/* RWDLEN1 */			       .word_length2 = OMAP2_MCBSP_WORDLEN_16,	/* RWDLEN2 -dntcare*/			       .frame_length1 = OMAP2_MCBSP_FRAMELEN_1,	/* RFRLEN1 */			       .frame_length2 = OMAP2_MCBSP_FRAMELEN_1,	/* RFRLEN2 */			       .justification = OMAP2_MCBSP_RJUST_ZEROMSB,	/* RJUST and fill 0s */			       .dxena = 0,			       .dxendly = 0,			       .callback = twl4030_mcbsp_dma_cb,			       },};static int twl4030_default_samplerate(void){	return AUDIO_RATE_DEFAULT;}/* To store characteristic info regarding the codec for the audio driver */static struct omap_alsa_codec omap_twl_codec = {	.name = CODEC_NAME,	.pcm_hw_constraint_list = &twl4030_pcm_hw_constraint_list,	.pcm_hardware_playback = &twl4030_pcm_hardware_playback,	.pcm_hardware_capture = &twl4030_pcm_hardware_capture,	.codec_probe = omap_twl4030_probe,	.codec_init = omap_twl4030_initialize,	.codec_shutdown = omap_twl4030_shutdown,	.codec_sidle = omap_twl4030_sidle,	.codec_set_samplerate = twl4030_set_samplerate,	.codec_set_stereomode = twl4030_stereomode_set,	.codec_default_samplerate = twl4030_default_samplerate,	.codec_transfer_init = omap_twl4030_transfer_init,	.codec_transfer_start = omap_twl4030_transfer,	.codec_transfer_stop = omap_twl4030_transfer_stop,	.codec_transfer_posn = omap_twl4030_transfer_posn,	.mixer_init = omap_twl4030_mixer_init,	.mixer_shutdown = omap_twl4030_mixer_shutdown,};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆成人精品| 国产成人亚洲综合a∨婷婷图片| 国产精品天天摸av网| 精品国精品自拍自在线| 日韩欧美亚洲国产另类| 日韩久久久精品| 日韩欧美在线不卡| 精品国产一区二区国模嫣然| 欧美一区二区黄| 日韩精品影音先锋| 久久久99久久| 国产精品久久久久一区| 亚洲色图另类专区| 一区二区三区日韩精品| 亚洲国产毛片aaaaa无费看 | 日韩美女视频在线| 欧美sm极限捆绑bd| 国产精品无码永久免费888| 中文字幕永久在线不卡| 亚洲成a人片在线观看中文| 爽好多水快深点欧美视频| 麻豆国产精品官网| 高清beeg欧美| 色八戒一区二区三区| 3atv一区二区三区| 国产欧美精品日韩区二区麻豆天美| 国产精品视频一区二区三区不卡| 亚洲精品国产无天堂网2021| 日韩国产欧美三级| 国产91丝袜在线播放九色| 在线这里只有精品| 精品对白一区国产伦| 综合久久国产九一剧情麻豆| 午夜精品久久久久久久久| 国产一区二区在线影院| 在线观看日韩毛片| 久久久久久麻豆| 亚洲福利国产精品| 成人免费看片app下载| 欧美巨大另类极品videosbest | 国产精品免费视频观看| 夜夜嗨av一区二区三区| 国内成人精品2018免费看| 91网页版在线| 久久久久久久网| 亚洲一区二区综合| 风间由美一区二区三区在线观看| 欧洲一区二区av| 国产片一区二区三区| 婷婷丁香激情综合| 99久久er热在这里只有精品66| 欧美精品在线视频| 亚洲蜜桃精久久久久久久| 国产麻豆精品一区二区| 7777精品伊人久久久大香线蕉完整版 | 91成人看片片| 国产精品乱人伦中文| 免费观看久久久4p| 欧美乱妇20p| 亚洲午夜在线观看视频在线| 成人黄色免费短视频| 日韩你懂的在线播放| 午夜a成v人精品| 色久优优欧美色久优优| 中文字幕亚洲成人| 成人理论电影网| 国产欧美久久久精品影院| 黄色精品一二区| 欧美sm极限捆绑bd| 麻豆精品在线播放| 精品欧美一区二区在线观看| 日韩在线卡一卡二| 欧美日韩精品一区二区三区四区| 亚洲伦理在线免费看| 91麻豆精品视频| 综合久久久久综合| 色就色 综合激情| 亚洲国产综合91精品麻豆| 91精品福利在线| 亚洲在线免费播放| 欧美日韩在线直播| 日韩成人午夜精品| 欧美tickle裸体挠脚心vk| 国产一区二区精品久久| 国产三级精品视频| 91视频91自| 亚洲伊人色欲综合网| 日本韩国欧美三级| 天天影视网天天综合色在线播放| 欧美日韩一区二区三区免费看| 婷婷六月综合亚洲| 久久午夜电影网| 成人丝袜18视频在线观看| 国产精品久久久久三级| 一本到不卡免费一区二区| 亚洲女同女同女同女同女同69| 在线免费精品视频| 麻豆精品一区二区av白丝在线| 欧美精品一区二区三区蜜桃 | 亚洲高清视频中文字幕| 欧美夫妻性生活| 国产黄人亚洲片| 一区二区三区自拍| 日韩一区二区在线免费观看| 国产麻豆精品在线| 亚洲一二三区在线观看| 亚洲精品在线免费播放| 成人av影院在线| 视频一区欧美日韩| 国产精品美女www爽爽爽| 在线看国产日韩| 黑人巨大精品欧美黑白配亚洲| 亚洲欧洲日韩av| 日韩视频永久免费| 99久久伊人精品| 日本sm残虐另类| 专区另类欧美日韩| 精品国产露脸精彩对白| 在线观看免费成人| 国产精品911| 免费在线观看成人| 亚洲精品精品亚洲| 国产亚洲婷婷免费| 69久久99精品久久久久婷婷| 高清av一区二区| 久久99精品久久久久| 一区二区在线观看视频| 国产欧美日韩卡一| 精品日产卡一卡二卡麻豆| 欧美亚洲一区三区| 成人一级片网址| 国产在线不卡一卡二卡三卡四卡| 亚洲一区二区三区国产| 国产精品水嫩水嫩| 国产女主播一区| 精品国产91久久久久久久妲己| 欧美综合色免费| 不卡一区在线观看| 国产精品99久久久久久宅男| 午夜国产精品一区| 亚洲永久免费av| 亚洲视频你懂的| 亚洲人成影院在线观看| 国产精品久久久久久久久免费樱桃| 精品国产乱码久久久久久图片| 欧美精品一区二区三区在线播放 | 91在线视频播放| 国产成人av影院| 国产成人午夜精品影院观看视频| 免费观看在线色综合| 日韩影院免费视频| 青椒成人免费视频| 免费观看日韩电影| 久久激情五月激情| 国产最新精品免费| 国产99一区视频免费| 国产99久久久久久免费看农村| 国产精品18久久久久久久久| 国产伦理精品不卡| 国产传媒欧美日韩成人| 国产乱码精品一区二区三区av | 午夜精品一区在线观看| 亚洲va韩国va欧美va| 午夜精品一区二区三区三上悠亚| 亚洲国产成人高清精品| 亚洲va国产va欧美va观看| 日韩精品国产精品| 国产在线视频精品一区| 国产成人亚洲综合a∨婷婷图片 | 日韩一区二区不卡| 久久久久久电影| 亚洲色图视频网| 日本中文字幕一区| 国产高清在线精品| 色婷婷一区二区三区四区| 欧美色欧美亚洲另类二区| 日韩精品一区二区三区视频| 久久久久免费观看| 亚洲另类在线视频| 免费成人小视频| 成人综合激情网| 欧美天天综合网| 日韩精品一区国产麻豆| 亚洲欧洲一区二区三区| 视频在线在亚洲| 国产成人精品1024| 欧美三级视频在线观看 | 国产大陆a不卡| 欧美日精品一区视频| 精品国产sm最大网站免费看| 中文字幕亚洲欧美在线不卡| 日韩精品一级二级| zzijzzij亚洲日本少妇熟睡| 欧美一区国产二区| 亚洲欧洲av在线| 久久99久久精品| 在线亚洲免费视频| 国产欧美一区二区在线观看| 亚洲成a人v欧美综合天堂| 成人av影院在线|