AM273x MCU+ SDK  08.02.00

Introduction

This module contains APIs to program and use the MCASP module. The APIs can be used by other drivers to get access to MCASP and also by application to initiate data transfer operation.

Files

file  mcasp/v0/mcasp.h
 MCASP Driver API/interface file.
 

Data Structures

struct  MCASP_Transaction
 Data structure used with transfer call. More...
 
struct  MCASP_ClockConfig
 Hardware setup data clock structure. More...
 
struct  MCASP_GlobalConfig
 Hardware setup global structure. More...
 
struct  MCASP_FifoConfig
 Hardware fifo setup structure. More...
 
struct  MCASP_DataConfig
 Hardware setup data structure. More...
 
struct  MCASP_HwConfig
 Hardware setup structure. More...
 
struct  MCASP_OpenParams
 MCASP Parameters. More...
 
struct  MCASP_HwIntConfig
 McASP Interrupt structures. More...
 
struct  MCASP_TransferObj
 McASP Transfer Data structure stored in driver object. More...
 
struct  MCASP_ChannelObj
 McASP Channel Object. More...
 
struct  MCASP_Object
 MCASP driver object. More...
 
struct  MCASP_Attrs
 MCASP instance attributes - used during init time. More...
 
struct  MCASP_Config
 

Functions

void MCASP_init (void)
 This function initializes the MCASP module. More...
 
void MCASP_deinit (void)
 This function de-initializes the MCASP module. More...
 
static void MCASP_openParamsInit (MCASP_OpenParams *openPrms)
 Function to initialize the MCASP_OpenParams struct to its defaults. More...
 
MCASP_Handle MCASP_open (uint32_t index, const MCASP_OpenParams *openParams)
 This function opens a given MCASP peripheral. More...
 
void MCASP_close (MCASP_Handle handle)
 Function to close a MCASP peripheral specified by the MCASP handle. More...
 
MCASP_Handle MCASP_getHandle (uint32_t index)
 This function returns the handle of an open MCASP Instance from the instance index. More...
 
int32_t MCASP_transfer (MCASP_Handle handle, MCASP_Transaction *txn)
 Generic transfer function using McASP. More...
 

Typedefs

typedef void * MCASP_Handle
 A handle that is returned from a MCASP_open() call. More...
 
typedef void(* MCASP_CallbackFxn) (MCASP_Handle handle, MCASP_Transaction *transaction)
 The definition of a callback function used by the MCASP driver when used in Callback Mode. More...
 

Macros

#define MCASP_GBLCTL_TIMEOUT   (30000U)
 The time to try (in Msec) before the GBLCTL register setting timeouts if the setting/resetting is done in a context other than a task this will be used as a retry count rather than the MSec timeout. More...
 
#define MCASP_RESET   ((uint32_t) 0x00U)
 McASP macros for enable/reset. More...
 
#define MCASP_ENABLE   ((uint32_t) 0x01U)
 
#define MCASP_DISABLE   ((uint32_t) 0x00U)
 
#define MCASP_REG_OFFSET   ((uint32_t)0x4U)
 

Transfer Status Code

Status codes that are set by the MCASP driver

#define MCASP_TRANSFER_STATUS_COMPLETED   (0U)
 I/O completed successfully. More...
 
#define MCASP_TRANSFER_STATUS_STARTED   (1U)
 I/O queued and pending. More...
 
#define MCASP_TRANSFER_STATUS_CANCELLED   (2U)
 I/O cancelled. Returned by incomplete read or write requests. More...
 
#define MCASP_TRANSFER_STATUS_FAILED   (3U)
 Generic failure condition. More...
 
#define MCASP_TRANSFER_STATUS_TIMEOUT   (4U)
 I/O timeout occurred. More...
 

McASP Transfer Mode

#define MCASP_DRIVER_MODE_POLLING   (0U)
 MCASP read/write APIs blocks execution. This mode can only be used when called within a Task context. More...
 
