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

📄 ac97regs.h

📁 EP931X系列的WinCE声卡驱动源代码
💻 H
字号:
//**********************************************************************
//                                                                      
// Filename: ac97regs.h
//                                                                      
// Description: Definitions for the ac97 codec registers.
//                                                                      
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
// Copyright(c) Cirrus Logic Corporation 2001, All Rights Reserved                       
//                                                                      
//**********************************************************************
#ifndef _H_AC97REGS
#define _H_AC97REGS


//****************************************************************************
//
// The following define the offsets of the AC97 shadow registers, which appear
// as a virtual extension to the base address register zero memory range.
//
//****************************************************************************
#define AC97_REG_OFFSET_MASK                0x0000007EL
#define AC97_CODEC_NUMBER_MASK              0x00003000L

#define AC97_RESET                          0x0000000L
#define AC97_MASTER_VOLUME                  0x0000002L
#define AC97_HEADPHONE_VOLUME               0x0000004L
#define AC97_MASTER_VOLUME_MONO             0x0000006L
#define AC97_MASTER_TONE                    0x0000008L
#define AC97_PC_BEEP_VOLUME                 0x000000AL
#define AC97_PHONE_VOLUME                   0x000000CL
#define AC97_MIC_VOLUME                     0x000000EL
#define AC97_LINEIN_VOLUME                  0x0000010L
#define AC97_CD_VOLUME                      0x0000012L
#define AC97_VIDEO_VOLUME                   0x0000014L
#define AC97_AUX_VOLUME                     0x0000016L
#define AC97_PCMOUT_VOLUME                  0x0000018L
#define AC97_RECORD_SELECT                  0x000001AL
#define AC97_RECORD_GAIN                    0x000001CL
#define AC97_RECORD_GAIN_MIC                0x000001EL
#define AC97_GENERAL_PURPOSE                0x0000020L
#define AC97_3D_CONTROL                     0x0000022L
#define AC97_MODEM_RATE                     0x0000024L
#define AC97_POWERDOWN                      0x0000026L
#define AC97_EXT_AUDIO_ID                   0x0000028L
#define AC97_EXT_AUDIO_POWER                0x000002AL
#define AC97_PCM_FRONT_DAC_RATE             0x000002CL
#define AC97_PCM_SURR_DAC_RATE              0x000002EL
#define AC97_PCM_LFE_DAC_RATE               0x0000030L
#define AC97_PCM_LR_ADC_RATE                0x0000032L
#define AC97_MIC_ADC_RATE                   0x0000034L
#define AC97_6CH_VOL_C_LFE                  0x0000036L
#define AC97_6CH_VOL_SURROUND               0x0000038L
#define AC97_RESERVED_3A                    0x000003AL
#define AC97_EXT_MODEM_ID                   0x000003CL
#define AC97_EXT_MODEM_POWER                0x000003EL
#define AC97_LINE1_CODEC_RATE               0x0000040L
#define AC97_LINE2_CODEC_RATE               0x0000042L
#define AC97_HANDSET_CODEC_RATE             0x0000044L
#define AC97_LINE1_CODEC_LEVEL              0x0000046L
#define AC97_LINE2_CODEC_LEVEL              0x0000048L
#define AC97_HANDSET_CODEC_LEVEL            0x000004AL
#define AC97_GPIO_PIN_CONFIG                0x000004CL
#define AC97_GPIO_PIN_TYPE                  0x000004EL
#define AC97_GPIO_PIN_STICKY                0x0000050L
#define AC97_GPIO_PIN_WAKEUP                0x0000052L
#define AC97_GPIO_PIN_STATUS                0x0000054L
#define AC97_MISC_MODEM_AFE_STAT            0x0000056L
#define AC97_RESERVED_58                    0x0000058L
#define AC97_CRYSTAL_REV_N_FAB_ID           0x000005AL
#define AC97_TEST_AND_MISC_CTRL             0x000005CL
#define AC97_AC_MODE                        0x000005EL
#define AC97_MISC_CRYSTAL_CONTROL           0x0000060L
#define AC97_LINE1_HYPRID_CTRL              0x0000062L
#define AC97_VENDOR_RESERVED_64             0x0000064L
#define AC97_VENDOR_RESERVED_66             0x0000066L
#define AC97_SPDIF_CONTROL                  0x0000068L
#define AC97_VENDOR_RESERVED_6A             0x000006AL
#define AC97_VENDOR_RESERVED_6C             0x000006CL
#define AC97_VENDOR_RESERVED_6E             0x000006EL
#define AC97_VENDOR_RESERVED_70             0x0000070L
#define AC97_VENDOR_RESERVED_72             0x0000072L
#define AC97_VENDOR_RESERVED_74             0x0000074L
#define AC97_CAL_ADDRESS                    0x0000076L
#define AC97_CAL_DATA                       0x0000078L
#define AC97_VENDOR_RESERVED_7A             0x000007AL
#define AC97_VENDOR_ID1                     0x000007CL
#define AC97_VENDOR_ID2                     0x000007EL



