 |
AM62L FreeRTOS SDK
11.00.00
|
|
Go to the documentation of this file.
63 #include <drivers/hw_include/cslr_mcasp.h>
66 #include <drivers/mcasp/v1/mcasp_drv_configs/mcasp_drv_config.h>
68 #if defined (SOC_AM62AX)
69 #include <drivers/mcasp/v1/soc/am62ax/mcasp_soc.h>
72 #if defined (SOC_AM62DX)
73 #include <drivers/mcasp/v1/soc/am62dx/mcasp_soc.h>
76 #if defined (SOC_AM62LX)
77 #include <drivers/mcasp/v1/soc/am62lx/mcasp_soc.h>
80 #if defined (SOC_AM62PX)
81 #include <drivers/mcasp/v1/soc/am62px/mcasp_soc.h>
84 #if defined (SOC_AM62X)
85 #include <drivers/mcasp/v1/soc/am62x/mcasp_soc.h>
88 #if defined (SOC_AM275X)
89 #include <drivers/mcasp/v1/soc/am275x/mcasp_soc.h>
107 #define MCASP_GBLCTL_TIMEOUT (30000U)
113 #define MCASP_DATA_TIMEOUT (30000U)
116 #define MCASP_RESET ((uint32_t) 0x00U)
117 #define MCASP_ENABLE ((uint32_t) 0x01U)
118 #define MCASP_DISABLE ((uint32_t) 0x00U)
123 #define MCASP_REG_OFFSET ((uint32_t)0x4U)
134 #define MCASP_TRANSFER_STATUS_COMPLETED (0U)
136 #define MCASP_TRANSFER_STATUS_STARTED (1U)
138 #define MCASP_TRANSFER_STATUS_CANCELLED (2U)
140 #define MCASP_TRANSFER_STATUS_FAILED (3U)
142 #define MCASP_TRANSFER_STATUS_TIMEOUT (4U)
155 #define MCASP_TRANSFER_MODE_POLLING (0U)
161 #define MCASP_TRANSFER_MODE_INTERRUPT (1U)
166 #define MCASP_TRANSFER_MODE_DMA (2U)
178 #define MCASP_OPMODE_MASTER (0U)
180 #define MCASP_OPMODE_SLAVE (1U)
192 #define MCASP_CHANNEL_INPUT (0x0001U)
194 #define MCASP_CHANNEL_OUTPUT (0x0002U)
196 #define MCASP_CHANNEL_INOUT (MCASP_CHANNEL_INPUT | MCASP_CHANNEL_OUTPUT)
207 #define MCASP_DRIVER_STATE_DELETED (0U)
208 #define MCASP_DRIVER_STATE_CREATED (1U)
209 #define MCASP_DRIVER_STATE_INITIALIZED (2U)
210 #define MCASP_DRIVER_STATE_OPENED (3U)
211 #define MCASP_DRIVER_STATE_CLOSED (4U)
212 #define MCASP_DRIVER_STATE_DEINITIALIZED (5U)
213 #define MCASP_DRIVER_STATE_POWERED_DOWN (6U)
214 #define MCASP_DRIVER_STATE_PWRM_SUSPEND (7U)
225 #define MCASP_SERIALIZER_STATUS_FREE (0U)
226 #define MCASP_SERIALIZER_STATUS_XMT (1U)
227 #define MCASP_SERIALIZER_STATUS_RCV (2U)
238 #define MCASP_CHANNEL_MODE_FREE (0U)
239 #define MCASP_CHANNEL_MODE_XMT_DIT (1U)
240 #define MCASP_CHANNEL_MODE_XMT_TDM (2U)
241 #define MCASP_CHANNEL_MODE_RCV (3U)
252 #define MCASP_WORD_SELECT_LSW (0U)
253 #define MCASP_WORD_SELECT_MSW (1U)
270 #define MCASP_AUDBUFF_FORMAT_1SER_MULTISLOT_NON_INTERLEAVED (0U)
276 #define MCASP_AUDBUFF_FORMAT_1SER_MULTISLOT_INTERLEAVED (1U)
283 #define MCASP_AUDBUFF_FORMAT_MULTISER_MULTISLOT_SEMI_INTERLEAVED_1 (2U)
290 #define MCASP_AUDBUFF_FORMAT_MULTISER_MULTISLOT_SEMI_INTERLEAVED_2 (3U)
301 #define MCASP_TRANSMIT_STATE_TX_RESET (0U)
302 #define MCASP_TRANSMIT_STATE_TX_FLUSH (1U)
303 #define MCASP_TRANSMIT_STATE_LOAD_INIT_BUFFER (2U)
304 #define MCASP_TRANSMIT_STATE_RELEASE_FROM_RESET (3U)
305 #define MCASP_TRANSMIT_STATE_WAIT_EVENT (4U)
306 #define MCASP_TRANSMIT_STATE_PROCESS_EVENT (5U)
307 #define MCASP_TRANSMIT_STATE_LOAD_ACTIVE_BUFFER (6U)
308 #define MCASP_TRANSMIT_STATE_DONE (7U)
309 #define MCASP_TRANSMIT_STATE_SPIN_IDLE (8U)
310 #define MCASP_TRANSMIT_STATE_ERROR (9U)
311 #define MCASP_TRANSMIT_STATE_EXIT (10U)
322 #define MCASP_RECEIVE_STATE_RX_RESET (0U)
323 #define MCASP_RECEIVE_STATE_RX_FLUSH (1U)
324 #define MCASP_RECEIVE_STATE_RELEASE_FROM_RESET (2U)
325 #define MCASP_RECEIVE_STATE_WAIT_EVENT (3U)
326 #define MCASP_RECEIVE_STATE_PROCESS_EVENT (4U)
327 #define MCASP_RECEIVE_STATE_DONE (5U)
328 #define MCASP_RECEIVE_STATE_SPIN_IDLE (6U)
329 #define MCASP_RECEIVE_STATE_ERROR (7U)
330 #define MCASP_RECEIVE_STATE_EXIT (8U)
333 #define MCASP_DIR_OUT (uint32_t) 0
334 #define MCASP_DIR_IN (uint32_t) 1
336 #define MCASP_TRPD_INVALID_PTR (0xFFFFFFFF)
413 uint32_t serSetup[16u];
466 typedef struct MCASP_DMAChConfig_s
717 uint16_t serStatus[16];
941 if (openPrms !=
NULL)
uint32_t amute
Definition: mcasp/v1/mcasp.h:411
MCASP_Transaction txnLoopjob
Definition: mcasp/v1/mcasp.h:601
uint32_t txLoopjobEnable
Definition: mcasp/v1/mcasp.h:532
const MCASP_Attrs * attrs
Definition: mcasp/v1/mcasp.h:737
void * cqRxEvtHandle
Definition: mcasp/v1/mcasp.h:474
void * args
Definition: mcasp/v1/mcasp.h:362
uint32_t aClk
Definition: mcasp/v1/mcasp.h:384
MCASP_Transaction * MCASP_withdrawRx(MCASP_Handle handle)
Function to withdraw the buffer submitted to McASP driver for reception. This should be called after ...
void * mcaspDmaDrvObj
Definition: mcasp/v1/mcasp.h:548
MCASP driver object.
Definition: mcasp/v1/mcasp.h:628
void MCASP_close(MCASP_Handle handle)
Function to close a MCASP peripheral specified by the MCASP handle.
int32_t MCASP_setTxTxnCount(MCASP_Handle handle, uint32_t txnCount)
Function to set the Tx transaction count.
int32_t MCASP_submitRx(MCASP_Handle handle, MCASP_Transaction *txn)
Function to submit the buffer to McASP driver for reception. Transaction object is held by the driver...
Opaque QueueP element.
Definition: QueueP.h:77
uint32_t tdm
Definition: mcasp/v1/mcasp.h:439
void * rxChHandle
Definition: mcasp/v1/mcasp.h:470
uint32_t pfunc
Definition: mcasp/v1/mcasp.h:401
uint8_t txSlotCount
Definition: mcasp/v1/mcasp.h:524
void * txCbParams
Definition: mcasp/v1/mcasp.h:486
uint8_t frameIndex
Definition: mcasp/v1/mcasp.h:588
MCASP_Handle handle
Definition: mcasp/v1/mcasp.h:632
MCASP_Config gMcaspConfig[]
Externally defined driver configuration array.
uint8_t skipDriverOpen
Definition: mcasp/v1/mcasp.h:551
uint8_t slotCount
Definition: mcasp/v1/mcasp.h:582
uint16_t icnt3
Definition: mcasp/v1/mcasp.h:620
void * rxCbParams
Definition: mcasp/v1/mcasp.h:488
uint8_t txSerUsedCount
Definition: mcasp/v1/mcasp.h:516
uint32_t txnByteCnt
Definition: mcasp/v1/mcasp.h:612
int32_t status
Definition: mcasp/v1/mcasp.h:578
MCASP_Transaction * MCASP_withdrawTx(MCASP_Handle handle)
Function to withdraw the buffer submitted to McASP driver for transmission. This should be called aft...
uint8_t * txSerUsedArray
Definition: mcasp/v1/mcasp.h:520
HwiP_Object hwiObjTx
Definition: mcasp/v1/mcasp.h:666
#define NULL
Define NULL if not defined.
Definition: csl_types.h:100
uint32_t txLoopjobBufLength
Definition: mcasp/v1/mcasp.h:536
void * txChHandle
Definition: mcasp/v1/mcasp.h:468
uint32_t isTxStarted
Definition: mcasp/v1/mcasp.h:658
SemaphoreP_Object transferSemObj
Definition: mcasp/v1/mcasp.h:664
SemaphoreP_Object lockObj
Definition: mcasp/v1/mcasp.h:662
uint32_t txSlotSize
Definition: mcasp/v1/mcasp.h:725
uint8_t frameCount
Definition: mcasp/v1/mcasp.h:586
void * mcaspPktDmaHandle
Definition: mcasp/v1/mcasp.h:642
MCASP_DmaChConfig * dmaChCfg
Definition: mcasp/v1/mcasp.h:545
MCASP_RxCallbackFxn rxCallbackFxn
Definition: mcasp/v1/mcasp.h:530
uint32_t rxLoopjobBufLength
Definition: mcasp/v1/mcasp.h:542
uint16_t icnt1
Definition: mcasp/v1/mcasp.h:616
QueueP_Handle reqQueueHandleTx
Definition: mcasp/v1/mcasp.h:673
uint32_t state
Definition: mcasp/v1/mcasp.h:576
Hardware fifo setup structure.
Definition: mcasp/v1/mcasp.h:421
MCASP_ClockConfig clk
Definition: mcasp/v1/mcasp.h:447
uint32_t isOpen
Definition: mcasp/v1/mcasp.h:494
uint8_t txFifoWaterLevel
Definition: mcasp/v1/mcasp.h:729
MCASP_Handle MCASP_open(uint32_t index, const MCASP_OpenParams *openParams)
This function opens a given MCASP peripheral.
uint16_t numOfSerializers
Definition: mcasp/v1/mcasp.h:715
MCASP_HwConfig hwCfg
Definition: mcasp/v1/mcasp.h:719
uint32_t fifoStatus
Definition: mcasp/v1/mcasp.h:424
uint32_t dlbCtl
Definition: mcasp/v1/mcasp.h:409
Hardware setup data structure.
Definition: mcasp/v1/mcasp.h:432
void * txTrpdMem
Definition: mcasp/v1/mcasp.h:476
uint8_t serCount
Definition: mcasp/v1/mcasp.h:590
uint32_t lastPlayed
Definition: mcasp/v1/mcasp.h:681
uint8_t rxFifoEnable
Definition: mcasp/v1/mcasp.h:692
MCASP_TxCallbackFxn cbFxn
Definition: mcasp/v1/mcasp.h:598
Data structure used with transfer call.
Definition: mcasp/v1/mcasp.h:347
This file contains the Register Desciptions for CSL types.
void * cqTxEvtHandle
Definition: mcasp/v1/mcasp.h:472
MCASP Parameters.
Definition: mcasp/v1/mcasp.h:509
int32_t MCASP_stopTransferRx(MCASP_Handle handle)
Function to stop McASP reception.
uint32_t transferMode
Definition: mcasp/v1/mcasp.h:510
MCASP_TransferObj XmtObj
Definition: mcasp/v1/mcasp.h:648
MCASP instance attributes - used during init time.
Definition: mcasp/v1/mcasp.h:703
uint16_t evntNum
Definition: mcasp/v1/mcasp.h:562
uint32_t count
Definition: mcasp/v1/mcasp.h:354
Hardware setup global structure.
Definition: mcasp/v1/mcasp.h:400
uint8_t intrPriority
Definition: mcasp/v1/mcasp.h:564
MCASP_DataConfig tx
Definition: mcasp/v1/mcasp.h:462
Definition: mcasp/v1/mcasp.h:736
void(* MCASP_RxCallbackFxn)(MCASP_Handle handle, MCASP_Transaction *transaction)
Definition: mcasp/v1/mcasp.h:376
void * rxRingMem
Definition: mcasp/v1/mcasp.h:484
uint32_t lastRecQueued
Definition: mcasp/v1/mcasp.h:687
void MCASP_deinit(void)
This function de-initializes the MCASP module.
MCASP_Transaction * transaction
Definition: mcasp/v1/mcasp.h:596
int32_t MCASP_startTransferTx(MCASP_Handle handle)
Function to start McASP transmission.
uint32_t gMcaspConfigNum
Externally defined driver configuration array size.
uint8_t bufferFormat
Definition: mcasp/v1/mcasp.h:594
uint32_t count
Definition: mcasp/v1/mcasp.h:580
void * txRingMem
Definition: mcasp/v1/mcasp.h:482
void * mcaspDmaHandle
Definition: mcasp/v1/mcasp.h:640
uint8_t rxBufferFormat
Definition: mcasp/v1/mcasp.h:514
uint32_t ditCtl
Definition: mcasp/v1/mcasp.h:407
uint32_t evtCtl
Definition: mcasp/v1/mcasp.h:445
MCASP_TransferObj RcvObj
Definition: mcasp/v1/mcasp.h:650
uint32_t rxSlotSize
Definition: mcasp/v1/mcasp.h:727
uint32_t loopjobEnable
Definition: mcasp/v1/mcasp.h:603
MCASP_DataConfig rx
Definition: mcasp/v1/mcasp.h:460
uint32_t hiClk
Definition: mcasp/v1/mcasp.h:386
MCASP_TxCallbackFxn txCallbackFxn
Definition: mcasp/v1/mcasp.h:528
uint32_t trpdMemSize
Definition: mcasp/v1/mcasp.h:480
int32_t MCASP_setRxTxnCount(MCASP_Handle handle, uint32_t txnCount)
Function to set the Rx transaction count.
QueueP_Elem qElem
Definition: mcasp/v1/mcasp.h:348
uintptr_t baseAddr
Definition: mcasp/v1/mcasp.h:709
int32_t status
Definition: mcasp/v1/mcasp.h:360
uint8_t rxSlotCount
Definition: mcasp/v1/mcasp.h:526
Opaque task object used with the task APIs.
Definition: QueueP.h:92
Hardware setup data clock structure.
Definition: mcasp/v1/mcasp.h:383
uint32_t inProgress
Definition: mcasp/v1/mcasp.h:574
uint32_t gblCtl
Definition: mcasp/v1/mcasp.h:405
uint32_t frSyncCtl
Definition: mcasp/v1/mcasp.h:437
QueueP_Object completedQueueObjRx
Definition: mcasp/v1/mcasp.h:676
uintptr_t dataBaseAddr
Definition: mcasp/v1/mcasp.h:711
uint8_t isHClkExt
Definition: mcasp/v1/mcasp.h:390
uint32_t isOpen
Definition: mcasp/v1/mcasp.h:656
uint32_t intCtl
Definition: mcasp/v1/mcasp.h:441
void * QueueP_Handle
Opaque client reference to an instance of a QueueP.
Definition: QueueP.h:68
uint32_t txEvtNum
Definition: mcasp/v1/mcasp.h:492
uint32_t rxLoopjobEnable
Definition: mcasp/v1/mcasp.h:538
uint8_t txFifoEnable
Definition: mcasp/v1/mcasp.h:690
uint32_t stat
Definition: mcasp/v1/mcasp.h:443
static void MCASP_openParamsInit(MCASP_OpenParams *openPrms)
Function to initialize the MCASP_OpenParams struct to its defaults.
Definition: mcasp/v1/mcasp.h:939
MCASP_GlobalConfig gbl
Definition: mcasp/v1/mcasp.h:458
void * MCASP_Handle
A handle that is returned from a MCASP_open() call.
Definition: mcasp/v1/mcasp.h:101
QueueP_Handle completedQueueHandleRx
Definition: mcasp/v1/mcasp.h:678
uint32_t pdir
Definition: mcasp/v1/mcasp.h:403
uint16_t icnt2
Definition: mcasp/v1/mcasp.h:618
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:93
QueueP_Object reqQueueObjTx
Definition: mcasp/v1/mcasp.h:671
uint32_t transferMode
Definition: mcasp/v1/mcasp.h:638
UDMA Driver API/interface file.
uint32_t intrNum
Definition: mcasp/v1/mcasp.h:560
McASP Interrupt structures.
Definition: mcasp/v1/mcasp.h:559
int32_t MCASP_startTransferRx(MCASP_Handle handle)
Function to start McASP reception.
uint32_t fmt
Definition: mcasp/v1/mcasp.h:435
void(* MCASP_TxCallbackFxn)(MCASP_Handle handle, MCASP_Transaction *transaction)
The definition of a callback function used by the MCASP driver when used in Callback Mode.
Definition: mcasp/v1/mcasp.h:373
McASP Transfer Data structure stored in driver object.
Definition: mcasp/v1/mcasp.h:573
MCASP_DmaChConfig * dmaChCfg
Definition: mcasp/v1/mcasp.h:645
MCASP_HwIntConfig intCfgRx
Definition: mcasp/v1/mcasp.h:723
Opaque semaphore object used with the semaphore APIs.
Definition: SemaphoreP.h:59
uint32_t rxEvtNum
Definition: mcasp/v1/mcasp.h:490
MCASP_DmaIcnt rxDmaIcnt
Definition: mcasp/v1/mcasp.h:697
uint32_t clkChk
Definition: mcasp/v1/mcasp.h:388
MCASP_DmaIcnt txDmaIcnt
Definition: mcasp/v1/mcasp.h:695
uint32_t lastFilled
Definition: mcasp/v1/mcasp.h:683
uint8_t rxSerUsedCount
Definition: mcasp/v1/mcasp.h:518
uint8_t isSynchronous
Definition: mcasp/v1/mcasp.h:713
MCASP_HwIntConfig intCfgTx
Definition: mcasp/v1/mcasp.h:721
uint16_t icnt0
Definition: mcasp/v1/mcasp.h:614
uint32_t instNum
Definition: mcasp/v1/mcasp.h:707
MCASP_Handle MCASP_getHandle(uint32_t index)
This function returns the handle of an open MCASP Instance from the instance index.
uint8_t * serArray
Definition: mcasp/v1/mcasp.h:592
Definition: mcasp/v1/mcasp.h:609
uint32_t timeout
Definition: mcasp/v1/mcasp.h:358
uint8_t * rxLoopjobBuf
Definition: mcasp/v1/mcasp.h:540
MCASP_FifoConfig fifoCfg
Definition: mcasp/v1/mcasp.h:449
uint16_t instNum
Definition: mcasp/v1/mcasp.h:634
uint8_t slotIndex
Definition: mcasp/v1/mcasp.h:584
uint8_t initDone
Definition: mcasp/v1/mcasp.h:610
void * buf
Definition: mcasp/v1/mcasp.h:351
void * rxTrpdMem
Definition: mcasp/v1/mcasp.h:478
int32_t MCASP_submitTx(MCASP_Handle handle, MCASP_Transaction *txn)
Function to submit the buffer to McASP driver for transmission. Transaction object is held by the dri...
Definition: mcasp/v1/mcasp.h:467
HwiP_Object hwiObjRx
Definition: mcasp/v1/mcasp.h:668
uint32_t isRxStarted
Definition: mcasp/v1/mcasp.h:660
MCASP_Object * object
Definition: mcasp/v1/mcasp.h:739
uint32_t hClkExt
Definition: mcasp/v1/mcasp.h:392
uint8_t rxFifoWaterLevel
Definition: mcasp/v1/mcasp.h:731
void MCASP_init(void)
This function initializes the MCASP module.
uint32_t fifoCtl
Definition: mcasp/v1/mcasp.h:422
uint8_t * txLoopjobBuf
Definition: mcasp/v1/mcasp.h:534
Hardware setup structure.
Definition: mcasp/v1/mcasp.h:457
uint8_t * rxSerUsedArray
Definition: mcasp/v1/mcasp.h:522
uint32_t mask
Definition: mcasp/v1/mcasp.h:433
uint32_t drvState
Definition: mcasp/v1/mcasp.h:636
uint8_t txBufferFormat
Definition: mcasp/v1/mcasp.h:512
uint32_t lastReceived
Definition: mcasp/v1/mcasp.h:685
int32_t MCASP_stopTransferTx(MCASP_Handle handle)
Function to stop McASP transmission.