#define MCASP_DRIVER_MODE_INTERRUPT   (1U)
 MCASP read/write APIs does not block code execution and will call a MCASP_CallbackFxn. This mode can be used in a Task, Swi, or Hwi context. More...
 
#define MCASP_DRIVER_MODE_DMA   (2U)
 MCASP read/write APIs does not block code execution and will use DMA for transfers. More...
 

McASP Operating Mode

OPerating Modes that are supported by the MCASP driver

#define MCASP_OPMODE_MASTER   (0U)
 I/O completed successfully. More...
 
#define MCASP_OPMODE_SLAVE   (1U)
 I/O queued and pending. More...
 

MCASP Channel Direction

the channel modes supported by Mcasp

#define MCASP_CHANNEL_INPUT   (0x0001U)
 MCASP Channel will receive data. More...
 
#define MCASP_CHANNEL_OUTPUT   (0x0002U)
 MCASP Channel will transmit data. More...
 
#define MCASP_CHANNEL_INOUT   (MCASP_CHANNEL_INPUT | MCASP_CHANNEL_OUTPUT)
 McASP channel transmits & recieves data. More...
 

MCASP Driver State

Mcasp driver state enums used to track the driver state

#define MCASP_DRIVER_STATE_DELETED   (0U)
 
#define MCASP_DRIVER_STATE_CREATED   (1U)
 
#define MCASP_DRIVER_STATE_INITIALIZED   (2U)
 
#define MCASP_DRIVER_STATE_OPENED   (3U)
 
#define MCASP_DRIVER_STATE_CLOSED   (4U)
 
#define MCASP_DRIVER_STATE_DEINITIALIZED   (5U)
 
#define MCASP_DRIVER_STATE_POWERED_DOWN   (6U)
 
#define MCASP_DRIVER_STATE_PWRM_SUSPEND   (7U)
 

MCASP Serializer Status

Enumeration for serializer status

#define MCASP_SERIALIZER_STATUS_FREE   (0U)
 
#define MCASP_SERIALIZER_STATUS_XMT   (1U)
 
#define MCASP_SERIALIZER_STATUS_RCV   (2U)
 

MCASP Channel Mode

Enumeration for channel mode

#define MCASP_CHANNEL_MODE_FREE   (0U)
 
#define MCASP_CHANNEL_MODE_XMT_DIT   (1U)
 
#define MCASP_CHANNEL_MODE_XMT_TDM   (2U)
 
#define MCASP_CHANNEL_MODE_RCV   (3U)
 

MCASP Word Select

Enumerated constant for selecting MSB/LSB word in the slot bits

#define MCASP_WORD_SELECT_LSW   (0U)
 
#define MCASP_WORD_SELECT_MSW   (1U)
 

Transmit State for McASP transfer

Enumeration for McASP transmit state

#define MCASP_TRANSMIT_STATE_TX_RESET   (0U)
 
#define MCASP_TRANSMIT_STATE_TX_FLUSH   (1U)
 
#define MCASP_TRANSMIT_STATE_LOAD_INIT_BUFFER   (2U)
 
#define MCASP_TRANSMIT_STATE_RELEASE_FROM_RESET   (3U)
 
#define MCASP_TRANSMIT_STATE_WAIT_EVENT   (4U)
 
#define MCASP_TRANSMIT_STATE_PROCESS_EVENT   (5U)
 
#define MCASP_TRANSMIT_STATE_LOAD_ACTIVE_BUFFER   (6U)
 
#define MCASP_TRANSMIT_STATE_DONE   (7U)
 
#define MCASP_TRANSMIT_STATE_SPIN_IDLE   (8U)
 
#define MCASP_TRANSMIT_STATE_ERROR   (9U)
 
#define MCASP_TRANSMIT_STATE_EXIT   (10U)
 

Receive State for McASP transfer

Enumeration for McASP receive state

#define MCASP_RECEIVE_STATE_RX_RESET   (0U)
 
