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

📄 lh7a400_ac97_codec.h

📁 sharp触摸屏测试代码
💻 H
字号:
/*********************************************************************
 * $Workfile:   LH7A400_ac97_codec.h  $
 * $Revision:   1.1  $
 * $Author:   FergisJ  $
 * $Date:   Jul 18 2002 15:58:00  $
 *
 * Project: LH7A400 EVB uC/OS-II (V2.52) EIT Development
 *
 * Description:
 *   This file contains definitions used when the LH7A400's
 *    Advanced Audio Codec controller is connected to an
 *    "AC '97" compliant Audio Codec.
 *    This interface is based on Intel's 1997 specification, v2.2
 *
 * Reference:
 *   (1)  AC '97 Component Specification, Rev 2.2;  Intel Corporation
 *          ftp://download.intel.com/ial/scalableplatforms/ac97r22.pdf
 *
 *
 * Notes:
 *
 *
 *
 *
 * Revision History:
 * $Log:   //smaicnt2/pvcs/VM/CHIPS/archives/SOC/LH7A400/Processor/LH7A400_ac97_codec.h-arc  $
 * 
 *    Rev 1.1   Jul 18 2002 15:58:00   FergisJ
 * Updated to meet Coding Standard
 *
 *    Rev 1.0   Jul 18 2002 08:53:46   FergisJ
 * Initial revision.
 *
 *
 *
 *
 ********************************************************************
 *
 * SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
 * OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
 * AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES,
 * SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
 *
 * SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE
 * SOLELY FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE
 * USE OF A SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT.
 * USE OF THIS SOURCE FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
 *
 * COPYRIGHT (C) 2002 SHARP MICROELECTRONICS OF THE AMERICAS
 *     CAMAS, WA
 ********************************************************************/

#if !defined(LH7A400_AC97_CODEC_H)
#define LH7A400_AC97_CODEC_H


//===================================================================
//
//  Audio Codec '97  REGISTER  Assignments
//
//   Note:  Register index values are 7-bits wide.
//          When using these definitions for Slot Data, OR in the R/W
//           bit in _BIT(8) for Transmitting and a '0' is read for
//           _BIT(8) when Receiving.
//
//-----------------------------------------------

#define  AC97_RESET                 0x00
#define  AC97_MASTER_VOL            0x02  // Master Stereo Volume
#define  AC97_AUXOUT_VOL            0x04
#define  AC97_MONO_VOL              0x06  // Master Mono Volume
#define  AC97_MASTER_TONE           0x08
#define  AC97_PCBEEP_VOL            0x0a
#define  AC97_PHONE_VOL             0x0c
#define  AC97_MIC_VOL               0x0e
#define  AC97_LINEIN_VOL            0x10
#define  AC97_CD_VOL                0x12
#define  AC97_VIDEO_VOL             0x14
#define  AC97_AUXIN_VOL             0x16
#define  AC97_PCMOUT_VOL            0x18
#define  AC97_RECORD_SELECT         0x1a
#define  AC97_RECORD_GAIN           0x1c
#define  AC97_RECORD_GAIN_MIC       0x1e
#define  AC97_GENERAL_PURPOSE       0x20
#define  AC97_3D_CONTROL            0x22
//  AC97  RESERVED                  0x24
#define  AC97_POWER_DOWN            0x26

// Extended Audio Registers
#define AC97_EXTENDED_AUDIO_ID      0x28
#define AC97_EXTENDED_AUDIO_STATUS  0x2A
#define AC97_PCM_FRONT_DAC_RATE     0x2C
#define AC97_PCM_SURR_DAC_RATE      0x2E
#define AC97_PCM_LFE_DAC_RATE       0x30
#define AC97_PCM_LR_DAC_RATE        0x32
#define AC97_MIC_ADC_RATE           0x34
#define AC97_CENTER_LFE_VOL         0x36
#define AC97_SURROUND_VOL           0x38
#define AC97_SPDIF_CONTROL          0x3A

