reference/common/i2s_if.h
2019-10-09 13:45:38 +02:00

142 lines
5.2 KiB
C

//*****************************************************************************
// mcasp_if.h
//
// MCASP interface APIs.
//
// Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/
//
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
//
// Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//
// Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the
// distribution.
//
// Neither the name of Texas Instruments Incorporated nor the names of
// its contributors may be used to endorse or promote products derived
// from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//*****************************************************************************
//*****************************************************************************
//
// mcasp_if.h - Defines and prototypes for MultiChannel Audio Serial Port.
//
//*****************************************************************************
#ifndef __MCASP_IF_H__
#define __MCASP_IF_H__
//*****************************************************************************
//
// If building with a C++ compiler, make all of the definitions in this header
// have a C binding.
//
//*****************************************************************************
#ifdef __cplusplus
extern "C"
{
#endif
#define WFIFO_NUMDMA_WORDS 1
#define MCASP_DMA_PORT_ADDR 0x4401E200
//
// Update the sampling freq, channels, sample length appropriately
//
typedef enum {
SAMPLING_FREQ_8_KHZ = 8000,
SAMPLING_FREQ_11_X_KHZ = 11025,
SAMPLING_FREQ_16_KHZ = 16000,
SAMPLING_FREQ_22_X_KHZ = 22050,
SAMPLING_FREQ_32_KHZ = 32000,
SAMPLING_FREQ_44_1_KHZ = 44100,
SAMPLING_FREQ_48_KHZ = 48000
} tESamplFreq;
typedef enum {
CH_MONO = 1,
CH_STEREO = 2
} tENumChannels;
typedef enum {
BIT_8_PCM = 8,
BIT_16_PCM = 16,
BIT_24_PCM = 24,
BIT_32_PCM = 32
} tESampleLen;
#define I2S_MODE_RX 0x01
#define I2S_MODE_TX 0x02
#define I2S_MODE_RX_TX 0x03
//
// Audio Renderer Interface APIs
//
extern void AudioRendererInit();
extern void AudioCapturerInit();
extern void AudioInit();
extern void McASPInit();
extern void AudioRendererSetupCPUMode(void (*pfnAppCbHndlr)(void));
extern void AudioRendererSetupDMAMode(void (*pfnAppCbHndlr)(void),
unsigned long ulCallbackEvtSamples);
extern void AudioCapturerSetupCPUMode(void (*pfnAppCbHndlr)(void));
extern long AudioCapturerSetupDMAMode(void (*pfnAppCbHndlr)(void),
unsigned long ulCallbackEvtSamples);
extern long AudioSetupDMAMode(void (*pfnAppCbHndlr)(void),
unsigned long ulCallbackEvtSamples,
unsigned char RxTx);
extern unsigned int* AudioRendererGetDMADataPtr();
extern unsigned int* AudioCapturerGetDMADataPtr();
extern void AudioCapturerConfigure(int iSamplingFrequency,
short sNumOfChannels,
short sBitsPerSample);
extern void AudioRendererConfigure(int iSamplingFrequency,
short sNumOfChannels,
short sBitsPerSample);
extern void AudioRendererStart();
extern void AudioCapturerStart();
extern void AudioRendererStop();
extern void AudioRendererDeInit();
extern unsigned int BitClockConfigure(int iSamplingFrequency,
short sNumOfChannels,
short sBitsPerSample);
extern void AudioCaptureRendererConfigure(unsigned char bitsPerSample,
unsigned short bitRate,
unsigned char noOfChannels,
unsigned char RxTx,
unsigned char dma);
extern void Audio_Start(unsigned char RxTx);
//*****************************************************************************
//
// Mark the end of the C bindings section for C++ compilers.
//
//*****************************************************************************
#ifdef __cplusplus
}
#endif
#endif // __MCASP_IF_H__