#define MCASP_RECEIVE_STATE_RX_FLUSH   (1U)
 
#define MCASP_RECEIVE_STATE_RELEASE_FROM_RESET   (2U)
 
#define MCASP_RECEIVE_STATE_WAIT_EVENT   (3U)
 
#define MCASP_RECEIVE_STATE_PROCESS_EVENT   (4U)
 
#define MCASP_RECEIVE_STATE_DONE   (5U)
 
#define MCASP_RECEIVE_STATE_SPIN_IDLE   (6U)
 
#define MCASP_RECEIVE_STATE_ERROR   (7U)
 
#define MCASP_RECEIVE_STATE_EXIT   (8U)
 

Macro Definition Documentation

◆ MCASP_GBLCTL_TIMEOUT

#define MCASP_GBLCTL_TIMEOUT   (30000U)

The time to try (in Msec) before the GBLCTL register setting timeouts if the setting/resetting is done in a context other than a task this will be used as a retry count rather than the MSec timeout.

◆ MCASP_RESET

#define MCASP_RESET   ((uint32_t) 0x00U)

McASP macros for enable/reset.

◆ MCASP_ENABLE

#define MCASP_ENABLE   ((uint32_t) 0x01U)

◆ MCASP_DISABLE

#define MCASP_DISABLE   ((uint32_t) 0x00U)

◆ MCASP_REG_OFFSET

#define MCASP_REG_OFFSET   ((uint32_t)0x4U)

◆ MCASP_TRANSFER_STATUS_COMPLETED

#define MCASP_TRANSFER_STATUS_COMPLETED   (0U)

I/O completed successfully.

◆ MCASP_TRANSFER_STATUS_STARTED

#define MCASP_TRANSFER_STATUS_STARTED   (1U)

I/O queued and pending.

◆ MCASP_TRANSFER_STATUS_CANCELLED

#define MCASP_TRANSFER_STATUS_CANCELLED   (2U)

I/O cancelled. Returned by incomplete read or write requests.

◆ MCASP_TRANSFER_STATUS_FAILED

#define MCASP_TRANSFER_STATUS_FAILED   (3U)

Generic failure condition.

◆ MCASP_TRANSFER_STATUS_TIMEOUT

#define MCASP_TRANSFER_STATUS_TIMEOUT   (4U)

I/O timeout occurred.

◆ MCASP_DRIVER_MODE_POLLING

#define MCASP_DRIVER_MODE_POLLING   (0U)

MCASP read/write APIs blocks execution. This mode can only be used when called within a Task context.

◆ MCASP_DRIVER_MODE_INTERRUPT

#define MCASP_DRIVER_MODE_INTERRUPT   (1U)

MCASP read/write APIs does not block code execution and will call a MCASP_CallbackFxn. This mode can be used in a Task, Swi, or Hwi context.

◆ MCASP_DRIVER_MODE_DMA

#define MCASP_DRIVER_MODE_DMA   (2U)

MCASP read/write APIs does not block code execution and will use DMA for transfers.

◆ MCASP_OPMODE_MASTER

#define MCASP_OPMODE_MASTER   (0U)

I/O completed successfully.

◆ MCASP_OPMODE_SLAVE

#define MCASP_OPMODE_SLAVE   (1U)

I/O queued and pending.

◆ MCASP_CHANNEL_INPUT

#define MCASP_CHANNEL_INPUT   (0x0001U)

MCASP Channel will receive data.

◆ MCASP_CHANNEL_OUTPUT

#define MCASP_CHANNEL_OUTPUT   (0x0002U)

MCASP Channel will transmit data.

◆ MCASP_CHANNEL_INOUT

#define MCASP_CHANNEL_INOUT   (MCASP_CHANNEL_INPUT | MCASP_CHANNEL_OUTPUT)

McASP channel transmits & recieves data.

◆ MCASP_DRIVER_STATE_DELETED

#define MCASP_DRIVER_STATE_DELETED   (0U)

◆ MCASP_DRIVER_STATE_CREATED

