?? evmdm642_aic23.h
字號:
/*
* Copyright 2003 by Spectrum Digital Incorporated.
* All rights reserved. Property of Spectrum Digital Incorporated.
*/
/*
* ======== evmdm642_aic23.h ========
*
* Codec interface for AIC23 on the EVMDM642 board
*/
#ifndef EVMDM642_AIC23_
#define EVMDM642_AIC23_
#ifdef __cplusplus
extern "C" {
#endif
#include <csl.h>
#include <csl_i2c.h>
#include <csl_mcasp.h>
/* McASP handles */
extern MCASP_Handle EVMDM642_AIC23_hMcASP;
#define EVMDM642_AIC23_DATAHANDLE EVMDM642_AIC23_hMcASP;
/* Codec module definitions */
#define EVMDM642_AIC23_NUMREGS 10
#define EVMDM642_AIC23_LEFTINVOL 0
#define EVMDM642_AIC23_RIGHTINVOL 1
#define EVMDM642_AIC23_LEFTHPVOL 2
#define EVMDM642_AIC23_RIGHTHPVOL 3
#define EVMDM642_AIC23_ANAPATH 4
#define EVMDM642_AIC23_DIGPATH 5
#define EVMDM642_AIC23_POWERDOWN 6
#define EVMDM642_AIC23_DIGIF 7
#define EVMDM642_AIC23_SAMPLERATE 8
#define EVMDM642_AIC23_DIGACT 9
#define EVMDM642_AIC23_RESET 15
#define EVMDM642_AIC23_I2CADDR 0x1A
#define EVMDM642_AIC23_INPUT 1
#define EVMDM642_AIC23_OUTPUT 2
/* Frequency Definitions */
#define EVMDM642_AIC23_FREQ_8KHZ 1
#define EVMDM642_AIC23_FREQ_16KHZ 2
#define EVMDM642_AIC23_FREQ_24KHZ 3
#define EVMDM642_AIC23_FREQ_32KHZ 4
#define EVMDM642_AIC23_FREQ_44KHZ 5
#define EVMDM642_AIC23_FREQ_48KHZ 6
#define EVMDM642_AIC23_FREQ_96KHZ 7
/* Codec Handle */
typedef int EVMDM642_AIC23_CodecHandle;
/* Parameter Structure for the EVMDM642 AIC23 Codec */
typedef struct EVMDM642_AIC23_Config {
int regs[EVMDM642_AIC23_NUMREGS];
} EVMDM642_AIC23_Config;
#define EVMDM642_AIC23_DEFAULTCONFIG { \
0x0017, /* Set-Up Reg 0 Left line input channel volume control */ \
/* LRS 0 simultaneous left/right volume: disabled */\
/* LIM 0 left line input mute: disabled */ \
/* XX 00 reserved */ \
/* LIV 10111 left line input volume: 0 dB */ \
\
0x0017, /* Set-Up Reg 1 Right line input channel volume control */ \
/* RLS 0 simultaneous right/left volume: disabled */\
/* RIM 0 right line input mute: disabled */ \
/* XX 00 reserved */ \
/* RIV 10111 right line input volume: 0 dB */ \
\
0x01f9, /* Set-Up Reg 2 Left channel headphone volume control */ \
/* LRS 1 simultaneous left/right volume: enabled */ \
/* LZC 1 left channel zero-cross detect: enabled */ \
/* LHV 1111001 left headphone volume: 0 dB */ \
\
0x01f9, /* Set-Up Reg 3 Right channel headphone volume control */ \
/* RLS 1 simultaneous right/left volume: enabled */ \
/* RZC 1 right channel zero-cross detect: enabled */\
/* RHV 1111001 right headphone volume: 0 dB */ \
\
0x0011, /* Set-Up Reg 4 Analog audio path control */ \
/* X 0 reserved */ \
/* STA 00 sidetone attenuation: -6 dB */ \
/* STE 0 sidetone: disabled */ \
/* DAC 1 DAC: selected */ \
/* BYP 0 bypass: off */ \
/* INSEL 0 input select for ADC: line */ \
/* MICM 0 microphone mute: disabled */ \
/* MICB 1 microphone boost: enabled */ \
\
0x0000, /* Set-Up Reg 5 Digital audio path control */ \
/* XXXXX 00000 reserved */ \
/* DACM 0 DAC soft mute: disabled */ \
/* DEEMP 00 deemphasis control: disabled */ \
/* ADCHP 0 ADC high-pass filter: disabled */ \
\
0x0000, /* Set-Up Reg 6 Power down control */ \
/* X 0 reserved */ \
/* OFF 0 device power: on (i.e. not off) */ \
/* CLK 0 clock: on */ \
/* OSC 0 oscillator: on */ \
/* OUT 0 outputs: on */ \
/* DAC 0 DAC: on */ \
/* ADC 0 ADC: on */ \
/* MIC 0 microphone: on */ \
/* LINE 0 line input: on */ \
\
0x0043, /* Set-Up Reg 7 Digital audio interface format */ \
/* XX 00 reserved */ \
/* MS 1 master/slave mode: master */ \
/* LRSWAP 0 DAC left/right swap: disabled */ \
/* LRP 0 DAC lrp: MSB on 1st BCLK */ \
/* IWL 00 input bit length: 16 bit */ \
/* FOR 11 data format: DSP format */ \
\
0x0082, /* Set-Up Reg 8 Sample rate control */ \
/* X 0 reserved */ \
/* CLKOUT 1 clock output divider: 2 (MCLK/2) */ \
/* CLKIN 0 clock input divider: 1 (MCLK) */ \
/* SR,BOSR 00001 sampling rate: ADC 48 kHz DAC 48 kHz */ \
/* USB/N 0 clock mode select (USB/normal): USB */ \
\
0x0001 /* Set-Up Reg 9 Digital interface activation */ \
/* XX..X 00000000 reserved */ \
/* ACT 1 active */ \
}
/* Set codec register regnum to value regval */
void EVMDM642_AIC23_rset(EVMDM642_AIC23_CodecHandle hCodec, Uint16 regnum, Uint16 regval);
/* Return value of codec register regnum */
Uint16 EVMDM642_AIC23_rget(EVMDM642_AIC23_CodecHandle hCodec, Uint16 regnum);
/* Open the codec with id and return handle */
EVMDM642_AIC23_CodecHandle EVMDM642_AIC23_openCodec(Int16 id, EVMDM642_AIC23_Config *Config, Int16 direction);
/* Close the codec */
void EVMDM642_AIC23_closeCodec(EVMDM642_AIC23_CodecHandle hCodec);
/* Configure the codec register values */
void EVMDM642_AIC23_config(EVMDM642_AIC23_CodecHandle hCodec, EVMDM642_AIC23_Config *Config);
/* Write a 32-bit value to the codec */
Int16 EVMDM642_AIC23_write(EVMDM642_AIC23_CodecHandle hCodec, Uint32 val);
/* Read a 32-bit value from the codec */
Int16 EVMDM642_AIC23_read(EVMDM642_AIC23_CodecHandle hCodec, Uint32 *val);
/* Set the codec output gain */
void EVMDM642_AIC23_outGain(EVMDM642_AIC23_CodecHandle hCodec, Uint16 outGain);
/* Set the codec loopback mode */
void EVMDM642_AIC23_loopback(EVMDM642_AIC23_CodecHandle hCodec, Int16 mode);
/* Enable/disable codec mute mode */
void EVMDM642_AIC23_mute(EVMDM642_AIC23_CodecHandle hCodec, Int16 mode);
/* Enable/disable codec powerdown modes for DAC, ADC */
void EVMDM642_AIC23_powerDown(EVMDM642_AIC23_CodecHandle hCodec, Uint16 sect);
/* Set the codec sample rate frequency */
void EVMDM642_AIC23_setFreq(EVMDM642_AIC23_CodecHandle hCodec, Uint32 freq);
#ifdef __cplusplus
}
#endif
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -