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

📄 ca0106.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 3 页
字号:
						/* Capture  (0x100<<channel_id) */						/* Playback sample rate 96000 = 0x20000 */						/* Start Playback [3:0] (one bit per channel)						 * Start Capture [11:8] (one bit per channel)						 * Playback rate [23:16] (2 bits per channel) (0=48kHz, 1=44.1kHz, 2=96kHz, 3=192Khz)						 * Playback mixer in enable [27:24] (one bit per channel)						 * Playback mixer out enable [31:28] (one bit per channel)						 *//* The Digital out jack is shared with the Center/LFE Analogue output.  * The jack has 4 poles. I will call 1 - Tip, 2 - Next to 1, 3 - Next to 2, 4 - Next to 3 * For Analogue: 1 -> Center Speaker, 2 -> Sub Woofer, 3 -> Ground, 4 -> Ground * For Digital: 1 -> Front SPDIF, 2 -> Rear SPDIF, 3 -> Center/Subwoofer SPDIF, 4 -> Ground. * Standard 4 pole Video A/V cable with RCA outputs: 1 -> White, 2 -> Yellow, 3 -> Sheild on all three, 4 -> Red. * So, from this you can see that you cannot use a Standard 4 pole Video A/V cable with the SB Audigy LS card. *//* The Front SPDIF PCM gets mixed with samples from the AC97 codec, so can only work for Stereo PCM and not AC3/DTS * The Rear SPDIF can be used for Stereo PCM and also AC3/DTS * The Center/LFE SPDIF cannot be used for AC3/DTS, but can be used for Stereo PCM. * Summary: For ALSA we use the Rear channel for SPDIF Digital AC3/DTS output *//* A standard 2 pole mono mini-jack to RCA plug can be used for SPDIF Stereo PCM output from the Front channel. * A standard 3 pole stereo mini-jack to 2 RCA plugs can be used for SPDIF AC3/DTS and Stereo PCM output utilising the Rear channel and just one of the RCA plugs.  */#define SPCS0			0x41		/* SPDIF output Channel Status 0 register. For Rear. default=0x02108004, non-audio=0x02108006	*/#define SPCS1			0x42		/* SPDIF output Channel Status 1 register. For Front */#define SPCS2			0x43		/* SPDIF output Channel Status 2 register. For Center/LFE */#define SPCS3			0x44		/* SPDIF output Channel Status 3 register. Unknown */						/* When Channel set to 0: */#define SPCS_CLKACCYMASK	0x30000000	/* Clock accuracy				*/#define SPCS_CLKACCY_1000PPM	0x00000000	/* 1000 parts per million			*/#define SPCS_CLKACCY_50PPM	0x10000000	/* 50 parts per million				*/#define SPCS_CLKACCY_VARIABLE	0x20000000	/* Variable accuracy				*/#define SPCS_SAMPLERATEMASK	0x0f000000	/* Sample rate					*/#define SPCS_SAMPLERATE_44	0x00000000	/* 44.1kHz sample rate				*/#define SPCS_SAMPLERATE_48	0x02000000	/* 48kHz sample rate				*/#define SPCS_SAMPLERATE_32	0x03000000	/* 32kHz sample rate				*/#define SPCS_CHANNELNUMMASK	0x00f00000	/* Channel number				*/#define SPCS_CHANNELNUM_UNSPEC	0x00000000	/* Unspecified channel number			*/#define SPCS_CHANNELNUM_LEFT	0x00100000	/* Left channel					*/#define SPCS_CHANNELNUM_RIGHT	0x00200000	/* Right channel				*/#define SPCS_SOURCENUMMASK	0x000f0000	/* Source number				*/#define SPCS_SOURCENUM_UNSPEC	0x00000000	/* Unspecified source number			*/#define SPCS_GENERATIONSTATUS	0x00008000	/* Originality flag (see IEC-958 spec)		*/#define SPCS_CATEGORYCODEMASK	0x00007f00	/* Category code (see IEC-958 spec)		*/#define SPCS_MODEMASK		0x000000c0	/* Mode (see IEC-958 spec)			*/#define SPCS_EMPHASISMASK	0x00000038	/* Emphasis					*/#define SPCS_EMPHASIS_NONE	0x00000000	/* No emphasis					*/#define SPCS_EMPHASIS_50_15	0x00000008	/* 50/15 usec 2 channel				*/#define SPCS_COPYRIGHT		0x00000004	/* Copyright asserted flag -- do not modify	*/#define SPCS_NOTAUDIODATA	0x00000002	/* 0 = Digital audio, 1 = not audio		*/#define SPCS_PROFESSIONAL	0x00000001	/* 0 = Consumer (IEC-958), 1 = pro (AES3-1992)	*/						/* When Channel set to 1: */#define SPCS_WORD_LENGTH_MASK	0x0000000f	/* Word Length Mask				*/#define SPCS_WORD_LENGTH_16	0x00000008	/* Word Length 16 bit				*/#define SPCS_WORD_LENGTH_17	0x00000006	/* Word Length 17 bit				*/#define SPCS_WORD_LENGTH_18	0x00000004	/* Word Length 18 bit				*/#define SPCS_WORD_LENGTH_19	0x00000002	/* Word Length 19 bit				*/#define SPCS_WORD_LENGTH_20A	0x0000000a	/* Word Length 20 bit				*/#define SPCS_WORD_LENGTH_20	0x00000009	/* Word Length 20 bit (both 0xa and 0x9 are 20 bit) */#define SPCS_WORD_LENGTH_21	0x00000007	/* Word Length 21 bit				*/#define SPCS_WORD_LENGTH_21	0x00000007	/* Word Length 21 bit				*/#define SPCS_WORD_LENGTH_22	0x00000005	/* Word Length 22 bit				*/#define SPCS_WORD_LENGTH_23	0x00000003	/* Word Length 23 bit				*/#define SPCS_WORD_LENGTH_24	0x0000000b	/* Word Length 24 bit				*/#define SPCS_ORIGINAL_SAMPLE_RATE_MASK	0x000000f0 /* Original Sample rate			*/#define SPCS_ORIGINAL_SAMPLE_RATE_NONE	0x00000000 /* Original Sample rate not indicated	*/#define SPCS_ORIGINAL_SAMPLE_RATE_16000	0x00000010 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_RES1	0x00000020 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_32000	0x00000030 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_12000	0x00000040 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_11025	0x00000050 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_8000	0x00000060 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_RES2	0x00000070 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_192000 0x00000080 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_24000	0x00000090 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_96000	0x000000a0 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_48000	0x000000b0 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_176400 0x000000c0 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_22050	0x000000d0 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_88200	0x000000e0 /* Original Sample rate	*/#define SPCS_ORIGINAL_SAMPLE_RATE_44100	0x000000f0 /* Original Sample rate	*/#define SPDIF_SELECT1		0x45		/* Enables SPDIF or Analogue outputs 0-SPDIF, 0xf00-Analogue */						/* 0x100 - Front, 0x800 - Rear, 0x200 - Center/LFE.						 * But as the jack is shared, use 0xf00.						 * The Windows2000 driver uses 0x0000000f for both digital and analog.						 * 0xf00 introduces interesting noises onto the Center/LFE.						 * If you turn the volume up, you hear computer noise,						 * e.g. mouse moving, changing between app windows etc.						 * So, I am going to set this to 0x0000000f all the time now,						 * same as the windows driver does.						 * Use register SPDIF_SELECT2(0x72) to switch between SPDIF and Analog.						 */						/* When Channel = 0:						 * Wide SPDIF format [3:0] (one bit for each channel) (0=20bit, 1=24bit)						 * Tristate SPDIF Output [11:8] (one bit for each channel) (0=Not tristate, 1=Tristate)						 * SPDIF Bypass enable [19:16] (one bit for each channel) (0=Not bypass, 1=Bypass)						 */						/* When Channel = 1:						 * SPDIF 0 User data [7:0]						 * SPDIF 1 User data [15:8]						 * SPDIF 0 User data [23:16]						 * SPDIF 0 User data [31:24]						 * User data can be sent by using the SPDIF output frame pending and SPDIF output user bit interrupts.						 */#define WATERMARK		0x46		/* Test bit to indicate cache usage level */#define SPDIF_INPUT_STATUS	0x49		/* SPDIF Input status register. Bits the same as SPCS.						 * When Channel = 0: Bits the same as SPCS channel 0.						 * When Channel = 1: Bits the same as SPCS channel 1.						 * When Channel = 2:						 * SPDIF Input User data [16:0]						 * SPDIF Input Frame count [21:16]						 */#define CAPTURE_CACHE_DATA	0x50		/* 0x50-0x5f Recorded samples. */#define CAPTURE_SOURCE          0x60            /* Capture Source 0 = MIC */#define CAPTURE_SOURCE_CHANNEL0 0xf0000000	/* Mask for selecting the Capture sources */#define CAPTURE_SOURCE_CHANNEL1 0x0f000000	/* 0 - SPDIF mixer output. */#define CAPTURE_SOURCE_CHANNEL2 0x00f00000      /* 1 - What you hear or . 2 - ?? */#define CAPTURE_SOURCE_CHANNEL3 0x000f0000	/* 3 - Mic in, Line in, TAD in, Aux in. */#define CAPTURE_SOURCE_RECORD_MAP 0x0000ffff	/* Default 0x00e4 */						/* Record Map [7:0] (2 bits per channel) 0=mapped to channel 0, 1=mapped to channel 1, 2=mapped to channel2, 3=mapped to channel3 						 * Record source select for channel 0 [18:16]						 * Record source select for channel 1 [22:20]						 * Record source select for channel 2 [26:24]						 * Record source select for channel 3 [30:28]						 * 0 - SPDIF mixer output.						 * 1 - i2s mixer output.						 * 2 - SPDIF input.						 * 3 - i2s input.						 * 4 - AC97 capture.						 * 5 - SRC output.						 */#define CAPTURE_VOLUME1         0x61            /* Capture  volume per channel 0-3 */#define CAPTURE_VOLUME2         0x62            /* Capture  volume per channel 4-7 */#define PLAYBACK_ROUTING1       0x63            /* Playback routing of channels 0-7. Effects AC3 output. Default 0x32765410 */#define ROUTING1_REAR           0x77000000      /* Channel_id 0 sends to 10, Channel_id 1 sends to 32 */#define ROUTING1_NULL           0x00770000      /* Channel_id 2 sends to 54, Channel_id 3 sends to 76 */#define ROUTING1_CENTER_LFE     0x00007700      /* 0x32765410 means, send Channel_id 0 to FRONT, Channel_id 1 to REAR */#define ROUTING1_FRONT          0x00000077	/* Channel_id 2 to CENTER_LFE, Channel_id 3 to NULL. */						/* Channel_id's handle stereo channels. Channel X is a single mono channel */						/* Host is input from the PCI bus. */						/* Host channel 0 [2:0] -> SPDIF Mixer/Router channel 0-7.						 * Host channel 1 [6:4] -> SPDIF Mixer/Router channel 0-7.						 * Host channel 2 [10:8] -> SPDIF Mixer/Router channel 0-7.						 * Host channel 3 [14:12] -> SPDIF Mixer/Router channel 0-7.						 * Host channel 4 [18:16] -> SPDIF Mixer/Router channel 0-7.						 * Host channel 5 [22:20] -> SPDIF Mixer/Router channel 0-7.						 * Host channel 6 [26:24] -> SPDIF Mixer/Router channel 0-7.						 * Host channel 7 [30:28] -> SPDIF Mixer/Router channel 0-7.						 */#define PLAYBACK_ROUTING2       0x64            /* Playback Routing . Feeding Capture channels back into Playback. Effects AC3 output. Default 0x76767676 */						/* SRC is input from the capture inputs. */						/* SRC channel 0 [2:0] -> SPDIF Mixer/Router channel 0-7.						 * SRC channel 1 [6:4] -> SPDIF Mixer/Router channel 0-7.						 * SRC channel 2 [10:8] -> SPDIF Mixer/Router channel 0-7.						 * SRC channel 3 [14:12] -> SPDIF Mixer/Router channel 0-7.						 * SRC channel 4 [18:16] -> SPDIF Mixer/Router channel 0-7.						 * SRC channel 5 [22:20] -> SPDIF Mixer/Router channel 0-7.						 * SRC channel 6 [26:24] -> SPDIF Mixer/Router channel 0-7.						 * SRC channel 7 [30:28] -> SPDIF Mixer/Router channel 0-7.						 */#define PLAYBACK_MUTE           0x65            /* Unknown. While playing 0x0, while silent 0x00fc0000 */						/* SPDIF Mixer input control:						 * Invert SRC to SPDIF Mixer [7-0] (One bit per channel)						 * Invert Host to SPDIF Mixer [15:8] (One bit per channel)						 * SRC to SPDIF Mixer disable [23:16] (One bit per channel)						 * Host to SPDIF Mixer disable [31:24] (One bit per channel)						 */#define PLAYBACK_VOLUME1        0x66            /* Playback SPDIF volume per channel. Set to the same PLAYBACK_VOLUME(0x6a) */						/* PLAYBACK_VOLUME1 must be set to 30303030 for SPDIF AC3 Playback */						/* SPDIF mixer input volume. 0=12dB, 0x30=0dB, 0xFE=-51.5dB, 0xff=Mute */						/* One register for each of the 4 stereo streams. */						/* SRC Right volume [7:0]						 * SRC Left  volume [15:8]						 * Host Right volume [23:16]						 * Host Left  volume [31:24]						 */#define CAPTURE_ROUTING1        0x67            /* Capture Routing. Default 0x32765410 */						/* Similar to register 0x63, except that the destination is the I2S mixer instead of the SPDIF mixer. I.E. Outputs to the Analog outputs instead of SPDIF. */#define CAPTURE_ROUTING2        0x68            /* Unknown Routing. Default 0x76767676 */						/* Similar to register 0x64, except that the destination is the I2S mixer instead of the SPDIF mixer. I.E. Outputs to the Analog outputs instead of SPDIF. */#define CAPTURE_MUTE            0x69            /* Unknown. While capturing 0x0, while silent 0x00fc0000 */						/* Similar to register 0x65, except that the destination is the I2S mixer instead of the SPDIF mixer. I.E. Outputs to the Analog outputs instead of SPDIF. */#define PLAYBACK_VOLUME2        0x6a            /* Playback Analog volume per channel. Does not effect AC3 output */						/* Similar to register 0x66, except that the destination is the I2S mixer instead of the SPDIF mixer. I.E. Outputs to the Analog outputs instead of SPDIF. */#define UNKNOWN6b               0x6b            /* Unknown. Readonly. Default 00400000 00400000 00400000 00400000 */#define MIDI_UART_A_DATA		0x6c            /* Midi Uart A Data */#define MIDI_UART_A_CMD		0x6d            /* Midi Uart A Command/Status */#define MIDI_UART_B_DATA		0x6e            /* Midi Uart B Data (currently unused) */#define MIDI_UART_B_CMD		0x6f            /* Midi Uart B Command/Status (currently unused) *//* unique channel identifier for midi->channel */#define CA0106_MIDI_CHAN_A		0x1#define CA0106_MIDI_CHAN_B		0x2/* from mpu401 */#define CA0106_MIDI_INPUT_AVAIL 	0x80#define CA0106_MIDI_OUTPUT_READY	0x40#define CA0106_MPU401_RESET		0xff#define CA0106_MPU401_ENTER_UART	0x3f#define CA0106_MPU401_ACK		0xfe#define SAMPLE_RATE_TRACKER_STATUS 0x70         /* Readonly. Default 00108000 00108000 00500000 00500000 */						/* Estimated sample rate [19:0] Relative to 48kHz. 0x8000 =  1.0						 * Rate Locked [20]

⌨️ 快捷键说明

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