#define MCASP_DRIVER_STATE_CREATED   (1U)

◆ MCASP_DRIVER_STATE_INITIALIZED

#define MCASP_DRIVER_STATE_INITIALIZED   (2U)

◆ MCASP_DRIVER_STATE_OPENED

#define MCASP_DRIVER_STATE_OPENED   (3U)

◆ MCASP_DRIVER_STATE_CLOSED

#define MCASP_DRIVER_STATE_CLOSED   (4U)

◆ MCASP_DRIVER_STATE_DEINITIALIZED

#define MCASP_DRIVER_STATE_DEINITIALIZED   (5U)

◆ MCASP_DRIVER_STATE_POWERED_DOWN

#define MCASP_DRIVER_STATE_POWERED_DOWN   (6U)

◆ MCASP_DRIVER_STATE_PWRM_SUSPEND

#define MCASP_DRIVER_STATE_PWRM_SUSPEND   (7U)

◆ MCASP_SERIALIZER_STATUS_FREE

#define MCASP_SERIALIZER_STATUS_FREE   (0U)

◆ MCASP_SERIALIZER_STATUS_XMT

#define MCASP_SERIALIZER_STATUS_XMT   (1U)

◆ MCASP_SERIALIZER_STATUS_RCV

#define MCASP_SERIALIZER_STATUS_RCV   (2U)

◆ MCASP_CHANNEL_MODE_FREE

#define MCASP_CHANNEL_MODE_FREE   (0U)

◆ MCASP_CHANNEL_MODE_XMT_DIT

#define MCASP_CHANNEL_MODE_XMT_DIT   (1U)

◆ MCASP_CHANNEL_MODE_XMT_TDM

#define MCASP_CHANNEL_MODE_XMT_TDM   (2U)

◆ MCASP_CHANNEL_MODE_RCV

#define MCASP_CHANNEL_MODE_RCV   (3U)

◆ MCASP_WORD_SELECT_LSW

#define MCASP_WORD_SELECT_LSW   (0U)

◆ MCASP_WORD_SELECT_MSW

#define MCASP_WORD_SELECT_MSW   (1U)

◆ MCASP_TRANSMIT_STATE_TX_RESET

#define MCASP_TRANSMIT_STATE_TX_RESET   (0U)

◆ MCASP_TRANSMIT_STATE_TX_FLUSH

#define MCASP_TRANSMIT_STATE_TX_FLUSH   (1U)

◆ MCASP_TRANSMIT_STATE_LOAD_INIT_BUFFER

#define MCASP_TRANSMIT_STATE_LOAD_INIT_BUFFER   (2U)

◆ MCASP_TRANSMIT_STATE_RELEASE_FROM_RESET

#define MCASP_TRANSMIT_STATE_RELEASE_FROM_RESET   (3U)

◆ MCASP_TRANSMIT_STATE_WAIT_EVENT

#define MCASP_TRANSMIT_STATE_WAIT_EVENT   (4U)

◆ MCASP_TRANSMIT_STATE_PROCESS_EVENT

#define MCASP_TRANSMIT_STATE_PROCESS_EVENT   (5U)

◆ MCASP_TRANSMIT_STATE_LOAD_ACTIVE_BUFFER

#define MCASP_TRANSMIT_STATE_LOAD_ACTIVE_BUFFER   (6U)

◆ MCASP_TRANSMIT_STATE_DONE

#define MCASP_TRANSMIT_STATE_DONE   (7U)

◆ MCASP_TRANSMIT_STATE_SPIN_IDLE

#define MCASP_TRANSMIT_STATE_SPIN_IDLE   (8U)

◆ MCASP_TRANSMIT_STATE_ERROR

#define MCASP_TRANSMIT_STATE_ERROR   (9U)

◆ MCASP_TRANSMIT_STATE_EXIT

#define MCASP_TRANSMIT_STATE_EXIT   (10U)

◆ MCASP_RECEIVE_STATE_RX_RESET