// Extended Modem Registers
#define AC97_EXTENDED_MODEM_ID      0x3C
#define AC97_EXTEND_MODEM_STATCTRL  0x3E
#define AC97_LINE1_RATE             0x40
#define AC97_LINE2_RATE             0x42
#define AC97_HANDSET_RATE           0x44
#define AC97_LINE1_LEVEL            0x46
#define AC97_LINE2_LEVEL            0x48
#define AC97_HANDSET_LEVEL          0x4A
#define AC97_GPIO_CONFIG            0x4C
#define AC97_GPIO_POLARITY_TYPE     0x4E
#define AC97_GPIO_STICKY            0x50
#define AC97_GPIO_WAKE_UP           0x52
#define AC97_GPIO_STATUS            0x54
#define AC97_MISC_MODEM_STATCTRL    0x56
//  AC97  RESERVED                  0x58

//
// registers 0x005a - 0x007a are reserved
//  for vendor-specific data
//
#define AC97_VENDOR_ID1             0x007c
#define AC97_VENDOR_ID2             0x007e


//===================================================================
//
//  Audio Codec '97  BIT  Definitions & Masks
//
//-----------------------------------------------

//
// general volume control bits
//
#define AC97_MUTE                   _BIT(15)
#define AC97_MICVOL                 _BIT(16)      // 20dB
#define AC97_LEFTVOL                _SBF(8, 0x3f) // Left Vol bit-mask
#define AC97_RIGHTVOL               _BITMASK(6)   // Right Vol bit-mask

//
// record mux bits for reg 1Ah (Record Select)
//
//  & with a bitmask below to record select only one left/right side
#define AC97_RECSEL_LEFT_ONLY       _SBF(8, 7)
#define AC97_RECSEL_RIGHT_ONLY      _BITMASK(3)
// bit selected for both left/right sides
#define AC97_RECSEL_MIC             0x0000
#define AC97_RECSEL_CD              0x0101
#define AC97_RECSEL_VIDEO           0x0202
#define AC97_RECSEL_AUX             0x0303
#define AC97_RECSEL_LINE            0x0404
#define AC97_RECSEL_STEREO_MIX      0x0505 // mix all enabled outputs
#define AC97_RECSEL_MONO_MIX        0x0606 //   the mono equivalent
#define AC97_RECSEL_PHONE           0x0707

//
// General Purpose register bits for reg 20h
//
#define AC97_GP_LPBK             _BIT(7)   // Loopback mode
#define AC97_GP_MS               _BIT(8)   // Mic Select 0=M1, 1=M2
#define AC97_GP_MIX              _BIT(9)   // MonoOut sel 0=Mix, 1=Mic
#define AC97_GP_LD               _BIT(12)  // Loudness 1=on
#define AC97_GP_3D               _BIT(13)  // 3D Enhancement 1=on
#define AC97_GP_ST               _BIT(14)  // Stereo Enhancement 1=on
#define AC97_GP_POP              _BIT(15)  // PcmOut 0=pre3D, 1=post3D

//
// Powerdown Control/Status bits for reg 26h
//
// status
#define AC97_PWR_ADC             _BIT(0)   // ADC section ready xmit
#define AC97_PWR_DAC             _BIT(1)   // DAC section ready rmit
#define AC97_PWR_ANL             _BIT(2)   // Analog section ready
#define AC97_PWR_REF             _BIT(3)   // Vref nominal

// control
#define AC97_PWR_PR0             _BIT(8)   // ADC and Mux powerdown
#define AC97_PWR_PR1             _BIT(9)   // DAC powerdown
#define AC97_PWR_PR2             _BIT(10)  // AnalogMux pwrdn (Vr on)
#define AC97_PWR_PR3             _BIT(11)  // AnalogMux pwrdn (Vr off)
#define AC97_PWR_PR4             _BIT(12)  // AC-link powerdown
#define AC97_PWR_PR5             _BIT(13)  // Internal Clk disable
#define AC97_PWR_PR6             _BIT(14)  // HP amp powerdown
#define AC97_PWR_EAPD            _BIT(15)  // Ext.Amplifier PowerDown

// useful power states
#define AC97_PWR_ALL_ON             0x0000
#define AC97_PWR_PCM_OFF      (AC97_PWR_PR0|AC97_PWR_PR1|AC97_PWR_PR4)
#define AC97_PWR_ANALOG_OFF   (AC97_PWR_PR2|AC97_PWR_PR3)

#endif /* LH7A400_AC97_CODEC_H */

⌨️ 快捷键说明

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