| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500 |
- /**
- * \file mcasp.h
- *
- * \brief McASP API prototypes and macros.
- *
- * This file contains the driver API prototypes and macro definitions.
- */
- /*
- * Copyright (C) 2010 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.
- *
- */
- #ifndef __MCASP_H__
- #define __MCASP_H__
- #include "hw_mcasp.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*****************************************************************************/
- /*
- ** Macros to combine to pass as formatVal to the API McASPTxFmtSet.
- ** The value formatVal is directly written to the register. So
- ** proper combination of the below macros shall be selected
- ** Thus the default value is
- ** (MCASP_TX_SYNC_DELAY_0BIT | MCASP_TX_BITSTREAM_LSB_FIRST |
- ** MCASP_TX_PAD_WITH_0 | MCASP_TX_SLOTSIZE_8BITS |MCASP_TX_BUF_DMAPORT
- ** MCASP_TX_ROT_RIGHT_NONE)
- */
- /* Transmit Sync Bit delay */
- #define MCASP_TX_SYNC_DELAY_0BIT (MCASP_XFMT_XDATDLY_0BIT \
- << MCASP_XFMT_XDATDLY_SHIFT)
- #define MCASP_TX_SYNC_DELAY_1BIT (MCASP_XFMT_XDATDLY_1BIT \
- << MCASP_XFMT_XDATDLY_SHIFT)
- #define MCASP_TX_SYNC_DELAY_2BIT (MCASP_XFMT_XDATDLY_2BIT \
- << MCASP_XFMT_XDATDLY_SHIFT)
- /* Bit Stream output, whether MSB or LSB shall be out first */
- #define MCASP_TX_BITSTREAM_LSB_FIRST (0x0u)
- #define MCASP_TX_BITSTREAM_MSB_FIRST (0x00008000u)
- /* Padding options for unused bits */
- #define MCASP_TX_PAD_WITH_0 (0x00000000u)
- #define MCASP_TX_PAD_WITH_1 (0x00002000u)
- #define MCASP_TX_PAD_WITH_PBIT(n) ((0x00004000u) | (n \
- << MCASP_XFMT_XPBIT_SHIFT))
- /* Transmit slot size to be used */
- #define MCASP_TX_SLOTSIZE_8BITS (MCASP_XFMT_XSSZ_8BITS \
- << MCASP_XFMT_XSSZ_SHIFT)
- #define MCASP_TX_SLOTSIZE_12BITS (MCASP_XFMT_XSSZ_12BITS \
- << MCASP_XFMT_XSSZ_SHIFT)
- #define MCASP_TX_SLOTSIZE_16BITS (MCASP_XFMT_XSSZ_16BITS \
- << MCASP_XFMT_XSSZ_SHIFT)
- #define MCASP_TX_SLOTSIZE_20BITS (MCASP_XFMT_XSSZ_20BITS \
- << MCASP_XFMT_XSSZ_SHIFT)
- #define MCASP_TX_SLOTSIZE_24BITS (MCASP_XFMT_XSSZ_24BITS \
- << MCASP_XFMT_XSSZ_SHIFT)
- #define MCASP_TX_SLOTSIZE_28BITS (MCASP_XFMT_XSSZ_28BITS \
- << MCASP_XFMT_XSSZ_SHIFT)
- #define MCASP_TX_SLOTSIZE_32BITS (MCASP_XFMT_XSSZ_32BITS \
- << MCASP_XFMT_XSSZ_SHIFT)
- /* Transmit buffer write origin */
- #define MCASP_TX_BUF_DMAPORT (0x0u)
- #define MCASP_TX_BUF_PERICONFIGPORT (0x8u)
- /* Rotate value for the transmit rotate right format unit */
- #define MCASP_TX_ROT_RIGHT_NONE MCASP_XFMT_XROT_NONE
- #define MCASP_TX_ROT_RIGHT_4BITS MCASP_XFMT_XROT_4BITS
- #define MCASP_TX_ROT_RIGHT_8BITS MCASP_XFMT_XROT_8BITS
- #define MCASP_TX_ROT_RIGHT_12BITS MCASP_XFMT_XROT_12BITS
- #define MCASP_TX_ROT_RIGHT_16BITS MCASP_XFMT_XROT_16BITS
- #define MCASP_TX_ROT_RIGHT_20BITS MCASP_XFMT_XROT_20BITS
- #define MCASP_TX_ROT_RIGHT_24BITS MCASP_XFMT_XROT_24BITS
- #define MCASP_TX_ROT_RIGHT_28BITS MCASP_XFMT_XROT_28BITS
- /*****************************************************************************/
- /*
- ** Macros to combine to pass as formatVal to the API McASPRxFmtSet.
- ** The value formatVal is directly written to the register. So
- ** proper combination of the below macros shall be selected
- ** Thus the default value is
- ** (MCASP_RX_SYNC_DELAY_0BIT | MCASP_RX_BITSTREAM_LSB_FIRST |
- ** MCASP_RX_PAD_WITH_0 | MCASP_RX_SLOTSIZE_8BITS |MCASP_RX_BUF_DMAPORT
- ** MCASP_RX_ROT_RIGHT_NONE)
- */
- /* Receive Bit delay */
- #define MCASP_RX_SYNC_DELAY_0BIT (MCASP_RFMT_RDATDLY_0BIT \
- << MCASP_RFMT_RDATDLY_SHIFT)
- #define MCASP_RX_SYNC_DELAY_1BIT (MCASP_RFMT_RDATDLY_1BIT \
- << MCASP_RFMT_RDATDLY_SHIFT)
- #define MCASP_RX_SYNC_DELAY_2BIT (MCASP_RFMT_RDATDLY_2BIT \
- << MCASP_RFMT_RDATDLY_SHIFT)
- /* Bit Stream input, whether MSB or LSB shall be out first */
- #define MCASP_RX_BITSTREAM_LSB_FIRST (0x0u)
- #define MCASP_RX_BITSTREAM_MSB_FIRST (0x00008000u)
- /* Padding options for unused bits */
- #define MCASP_RX_PAD_WITH_0 (0x00000000u)
- #define MCASP_RX_PAD_WITH_1 (0x00002000u)
- #define MCASP_RX_PAD_WITH_PBIT(n) ((0x00004000u) | (n \
- << MCASP_RFMT_RPBIT_SHIFT))
- /* Receive slot size to be used */
- #define MCASP_RX_SLOTSIZE_8BITS (MCASP_RFMT_RSSZ_8BITS \
- << MCASP_RFMT_RSSZ_SHIFT)
- #define MCASP_RX_SLOTSIZE_12BITS (MCASP_RFMT_RSSZ_12BITS \
- << MCASP_RFMT_RSSZ_SHIFT)
- #define MCASP_RX_SLOTSIZE_16BITS (MCASP_RFMT_RSSZ_16BITS \
- << MCASP_RFMT_RSSZ_SHIFT)
- #define MCASP_RX_SLOTSIZE_20BITS (MCASP_RFMT_RSSZ_20BITS \
- << MCASP_RFMT_RSSZ_SHIFT)
- #define MCASP_RX_SLOTSIZE_24BITS (MCASP_RFMT_RSSZ_24BITS \
- << MCASP_RFMT_RSSZ_SHIFT)
- #define MCASP_RX_SLOTSIZE_28BITS (MCASP_RFMT_RSSZ_28BITS \
- << MCASP_RFMT_RSSZ_SHIFT)
- #define MCASP_RX_SLOTSIZE_32BITS (MCASP_RFMT_RSSZ_32BITS \
- << MCASP_RFMT_RSSZ_SHIFT)
- /* Receive buffer origin */
- #define MCASP_RX_BUF_DMAPORT (0x0u)
- #define MCASP_RX_BUF_PERICONFIGPORT (0x8u)
- /* Rotate value for the receive rotate right format unit */
- #define MCASP_RX_ROT_RIGHT_NONE MCASP_RFMT_RROT_NONE
- #define MCASP_RX_ROT_RIGHT_4BITS MCASP_RFMT_RROT_4BITS
- #define MCASP_RX_ROT_RIGHT_8BITS MCASP_RFMT_RROT_8BITS
- #define MCASP_RX_ROT_RIGHT_12BITS MCASP_RFMT_RROT_12BITS
- #define MCASP_RX_ROT_RIGHT_16BITS MCASP_RFMT_RROT_16BITS
- #define MCASP_RX_ROT_RIGHT_20BITS MCASP_RFMT_RROT_20BITS
- #define MCASP_RX_ROT_RIGHT_24BITS MCASP_RFMT_RROT_24BITS
- #define MCASP_RX_ROT_RIGHT_28BITS MCASP_RFMT_RROT_28BITS
- /*****************************************************************************/
- /*
- ** Macros which can be passed as txMode to McASPTxFmtI2SSet API.
- */
- #define MCASP_TX_MODE_NON_DMA MCASP_TX_BUF_PERICONFIGPORT
- #define MCASP_TX_MODE_DMA MCASP_TX_BUF_DMAPORT
- /*****************************************************************************/
- /*
- i** Macros which can be passed as rxMode to McASPRxFmtI2SSet API.
- */
- #define MCASP_RX_MODE_NON_DMA MCASP_RX_BUF_PERICONFIGPORT
- #define MCASP_RX_MODE_DMA MCASP_RX_BUF_DMAPORT
- /*****************************************************************************/
- /*
- ** Macros which can be passed as fsWidth to McASPTxFrameSyncCfg API.
- */
- #define MCASP_TX_FS_WIDTH_BIT (0x00000000u)
- #define MCASP_TX_FS_WIDTH_WORD (0x00000010u)
- /*
- ** Macros which can be passed as fsSetting to McASPTxFrameSyncCfg API.
- */
- #define MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE (0x00000002u)
- #define MCASP_TX_FS_INT_BEGIN_ON_FALL_EDGE (0x00000003u)
- #define MCASP_TX_FS_EXT_BEGIN_ON_RIS_EDGE (0x00000000u)
- #define MCASP_TX_FS_EXT_BEGIN_ON_FALL_EDGE (0x00000001u)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as fsWidth to McASPRxFrameSyncCfg API.
- */
- #define MCASP_RX_FS_WIDTH_BIT (0x00000000u)
- #define MCASP_RX_FS_WIDTH_WORD (0x00000010u)
- /*
- ** Macros which can be passed as fsSetting to McASPRxFrameSyncCfg API.
- */
- #define MCASP_RX_FS_INT_BEGIN_ON_RIS_EDGE (0x00000002u)
- #define MCASP_RX_FS_INT_BEGIN_ON_FALL_EDGE (0x00000003u)
- #define MCASP_RX_FS_EXT_BEGIN_ON_RIS_EDGE (0x00000000u)
- #define MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE (0x00000001u)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as clkSrc to McASPTxClkCfg API and
- ** McASPTxClkStart API.
- */
- #define MCASP_TX_CLK_INTERNAL (0x00008020u)
- #define MCASP_TX_CLK_EXTERNAL (0x00000000u)
- #define MCASP_TX_CLK_MIXED (0x00000020u)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as clkSrc to McASPRxClkCfg API and
- ** McASPRxClkStart API.
- */
- #define MCASP_RX_CLK_INTERNAL (0x00008020u)
- #define MCASP_RX_CLK_EXTERNAL (0x00000000u)
- #define MCASP_RX_CLK_MIXED (0x00000020u)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as polarity to McASPTxClkPolaritySet API.
- */
- #define MCASP_TX_CLK_POL_RIS_EDGE (0x00000000u)
- #define MCASP_TX_CLK_POL_FALL_EDGE (0x00000080u)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as polarity to McASPRxClkPolaritySet API.
- */
- #define MCASP_RX_CLK_POL_RIS_EDGE (0x00000080u)
- #define MCASP_RX_CLK_POL_FALL_EDGE (0x00000000u)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as polarity to the API McASPTxHFClkPolaritySet.
- */
- #define MCASP_TX_HI_FREQ_CLK_NO_INVERT (0x00000000u)
- #define MCASP_TX_HI_FREQ_CLK_INVERT (MCASP_AHCLKXCTL_HCLKXP)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as polarity to the API McASPRxHFClkPolaritySet.
- */
- #define MCASP_RX_HI_FREQ_CLK_NO_INVERT (0x00000000u)
- #define MCASP_RX_HI_FREQ_CLK_INVERT (MCASP_AHCLKRCTL_HCLKRP)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as intMask to the APIs McASPTxIntEnable/Disable
- ** intMask can be an OR combination of the below macros
- */
- #define MCASP_TX_STARTOFFRAME (MCASP_XINTCTL_XSTAFRM)
- #define MCASP_TX_DATAREADY (MCASP_XINTCTL_XDATA)
- #define MCASP_TX_LASTSLOT (MCASP_XINTCTL_XLAST)
- #define MCASP_TX_DMAERROR (MCASP_XINTCTL_XDMAERR)
- #define MCASP_TX_CLKFAIL (MCASP_XINTCTL_XCKFAIL)
- #define MCASP_TX_SYNCERROR (MCASP_XINTCTL_XSYNCERR)
- #define MCASP_TX_UNDERRUN (MCASP_XINTCTL_XUNDRN)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as intMask to the APIs McASPRxIntEnable/Disable
- ** intMask can be an OR combination of the below macros
- */
- #define MCASP_RX_STARTOFFRAME (MCASP_RINTCTL_RSTAFRM)
- #define MCASP_RX_DATAREADY (MCASP_RINTCTL_RDATA)
- #define MCASP_RX_LASTSLOT (MCASP_RINTCTL_RLAST)
- #define MCASP_RX_DMAERROR (MCASP_RINTCTL_RDMAERR)
- #define MCASP_RX_CLKFAIL (MCASP_RINTCTL_RCKFAIL)
- #define MCASP_RX_SYNCERROR (MCASP_RINTCTL_RSYNCERR)
- #define MCASP_RX_OVERRUN (MCASP_RINTCTL_ROVRN)
- /*****************************************************************************/
- /*
- ** Macros which can be used in pinMask to the APIs
- ** McASPPinDirOutput and SetMcASPPinDirInputSet, McASPPinMcASPSet
- ** and McASPPinGPIOSet
- */
- #define MCASP_PIN_AFSR (MCASP_PDIR_AFSR)
- #define MCASP_PIN_AHCLKR (MCASP_PDIR_AHCLKR)
- #define MCASP_PIN_ACLKR (MCASP_PDIR_ACLKR)
- #define MCASP_PIN_AFSX (MCASP_PDIR_AFSX)
- #define MCASP_PIN_AHCLKX (MCASP_PDIR_AHCLKX)
- #define MCASP_PIN_ACLKX (MCASP_PDIR_ACLKX)
- #define MCASP_PIN_AMUTE (MCASP_PDIR_AMUTE)
- #define MCASP_PIN_AXR(n) (1u << n)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as errFlags to the API McASPTxAMuteEnable
- */
- #define MCASP_AMUTE_TX_DMAERROR (MCASP_AMUTE_XDMAERR)
- #define MCASP_AMUTE_TX_CLKFAIL (MCASP_AMUTE_XCKFAIL)
- #define MCASP_AMUTE_TX_SYNCERROR (MCASP_AMUTE_XSYNCERR)
- #define MCASP_AMUTE_TX_UNDERRUN (MCASP_AMUTE_XUNDRN)
- #define MCASP_AMUTE_RX_DMAERROR (MCASP_AMUTE_RDMAERR)
- #define MCASP_AMUTE_RX_CLKFAIL (MCASP_AMUTE_RCKFAIL)
- #define MCASP_AMUTE_RX_SYNCERROR (MCASP_AMUTE_RSYNCERR)
- #define MCASP_AMUTE_RX_OVERRUN (MCASP_AMUTE_ROVRN)
- /*
- ** Macros which can be passed as pinState to the API McASPTxAMuteEnable
- */
- #define MCASP_AMUTE_PIN_HIGH (0x00000001)
- #define MCASP_AMUTE_PIN_LOW (0x00000002)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as clkDiv to the API McASPTxClkCheckConfig
- */
- #define MCASP_TX_CLKCHCK_DIV1 (MCASP_XCLKCHK_XPS_DIVBY1)
- #define MCASP_TX_CLKCHCK_DIV2 (MCASP_XCLKCHK_XPS_DIVBY2)
- #define MCASP_TX_CLKCHCK_DIV4 (MCASP_XCLKCHK_XPS_DIVBY4)
- #define MCASP_TX_CLKCHCK_DIV8 (MCASP_XCLKCHK_XPS_DIVBY8)
- #define MCASP_TX_CLKCHCK_DIV16 (MCASP_XCLKCHK_XPS_DIVBY16)
- #define MCASP_TX_CLKCHCK_DIV32 (MCASP_XCLKCHK_XPS_DIVBY32)
- #define MCASP_TX_CLKCHCK_DIV64 (MCASP_XCLKCHK_XPS_DIVBY64)
- #define MCASP_TX_CLKCHCK_DIV128 (MCASP_XCLKCHK_XPS_DIVBY128)
- #define MCASP_TX_CLKCHCK_DIV256 (MCASP_XCLKCHK_XPS_DIVBY256)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as clkDiv to the API McASPRxClkCheckConfig
- */
- #define MCASP_RX_CLKCHCK_DIV1 (MCASP_RCLKCHK_RPS_DIVBY1)
- #define MCASP_RX_CLKCHCK_DIV2 (MCASP_RCLKCHK_RPS_DIVBY2)
- #define MCASP_RX_CLKCHCK_DIV4 (MCASP_RCLKCHK_RPS_DIVBY4)
- #define MCASP_RX_CLKCHCK_DIV8 (MCASP_RCLKCHK_RPS_DIVBY8)
- #define MCASP_RX_CLKCHCK_DIV16 (MCASP_RCLKCHK_RPS_DIVBY16)
- #define MCASP_RX_CLKCHCK_DIV32 (MCASP_RCLKCHK_RPS_DIVBY32)
- #define MCASP_RX_CLKCHCK_DIV64 (MCASP_RCLKCHK_RPS_DIVBY64)
- #define MCASP_RX_CLKCHCK_DIV128 (MCASP_RCLKCHK_RPS_DIVBY128)
- #define MCASP_RX_CLKCHCK_DIV256 (MCASP_RCLKCHK_RPS_DIVBY256)
- /*****************************************************************************/
- /*
- ** Macros which can be passed as usrDataBits to the APIs
- ** McASPDITChanUsrDataWrite and McASPDITChanUsrDataRead.
- */
- #define MCASP_DIT_USRDATA_BITS_0_31 (0x00000000)
- #define MCASP_DIT_USRDATA_BITS_32_63 (0x00000001)
- #define MCASP_DIT_USRDATA_BITS_64_95 (0x00000002)
- #define MCASP_DIT_USRDATA_BITS_96_127 (0x00000003)
- #define MCASP_DIT_USRDATA_BITS_128_159 (0x00000004)
- #define MCASP_DIT_USRDATA_BITS_160_191 (0x00000005)
- /*****************************************************************************/
- /*
- ** Macros for tokens returned by the API McASPTxStatusGet
- */
- #define MCASP_TX_STAT_ERR (MCASP_XSTAT_XERR)
- #define MCASP_TX_STAT_DMAERR (MCASP_XSTAT_XDMAERR)
- #define MCASP_TX_STAT_STARTOFFRAME (MCASP_XSTAT_XSTAFRM)
- #define MCASP_TX_STAT_DATAREADY (MCASP_XSTAT_XDATA)
- #define MCASP_TX_STAT_LASTSLOT (MCASP_XSTAT_XLAST)
- #define MCASP_TX_STAT_CURRSLOT_EVEN (MCASP_XSTAT_XTDMSLOT)
- #define MCASP_TX_STAT_CURRSLOT_ODD (0x00000000)
- #define MCASP_TX_STAT_CLKFAIL (MCASP_XSTAT_XCKFAIL)
- #define MCASP_TX_STAT_SYNCERR (MCASP_XSTAT_XSYNCERR)
- #define MCASP_TX_STAT_UNDERRUN (MCASP_XSTAT_XUNDRN)
- /*****************************************************************************/
- /*
- ** Macros for tokens returned by the API McASPRxStatusGet
- */
- #define MCASP_RX_STAT_ERR (MCASP_RSTAT_RERR)
- #define MCASP_RX_STAT_DMAERR (MCASP_RSTAT_RDMAERR)
- #define MCASP_RX_STAT_STARTOFFRAME (MCASP_RSTAT_RSTAFRM)
- #define MCASP_RX_STAT_DATAREADY (MCASP_RSTAT_RDATA)
- #define MCASP_RX_STAT_LASTSLOT (MCASP_RSTAT_RLAST)
- #define MCASP_RX_STAT_CURRSLOT_EVEN (MCASP_RSTAT_RTDMSLOT)
- #define MCASP_RX_STAT_CURRSLOT_ODD (0x00000000)
- #define MCASP_RX_STAT_CLKFAIL (MCASP_RSTAT_RCKFAIL)
- #define MCASP_RX_STAT_SYNCERR (MCASP_RSTAT_RSYNCERR)
- #define MCASP_RX_STAT_OVERRUN (MCASP_RSTAT_ROVRN)
- /*****************************************************************************/
- /*
- ** Macros to be used for the variable 'sectFlag' for 'McASPContextSave'
- ** and 'McASPContextRestore'
- */
- #define McASP_CONTEXT_TX (0x01)
- #define McASP_CONTEXT_RX (0x02)
- #define McASP_CONTEXT_BOTH (0x03)
- /*****************************************************************************/
- /*
- ** Structure to store the McASP context
- */
- typedef struct mcaspContext {
- unsigned int fifoWfifoCtl;
- unsigned int xmask;
- unsigned int xfmt;
- unsigned int afsxctl;
- unsigned int aclkxctl;
- unsigned int ahclkxctl;
- unsigned int xclkchk;
- unsigned int xtdm;
- unsigned int srctl[16];
- unsigned int pfunc;
- unsigned int pdir;
- unsigned int fifoRfifoCtl;
- unsigned int rmask;
- unsigned int rfmt;
- unsigned int afsrctl;
- unsigned int aclkrctl;
- unsigned int ahclkrctl;
- unsigned int rclkchk;
- unsigned int rtdm;
- unsigned int gblctl;
- } MCASPCONTEXT;
- /*****************************************************************************/
- /*
- ** Prototypes for the APIs
- */
- extern void McASPTxReset(unsigned int baseAddr);
- extern void McASPRxReset(unsigned int baseAddr);
- extern void McASPWriteFifoEnable(unsigned int baseAddr, unsigned int numTxSer,
- unsigned int minWdPerSer);
- extern void McASPReadFifoEnable(unsigned int baseAddr, unsigned int numRxSer,
- unsigned int minWdPerSer);
- extern void McASPTxFmtMaskSet(unsigned int baseAddr, unsigned int mask);
- extern void McASPRxFmtMaskSet(unsigned int baseAddr, unsigned int mask);
- extern void McASPTxFmtSet(unsigned int baseAddr, unsigned int formatVal);
- extern void McASPRxFmtSet(unsigned int baseAddr, unsigned int formatVal);
- extern void McASPTxFmtI2SSet(unsigned int baseAddr, unsigned int wordSize,
- unsigned int slotSize, unsigned int txMode);
- extern void McASPRxFmtI2SSet(unsigned int baseAddr, unsigned int wordSize,
- unsigned int slotSize, unsigned int rxMode);
- extern void McASPTxFrameSyncCfg(unsigned int baseAddr, unsigned int fsMode,
- unsigned int fsWidth, unsigned int fsSetting);
- extern void McASPRxFrameSyncCfg(unsigned int baseAddr, unsigned int fsMode,
- unsigned int fsWidth, unsigned int fsSetting);
- extern void McASPTxClkCfg(unsigned int baseAddr, unsigned int clkSrc,
- unsigned int mixClkDiv, unsigned int auxClkDiv);
- extern void McASPRxClkCfg(unsigned int baseAddr, unsigned int clkSrc,
- unsigned int mixClkDiv, unsigned int auxClkDiv);
- extern void McASPTxClkPolaritySet(unsigned int baseAddr, unsigned int polarity);
- extern void McASPRxClkPolaritySet(unsigned int baseAddr, unsigned int polarity);
- extern void McASPTxHFClkPolaritySet(unsigned int baseAddr,
- unsigned int polarity);
- extern void McASPRxHFClkPolaritySet(unsigned int baseAddr,
- unsigned int polarity);
- extern void McASPTxRxClkSyncEnable(unsigned int baseAddr);
- extern void McASPTxRxClkSyncDisable(unsigned int baseAddr);
- extern void McASPSerializerTxSet(unsigned int baseAddr, unsigned int serNum);
- extern void McASPSerializerRxSet(unsigned int baseAddr, unsigned int serNum);
- extern void McASPSerializerInactivate(unsigned int baseAddr,
- unsigned int serNum);
- extern void McASPPinDirOutputSet(unsigned int baseAddr, unsigned int pinMask);
- extern void McASPPinDirInputSet(unsigned int baseAddr, unsigned int pinMask);
- extern void McASPPinMcASPSet(unsigned int baseAddr, unsigned int pinMask);
- extern void McASPPinGPIOSet(unsigned int baseAddr, unsigned int pinMask);
- extern void McASPTxTimeSlotSet(unsigned int baseAddr, unsigned int slotMask);
- extern void McASPRxTimeSlotSet(unsigned int baseAddr, unsigned int slotMask);
- extern void McASPTxIntDisable(unsigned int baseAddr, unsigned int intMask);
- extern void McASPRxIntDisable(unsigned int baseAddr, unsigned int intMask);
- extern void McASPTxIntEnable(unsigned int baseAddr, unsigned int intMask);
- extern void McASPRxIntEnable(unsigned int baseAddr, unsigned int intMask);
- extern void McASPTxClkStart(unsigned int baseAddr, unsigned int clkSrc);
- extern void McASPRxClkStart(unsigned int baseAddr, unsigned int clkSrc);
- extern void McASPTxSerActivate(unsigned int baseAddr);
- extern void McASPRxSerActivate(unsigned int baseAddr);
- extern void McASPTxEnable(unsigned int baseAddr);
- extern void McASPRxEnable(unsigned int baseAddr);
- extern void McASPAMuteEnable(unsigned int baseAddr, unsigned int errFlags,
- unsigned int pinState);
- extern void McASPAMuteDisable(unsigned int baseAddr);
- extern void McASPAMUTEINActivate(unsigned int baseAddr, unsigned int polarity);
- extern void McASPTxClkCheckConfig(unsigned int baseAddr, unsigned int clkDiv,
- unsigned char boundMin,
- unsigned char boundMax);
- extern void McASPRxClkCheckConfig(unsigned int baseAddr, unsigned int clkDiv,
- unsigned char boundMin,
- unsigned char boundMax);
- extern void McASPTxBufWrite(unsigned int baseAddr, unsigned int serNum,
- unsigned int data);
- extern unsigned int McASPRxBufRead(unsigned int baseAddr, unsigned int serNum);
- extern unsigned int McASPTxStatusGet(unsigned int baseAddr);
- extern unsigned int McASPRxStatusGet(unsigned int baseAddr);
- extern void McASPContextSave(unsigned int baseAddrCtrl, unsigned int baseAddrFifo,
- MCASPCONTEXT *contextPtr, unsigned int sectFlag);
- extern void McASPContextRestore(unsigned int baseAddrCtrl, unsigned int baseAddrFifo,
- MCASPCONTEXT *contextPtr, unsigned int sectFlag);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __MCASP_H__ */
|