// Known AC97 codec vendors
#define AC97_VENDOR_CRYSTAL      0x43525900  // Crystal Semicondutor "CRY"
//#define AC97_VENDOR_TRITECH      0x54524100  // TriTech "TRA"
//#define AC97_VENDOR_AKM          0x414B4D00  // Asahi Kasei "AKM"
//#define AC97_VENDOR_SIGMATEL     0x83847600  // SigmaTel


// volume control bit defines

#define AC97_MUTE                0x8000
#define AC97_MICBOOST            0x0040
#define AC97_LEFTVOL             0x3f00
#define AC97_RIGHTVOL            0x003f

// record mux defines

#define AC97_RECMUX_MIC          0x0000
#define AC97_RECMUX_CD           0x0101
#define AC97_RECMUX_VIDEO        0x0202      // not used
#define AC97_RECMUX_AUX          0x0303      
#define AC97_RECMUX_LINE         0x0404      
#define AC97_RECMUX_STEREO_MIX   0x0505
#define AC97_RECMUX_MONO_MIX     0x0606
#define AC97_RECMUX_PHONE        0x0707


// general purpose register bit defines

#define AC97_GP_LPBK             0x0080      // Loopback mode
#define AC97_GP_MS               0x0100      // Mic Select 0=Mic1, 1=Mic2
#define AC97_GP_MIX              0x0200      // Mono output select 0=Mix, 1=Mic
#define AC97_GP_RLBK             0x0400      // Remote Loopback - Modem line codec
#define AC97_GP_LLBK             0x0800      // Local Loopback - Modem Line codec
#define AC97_GP_LD               0x1000      // Loudness 1=on
#define AC97_GP_3D               0x2000      // 3D Enhancement 1=on
#define AC97_GP_ST               0x4000      // Stereo Enhancement 1=on
#define AC97_GP_POP              0x8000      // Pcm Out Path, 0=pre 3D, 1=post 3D


// powerdown control and status bit defines

// status
#define AC97_PWR_MDM             0x0010      // Modem section ready
#define AC97_PWR_REF             0x0008      // Vref nominal
#define AC97_PWR_ANL             0x0004      // Analog section ready
#define AC97_PWR_DAC             0x0002      // DAC section ready
#define AC97_PWR_ADC             0x0001      // ADC section ready

// control
#define AC97_PWR_PR0             0x0100      // ADC and Mux powerdown
#define AC97_PWR_PR1             0x0200      // DAC powerdown
#define AC97_PWR_PR2             0x0400      // Output mixer powerdown (Vref on)
#define AC97_PWR_PR3             0x0800      // Output mixer powerdown (Vref off)
#define AC97_PWR_PR4             0x1000      // AC-link powerdown
#define AC97_PWR_PR5             0x2000      // Internal Clk disable
#define AC97_PWR_PR6             0x4000      // HP amp powerdown
#define AC97_PWR_PR7             0x8000      // Modem off - if supported

// useful power states
#define AC97_PWR_D0              0x0000      // everything on
#define AC97_PWR_D1              AC97_PWR_PR0|AC97_PWR_PR1|AC97_PWR_PR4
#define AC97_PWR_D2              AC97_PWR_PR0|AC97_PWR_PR1|AC97_PWR_PR2|AC97_PWR_PR3|AC97_PWR_PR4
#define AC97_PWR_D3              AC97_PWR_PR0|AC97_PWR_PR1|AC97_PWR_PR2|AC97_PWR_PR3|AC97_PWR_PR4
#define AC97_PWR_ANLOFF          AC97_PWR_PR2|AC97_PWR_PR3  //analog section off

#define EXT_AUDIO_POWER_VRA                 0x0001




#endif // _H_AC97REGS

⌨️ 快捷键说明

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