#define MCASP_RECEIVE_STATE_RX_RESET   (0U)

◆ MCASP_RECEIVE_STATE_RX_FLUSH

#define MCASP_RECEIVE_STATE_RX_FLUSH   (1U)

◆ MCASP_RECEIVE_STATE_RELEASE_FROM_RESET

#define MCASP_RECEIVE_STATE_RELEASE_FROM_RESET   (2U)

◆ MCASP_RECEIVE_STATE_WAIT_EVENT

#define MCASP_RECEIVE_STATE_WAIT_EVENT   (3U)

◆ MCASP_RECEIVE_STATE_PROCESS_EVENT

#define MCASP_RECEIVE_STATE_PROCESS_EVENT   (4U)

◆ MCASP_RECEIVE_STATE_DONE

#define MCASP_RECEIVE_STATE_DONE   (5U)

◆ MCASP_RECEIVE_STATE_SPIN_IDLE

#define MCASP_RECEIVE_STATE_SPIN_IDLE   (6U)

◆ MCASP_RECEIVE_STATE_ERROR

#define MCASP_RECEIVE_STATE_ERROR   (7U)

◆ MCASP_RECEIVE_STATE_EXIT

#define MCASP_RECEIVE_STATE_EXIT   (8U)

Typedef Documentation

◆ MCASP_Handle

typedef void* MCASP_Handle

A handle that is returned from a MCASP_open() call.

◆ MCASP_CallbackFxn

typedef void(* MCASP_CallbackFxn) (MCASP_Handle handle, MCASP_Transaction *transaction)

The definition of a callback function used by the MCASP driver when used in Callback Mode.

Parameters
handleMCASP_Handle
transaction*Pointer to a MCASP_Transaction

Function Documentation

◆ MCASP_init()

void MCASP_init ( void  )

This function initializes the MCASP module.

◆ MCASP_deinit()

void MCASP_deinit ( void  )

This function de-initializes the MCASP module.

◆ MCASP_openParamsInit()

static void MCASP_openParamsInit ( MCASP_OpenParams openPrms)
inlinestatic

Function to initialize the MCASP_OpenParams struct to its defaults.

Parameters
openPrmsPointer to MCASP_OpenParams structure for initialization

◆ MCASP_open()

MCASP_Handle MCASP_open ( uint32_t  index,
const MCASP_OpenParams openParams 
)

This function opens a given MCASP peripheral.

Precondition
MCASP controller has been initialized using MCASP_init()
Parameters
indexIndex of config to use in the MCASP_Config array
openParamsPointer to parameters to open the driver with
Returns
A MCASP_Handle on success or a NULL on an error or if it has been opened already
See also
MCASP_init()
MCASP_close()

◆ MCASP_close()

void MCASP_close ( MCASP_Handle  handle)

Function to close a MCASP peripheral specified by the MCASP handle.

Precondition
MCASP_open() has to be called first
Parameters
handleMCASP_Handle returned from MCASP_open()
See also
MCASP_open()

◆ MCASP_getHandle()

MCASP_Handle MCASP_getHandle ( uint32_t  index)

This function returns the handle of an open MCASP Instance from the instance index.

Precondition
MCASP controller has been opened using MCASP_open()
Parameters
indexIndex of config to use in the MCASP_Config array
Returns
A MCASP_Handle if it has been opened already or NULL otherwise
See also
MCASP_init()
MCASP_open()

◆ MCASP_transfer()

int32_t MCASP_transfer ( MCASP_Handle  handle,
MCASP_Transaction txn 
)

Generic transfer function using McASP.

Parameters
handleMCASP_Handle
txn*Pointer to a MCASP_Transaction
Returns
Success/Failure for configuration

Variable Documentation

◆ gMcaspConfig

MCASP_Config gMcaspConfig[]
extern

Externally defined driver configuration array.

◆ gMcaspConfigNum

uint32_t gMcaspConfigNum
extern

Externally defined driver configuration array size.