⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad1816a.h

📁 linux 内核源代码
💻 H
字号:
#ifndef __SOUND_AD1816A_H#define __SOUND_AD1816A_H/*    ad1816a.h - definitions for ADI SoundPort AD1816A chip.    Copyright (C) 1999-2000 by Massimo Piccioni <dafastidio@libero.it>    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA*/#include "control.h"#include "pcm.h"#include "timer.h"#define AD1816A_REG(r)			(chip->port + r)#define AD1816A_CHIP_STATUS		0x00#define AD1816A_INDIR_ADDR		0x00#define AD1816A_INTERRUPT_STATUS	0x01#define AD1816A_INDIR_DATA_LOW		0x02#define AD1816A_INDIR_DATA_HIGH		0x03#define AD1816A_PIO_DEBUG		0x04#define AD1816A_PIO_STATUS		0x05#define AD1816A_PIO_DATA		0x06#define AD1816A_RESERVED_7		0x07#define AD1816A_PLAYBACK_CONFIG		0x08#define AD1816A_CAPTURE_CONFIG		0x09#define AD1816A_RESERVED_10		0x0a#define AD1816A_RESERVED_11		0x0b#define AD1816A_JOYSTICK_RAW_DATA	0x0c#define AD1816A_JOYSTICK_CTRL		0x0d#define AD1816A_JOY_POS_DATA_LOW	0x0e#define AD1816A_JOY_POS_DATA_HIGH	0x0f#define AD1816A_LOW_BYTE_TMP		0x00#define AD1816A_INTERRUPT_ENABLE	0x01#define AD1816A_EXTERNAL_CTRL		0x01#define AD1816A_PLAYBACK_SAMPLE_RATE	0x02#define AD1816A_CAPTURE_SAMPLE_RATE	0x03#define AD1816A_VOICE_ATT		0x04#define AD1816A_FM_ATT			0x05#define AD1816A_I2S_1_ATT		0x06#define AD1816A_I2S_0_ATT		0x07#define AD1816A_PLAYBACK_BASE_COUNT	0x08#define AD1816A_PLAYBACK_CURR_COUNT	0x09#define AD1816A_CAPTURE_BASE_COUNT	0x0a#define AD1816A_CAPTURE_CURR_COUNT	0x0b#define AD1816A_TIMER_BASE_COUNT	0x0c#define AD1816A_TIMER_CURR_COUNT	0x0d#define AD1816A_MASTER_ATT		0x0e#define AD1816A_CD_GAIN_ATT		0x0f#define AD1816A_SYNTH_GAIN_ATT		0x10#define AD1816A_VID_GAIN_ATT		0x11#define AD1816A_LINE_GAIN_ATT		0x12#define AD1816A_MIC_GAIN_ATT		0x13#define AD1816A_PHONE_IN_GAIN_ATT	0x13#define AD1816A_ADC_SOURCE_SEL		0x14#define AD1816A_ADC_PGA			0x14#define AD1816A_CHIP_CONFIG		0x20#define AD1816A_DSP_CONFIG		0x21#define AD1816A_FM_SAMPLE_RATE		0x22#define AD1816A_I2S_1_SAMPLE_RATE	0x23#define AD1816A_I2S_0_SAMPLE_RATE	0x24#define AD1816A_RESERVED_37		0x25#define AD1816A_PROGRAM_CLOCK_RATE	0x26#define AD1816A_3D_PHAT_CTRL		0x27#define AD1816A_PHONE_OUT_ATT		0x27#define AD1816A_RESERVED_40		0x28#define AD1816A_HW_VOL_BUT		0x29#define AD1816A_DSP_MAILBOX_0		0x2a#define AD1816A_DSP_MAILBOX_1		0x2b#define AD1816A_POWERDOWN_CTRL		0x2c#define AD1816A_TIMER_CTRL		0x2c#define AD1816A_VERSION_ID		0x2d#define AD1816A_RESERVED_46		0x2e#define AD1816A_READY			0x80#define AD1816A_PLAYBACK_IRQ_PENDING	0x80#define AD1816A_CAPTURE_IRQ_PENDING	0x40#define AD1816A_TIMER_IRQ_PENDING	0x20#define AD1816A_PLAYBACK_ENABLE		0x01#define AD1816A_PLAYBACK_PIO		0x02#define AD1816A_CAPTURE_ENABLE		0x01#define AD1816A_CAPTURE_PIO		0x02#define AD1816A_FMT_LINEAR_8		0x00#define AD1816A_FMT_ULAW_8		0x08#define AD1816A_FMT_LINEAR_16_LIT	0x10#define AD1816A_FMT_ALAW_8		0x18#define AD1816A_FMT_LINEAR_16_BIG	0x30#define AD1816A_FMT_ALL			0x38#define AD1816A_FMT_STEREO		0x04#define AD1816A_PLAYBACK_IRQ_ENABLE	0x8000#define AD1816A_CAPTURE_IRQ_ENABLE	0x4000#define AD1816A_TIMER_IRQ_ENABLE	0x2000#define AD1816A_TIMER_ENABLE		0x0080#define AD1816A_SRC_LINE		0x00#define AD1816A_SRC_OUT			0x10#define AD1816A_SRC_CD			0x20#define AD1816A_SRC_SYNTH		0x30#define AD1816A_SRC_VIDEO		0x40#define AD1816A_SRC_MIC			0x50#define AD1816A_SRC_MONO		0x50#define AD1816A_SRC_PHONE_IN		0x60#define AD1816A_SRC_MASK		0x70#define AD1816A_CAPTURE_NOT_EQUAL	0x1000#define AD1816A_WSS_ENABLE		0x8000struct snd_ad1816a {	unsigned long port;	struct resource *res_port;	int irq;	int dma1;	int dma2;	unsigned short hardware;	unsigned short version;	spinlock_t lock;	unsigned short mode;	unsigned int clock_freq;	struct snd_card *card;	struct snd_pcm *pcm;	struct snd_pcm_substream *playback_substream;	struct snd_pcm_substream *capture_substream;	unsigned int p_dma_size;	unsigned int c_dma_size;	struct snd_timer *timer;};#define AD1816A_HW_AUTO		0#define AD1816A_HW_AD1816A	1#define AD1816A_HW_AD1815	2#define AD1816A_HW_AD18MAX10	3#define AD1816A_MODE_PLAYBACK	0x01#define AD1816A_MODE_CAPTURE	0x02#define AD1816A_MODE_TIMER	0x04#define AD1816A_MODE_OPEN	(AD1816A_MODE_PLAYBACK |	\				AD1816A_MODE_CAPTURE |		\				AD1816A_MODE_TIMER)extern int snd_ad1816a_create(struct snd_card *card, unsigned long port,			      int irq, int dma1, int dma2,			      struct snd_ad1816a **chip);extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm);extern int snd_ad1816a_mixer(struct snd_ad1816a *chip);#endif	/* __SOUND_AD1816A_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -