AM273x MCU+ SDK  08.02.00
mibspi/v0/mibspi.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
50 #ifndef MIBSPI_H_
51 #define MIBSPI_H_
52 
53 /* ========================================================================== */
54 /* Include Files */
55 /* ========================================================================== */
56 
57 #include <stdint.h>
58 #include <kernel/dpl/SystemP.h>
59 #include <kernel/dpl/SemaphoreP.h>
60 #include <kernel/dpl/HwiP.h>
61 #include <drivers/hw_include/csl_types.h>
62 #include <drivers/hw_include/cslr_soc.h>
63 #include <drivers/hw_include/cslr_mibspi.h>
64 #include <drivers/hw_include/cslr.h>
65 #include <drivers/edma.h>
66 #include <drivers/mibspi/v0/soc/mibspi_soc.h>
67 
68 #ifdef __cplusplus
69 extern "C" {
70 #endif
71 
72 /* ========================================================================== */
73 /* Macros & Typedefs */
74 /* ========================================================================== */
75 
77 typedef void *MIBSPI_Handle;
78 
80 #define MIBSPI_RAM_BUFFER_MODE (7U)
81 
83 #define MIBSPI_SLAVEMODE_TRANS_GROUP (0U)
84 
86 #define MIBSPI_INT_LEVEL (1U)
87 
96 #define MIBSPI_FEATURE_PARALLEL_MODE_ENA (0x1U << 0)
97 
98 #define MIBSPI_FEATURE_PARALLEL_MODE_DIS (0U)
99 
100 #define MIBSPI_FEATURE_MODULO_MODE_ENA (0x1U << 1)
101 
102 #define MIBSPI_FEATURE_MODULO_MODE_DIS (0U)
103 
104 #define MIBSPI_FEATURE_SPIENA_PIN_ENA (0x1U << 2)
105 
106 #define MIBSPI_FEATURE_SPIENA_PIN_DIS (0U)
107 
114 #define MIBSPI_RAM_MAX_ELEM (128U)
115 
117 #define MIBSPI_SLAVE_MAX (3U)
118 
120 #define MIBSPI_DMA_REQLINE_MAX (3U)
121 
123 #define MIBSPI_MAX_CS (MIBSPI_SLAVE_MAX)
124 
126 #define MIBSPI_NUM_TRANS_GROUP (8U)
127 
129 #define MIBSPI_NUM_DMA_GROUP (8U)
130 
132 #define MIBSPI_CS_NONE (0xFFU)
133 
134 /* ========================================================================== */
135 /* enums */
136 /* ========================================================================== */
137 
140 {
147 };
148 
151  MIBSPI_XFER_ERR_NONE, /* No transfer error */
152  MIBSPI_XFER_ERR_RXOR, /* Receiver overrun error */
153  MIBSPI_XFER_ERR_BE, /* Bit error */
154  MIBSPI_XFER_ERR_TIMEOUT /* Transfer timeout error */
155 };
156 
158 typedef enum {
166 
168 typedef enum {
172 
174 typedef enum {
176  MIBSPI_LSB_FIRST = 1
178 
180 typedef enum {
185 
187 typedef enum {
189  MIBSPI_SLAVE = 1
191 
193 typedef enum {
199 
210 typedef enum {
222 
224 typedef enum {
229 
230 /* ========================================================================== */
231 /* Structure Declarations */
232 /* ========================================================================== */
233 
240 typedef struct
241 {
243  uint32_t dlenErr;
245  uint32_t timeout;
247  uint32_t parErr;
249  uint32_t desync;
251  uint32_t bitErr;
253  uint32_t rxOvrnErr;
255  uint32_t rxFull;
257  uint32_t txEmpty;
259  uint32_t tgComplete[MIBSPI_NUM_TRANS_GROUP];
261 
263 typedef struct
264 {
265  uint32_t dlenErr;
266  uint32_t timeout;
267  uint32_t parErr;
268  uint32_t desync;
269  uint32_t bitErr;
270  uint32_t rxOvrnErr;
271 } MIBSPI_Stats;
272 
279 typedef struct
280 {
281  uint8_t chipSelect;
282  uint8_t ramBufLen;
283  uint32_t dmaReqLine;
285 
294 typedef struct
295 {
296  uint32_t dmaReqLine;
297  uint8_t chipSelect;
299 
307 typedef struct
308 {
310  uint32_t rxDmaIntCnt;
312  uint32_t txDmaIntCnt;
314 
321 typedef struct
322 {
324  uint8_t txDmaReqLine;
326  uint8_t rxDmaReqLine;
328 
336 typedef struct
337 {
338  uintptr_t saddr;
339  uintptr_t daddr;
341 
352 typedef struct
353 {
354  uint16_t elemSize;
355  uint16_t elemCnt;
356  uint16_t frameCnt;
358 
366 typedef struct
367 {
371  uint32_t dmaReqLine;
373 
380 typedef struct
381 {
382  /* User input (write-only) fields */
383  uint32_t count;
384  void *txBuf;
385  void *rxBuf;
386  void *arg;
387  /* User output (read-only) fields */
389  uint8_t slaveIndex;
391 
399 typedef struct
400 {
401  volatile enum MIBSPI_EdmaCBFlag_e edmaCbCheck;
402  enum MIBSPI_XferErr_e transferErr;
406  volatile uint16_t remainSize;
407  volatile uint16_t dataLength;
408  volatile uint16_t dataSizeInBytes;
410 
418 typedef void (*MIBSPI_CallbackFxn) (MIBSPI_Handle handle,
419  MIBSPI_Transaction *transaction);
420 
421 /* ========================================================================== */
422 /* Internal/Private Structure Declarations */
423 /* ========================================================================== */
424 
433 typedef struct
434 {
435  uint32_t bitRate;
436  uint8_t numSlaves;
437  uint8_t t2cDelay;
438  uint8_t c2tDelay;
439  uint8_t wDelay;
442 
449 typedef struct
450 {
451  uint32_t edmaTcc;
453  uint32_t edmaChId;
455  uint32_t edmaParam;
458 
467 typedef struct
468 {
475  uint32_t dataSize;
477  union
478  {
483  }u;
489  uint8_t dmaEnable;
492  int32_t edmaInst;
493  void *dmaHandle;
494  uint8_t eccEnable;
495  uint8_t csHold;
496  uint16_t txDummyValue;
497  uint32_t transferTimeout;
501  uint16_t edmaLinkParamId;
507 
515 typedef struct
516 {
518  uint32_t mibspiInstId;
520  CSL_mss_spiRegs *ptrSpiRegBase;
522  CSL_mibspiRam *ptrMibSpiRam;
524  uint32_t clockSrcFreq;
526  uint32_t interrupt0Num;
528  uint32_t interrupt1Num;
530  uint32_t mibspiRamSize;
546  uint32_t featureBitMap;
548  uint32_t numDmaReqLines;
551 } MIBSPI_Attrs;
552 
560 typedef struct
561 {
571  uint8_t rambufStart[MIBSPI_SLAVE_MAX];
573  uint8_t rambufEnd[MIBSPI_SLAVE_MAX];
579  uint16_t rxScratchBuffer;
584  uint16_t txScratchBuffer;
585  /*
586  * State variables
587  */
588  uint32_t isOpen;
590  void *transferSem;
595  void *hwiHandle;
605  uint32_t edmaBaseAddr;
607  uint32_t edmaRegionId;
618 } MIBSPI_Object;
619 
627 typedef struct
628 {
633 } MIBSPI_Config;
634 
638 extern uint32_t gMibspiConfigNum;
639 
640 /* ========================================================================== */
641 /* Function Declarations */
642 /* ========================================================================== */
643 
648 void MIBSPI_init(void);
649 
653 void MIBSPI_deinit(void);
654 
672 MIBSPI_Handle MIBSPI_open(uint32_t index, MIBSPI_OpenParams *params);
673 
684 
715 int32_t MIBSPI_transfer(MIBSPI_Handle handle, MIBSPI_Transaction *transaction);
716 
737 
748  MIBSPI_LoopBackType loopbacktype);
749 
759 
771  uint8_t clockFmt);
772 
786  MIBSPI_Stats *ptrStats);
787 
795 void MIBSPI_dmaDoneCb(MIBSPI_Handle mibspiHandle);
796 
803 static inline void MIBSPI_Params_init(MIBSPI_OpenParams *openPrms);
804 
805 /* ========================================================================== */
806 /* Static Function Definitions */
807 /* ========================================================================== */
808 static inline void MIBSPI_Params_init(MIBSPI_OpenParams *openPrms)
809 {
810  if (openPrms != NULL)
811  {
812  openPrms->mode = MIBSPI_MASTER;
813  openPrms->dataSize = 16U;
814  openPrms->frameFormat = MIBSPI_POL0_PHA0;
816  openPrms->iCountSupport = FALSE;
817  openPrms->transferCallbackFxn = NULL;
818  openPrms->pinMode = MIBSPI_PINMODE_4PIN_CS;
819  openPrms->shiftFormat = MIBSPI_MSB_FIRST;
820  openPrms->dmaEnable = (uint8_t)1U;
821  openPrms->eccEnable = (uint8_t)0U;
822  openPrms->csHold = (uint8_t)0U;
823  openPrms->txDummyValue = (uint16_t)0xFFFFU;
824  openPrms->transferTimeout = 0xFFFFFFFFU;
825  openPrms->compatibilityMode = FALSE;
826 
827  /* Initlaize master mode params */
828  openPrms->u.masterParams.bitRate = 5000000U;
829  openPrms->u.masterParams.numSlaves = 1;
830  openPrms->u.masterParams.t2cDelay = 0;
831  openPrms->u.masterParams.c2tDelay = 0;
832  openPrms->u.masterParams.wDelay = 0;
833  openPrms->u.masterParams.slaveProf[0].chipSelect = (uint8_t)0U;
834  openPrms->u.masterParams.slaveProf[0].ramBufLen = (uint8_t)MIBSPI_RAM_MAX_ELEM;
835  openPrms->u.masterParams.slaveProf[0].dmaReqLine = 0U;
836  }
837 }
838 
839 #ifdef __cplusplus
840 }
841 #endif
842 
843 #endif /* #ifndef MIBSPI_H_ */
844 
MIBSPI_Object::isOpen
uint32_t isOpen
Definition: mibspi/v0/mibspi.h:588
MIBSPI_DMAXferAddrInfo
MIBSPI Driver DMA module Address info definition.
Definition: mibspi/v0/mibspi.h:337
MIBSPI_MasterModeParams::bitRate
uint32_t bitRate
Definition: mibspi/v0/mibspi.h:435
MIBSPI_SlaveProfile::chipSelect
uint8_t chipSelect
Definition: mibspi/v0/mibspi.h:281
MIBSPI_Params_init
static void MIBSPI_Params_init(MIBSPI_OpenParams *openPrms)
Function to initialize the MIBSPI_OpenParams struct to its defaults.
Definition: mibspi/v0/mibspi.h:808
MIBSPI_DMAReqlineCfg
MIBSPI Driver DMA request line tie up for the SoC.
Definition: mibspi/v0/mibspi.h:322
MIBSPI_MasterModeParams
MIBSPI master Parameters.
Definition: mibspi/v0/mibspi.h:434
MIBSPI_Transaction
MIBSPI_Transaction data structure is used with MIBSPI_transfer(). It indicates how many MIBSPI_FrameF...
Definition: mibspi/v0/mibspi.h:381
MIBSPI_transferCancel
void MIBSPI_transferCancel(MIBSPI_Handle handle)
Function to cancel MIBSPI transactions on instance of a MIBSPI peripheral specified by the MIBSPI han...
MIBSPI_HW_Stats::desync
uint32_t desync
Number of De-synchronization of slave device interrupts.
Definition: mibspi/v0/mibspi.h:249
MIBSPI_HW_Stats::timeout
uint32_t timeout
Number of timeout interrupts.
Definition: mibspi/v0/mibspi.h:245
MIBSPI_Object
SPI Driver Object.
Definition: mibspi/v0/mibspi.h:561
MIBSPI_TRANSFER_CSN_DEASSERT
@ MIBSPI_TRANSFER_CSN_DEASSERT
Definition: mibspi/v0/mibspi.h:163
MIBSPI_deinit
void MIBSPI_deinit(void)
This function de-initializes the MIBSPI module.
MIBSPI_Object::intrRxObj
Edma_IntrObject intrRxObj
EDMA RX intr object.
Definition: mibspi/v0/mibspi.h:615
MIBSPI_MasterModeParams::slaveProf
MIBSPI_SlaveProfile slaveProf[MIBSPI_SLAVE_MAX]
Definition: mibspi/v0/mibspi.h:440
MIBSPI_TRANSFER_TIMEOUT
@ MIBSPI_TRANSFER_TIMEOUT
Definition: mibspi/v0/mibspi.h:164
MIBSPI_Stats::bitErr
uint32_t bitErr
Definition: mibspi/v0/mibspi.h:269
MIBSPI_TransferMode
MIBSPI_TransferMode
MIBSPI transfer mode determines the whether the MIBSPI controller operates synchronously or asynchron...
Definition: mibspi/v0/mibspi.h:210
MIBSPI_TransactionState::dataSizeInBytes
volatile uint16_t dataSizeInBytes
Definition: mibspi/v0/mibspi.h:408
MIBSPI_Transaction::rxBuf
void * rxBuf
Definition: mibspi/v0/mibspi.h:385
MIBSPI_SLAVE_MAX
#define MIBSPI_SLAVE_MAX
Max number of slaves supported when MibSPI is configured as master.
Definition: mibspi/v0/mibspi.h:117
MIBSPI_HW_Stats::rxFull
uint32_t rxFull
Number of RX Full Interrupts.
Definition: mibspi/v0/mibspi.h:255
MIBSPI_getDrvStats
int32_t MIBSPI_getDrvStats(MIBSPI_Handle handle, MIBSPI_Stats *ptrStats)
Get SPI driver internal stats.
MIBSPI_transfer
int32_t MIBSPI_transfer(MIBSPI_Handle handle, MIBSPI_Transaction *transaction)
Function to perform MIBSPI transactions on a instance of a MIBSPI peripheral specified by the MIBSPI ...
MIBSPI_MasterModeParams::numSlaves
uint8_t numSlaves
Definition: mibspi/v0/mibspi.h:436
gMibspiConfig
MIBSPI_Config gMibspiConfig[]
Externally defined driver configuration array.
MIBSPI_Object::edmaBaseAddr
uint32_t edmaBaseAddr
EDMA Base address used for MIBSPI transfer.
Definition: mibspi/v0/mibspi.h:605
MIBSPI_OpenParams::shiftFormat
MIBSPI_DataShiftFmt shiftFormat
Definition: mibspi/v0/mibspi.h:487
MIBSPI_DMAReqlineCfg::rxDmaReqLine
uint8_t rxDmaReqLine
RX DMA Request Line number
Definition: mibspi/v0/mibspi.h:326
MIBSPI_LOOPBK_NONE
@ MIBSPI_LOOPBK_NONE
Definition: mibspi/v0/mibspi.h:183
MIBSPI_POL0_PHA0
@ MIBSPI_POL0_PHA0
Definition: mibspi/v0/mibspi.h:194
MIBSPI_POL1_PHA0
@ MIBSPI_POL1_PHA0
Definition: mibspi/v0/mibspi.h:196
Edma_IntrObject
EDMA interrupt configuration object. The object is passed to the EDMA_registerIntr() function....
Definition: edma/v0/edma.h:449
SystemP.h
MIBSPI_OpenParams::compatibilityMode
Bool compatibilityMode
Definition: mibspi/v0/mibspi.h:499
MIBSPI_DMAReqlineCfg::txDmaReqLine
uint8_t txDmaReqLine
TX DMA Request Line number.
Definition: mibspi/v0/mibspi.h:324
MIBSPI_init
void MIBSPI_init(void)
This function initializes the MIBSPI module.
MIBSPI_DMAXferAddrInfo::saddr
uintptr_t saddr
Definition: mibspi/v0/mibspi.h:338
MIBSPI_Attrs
MIBSPI Driver HW configuration.
Definition: mibspi/v0/mibspi.h:516
MIBSPI_Attrs::numParallelModePins
uint32_t numParallelModePins
Number of parallel mode pins supported for this MIBSPI instance.
Definition: mibspi/v0/mibspi.h:539
MIBSPI_Stats::desync
uint32_t desync
Definition: mibspi/v0/mibspi.h:268
MIBSPI_OpenParams::dmaEnable
uint8_t dmaEnable
Definition: mibspi/v0/mibspi.h:489
MIBSPI_setClockPhasePolarity
int32_t MIBSPI_setClockPhasePolarity(MIBSPI_Handle handle, uint8_t clockFmt)
This function sets the Polarity and phase for MibSpi as requested.
MIBSPI_SlaveProfile::ramBufLen
uint8_t ramBufLen
Definition: mibspi/v0/mibspi.h:282
MIBSPI_Attrs::ptrMibSpiRam
CSL_mibspiRam * ptrMibSpiRam
Base address of the MibSpi ram address space to be used.
Definition: mibspi/v0/mibspi.h:522
MIBSPI_OpenParams::iCountSupport
Bool iCountSupport
Definition: mibspi/v0/mibspi.h:471
MIBSPI_Object::hwStats
MIBSPI_HW_Stats hwStats
MibSpi driver stats.
Definition: mibspi/v0/mibspi.h:601
MIBSPI_EDMAChParams::edmaTcc
uint32_t edmaTcc
Definition: mibspi/v0/mibspi.h:451
MIBSPI_OpenParams::edmaLinkParamId
uint16_t edmaLinkParamId
EDMA link channel id Needs to be set only if compatibility mode is TRUE The MIBSPI requries an additi...
Definition: mibspi/v0/mibspi.h:501
MIBSPI_Object::hwiObj
HwiP_Object hwiObj
Definition: mibspi/v0/mibspi.h:597
MIBSPI_DMACTRL_CH_RX
@ MIBSPI_DMACTRL_CH_RX
Definition: mibspi/v0/mibspi.h:226
MIBSPI_HW_Stats::bitErr
uint32_t bitErr
Number of mismatch of internal transmit data and transmittted data error interrupts.
Definition: mibspi/v0/mibspi.h:251
MIBSPI_Status
MIBSPI_Status
Status codes that are set by the SPI driver.
Definition: mibspi/v0/mibspi.h:158
MIBSPI_SlaveProfile::dmaReqLine
uint32_t dmaReqLine
Definition: mibspi/v0/mibspi.h:283
MIBSPI_Handle
void * MIBSPI_Handle
A handle that is returned from a MIBSPI_open() call.
Definition: mibspi/v0/mibspi.h:77
MIBSPI_Object::mibspiHandle
MIBSPI_Handle mibspiHandle
SPI driver handle.
Definition: mibspi/v0/mibspi.h:563
MIBSPI_FrameFormat
MIBSPI_FrameFormat
Definitions for various SPI data frame formats.
Definition: mibspi/v0/mibspi.h:193
MIBSPI_TRANSFER_FAILED
@ MIBSPI_TRANSFER_FAILED
Definition: mibspi/v0/mibspi.h:162
MIBSPI_RAM_MAX_ELEM
#define MIBSPI_RAM_MAX_ELEM
Maximum element in MibSPI RAM. For 8bit data size, the maximum transfer size is 64 bytes For 16bit da...
Definition: mibspi/v0/mibspi.h:114
SemaphoreP.h
MIBSPI_DMAXferInfo::tx
MIBSPI_DMAXferAddrInfo tx
Definition: mibspi/v0/mibspi.h:368
MIBSPI_Object::params
MIBSPI_OpenParams params
MibSpi driver parameters.
Definition: mibspi/v0/mibspi.h:567
MIBSPI_TX_EDMA_CALLBACK_OCCURED
@ MIBSPI_TX_EDMA_CALLBACK_OCCURED
Definition: mibspi/v0/mibspi.h:143
MIBSPI_DMA_REQLINE_MAX
#define MIBSPI_DMA_REQLINE_MAX
Max number of DMA REQ lines supported by MIBSPI.
Definition: mibspi/v0/mibspi.h:120
MIBSPI_Attrs::interrupt1Num
uint32_t interrupt1Num
Interrupt Number for INT1.
Definition: mibspi/v0/mibspi.h:528
MIBSPI_XferErr_e
MIBSPI_XferErr_e
SPI_v3 transfer error code.
Definition: mibspi/v0/mibspi.h:150
MIBSPI_TransactionState::transaction
MIBSPI_Transaction * transaction
Definition: mibspi/v0/mibspi.h:404
MIBSPI_OpenParams::slaveParams
MIBSPI_SlaveModeParams slaveParams
Definition: mibspi/v0/mibspi.h:481
MIBSPI_TRANSFER_CANCELED
@ MIBSPI_TRANSFER_CANCELED
Definition: mibspi/v0/mibspi.h:161
MIBSPI_Stats::parErr
uint32_t parErr
Definition: mibspi/v0/mibspi.h:267
edma.h
MIBSPI_Attrs::ptrSpiRegBase
CSL_mss_spiRegs * ptrSpiRegBase
Base address of the MibSpi register address space to be used.
Definition: mibspi/v0/mibspi.h:520
MIBSPI_OpenParams::eccEnable
uint8_t eccEnable
Definition: mibspi/v0/mibspi.h:494
MIBSPI_SlaveModeParams
MIBSPI slave mode Parameters.
Definition: mibspi/v0/mibspi.h:295
MIBSPI_CallbackFxn
void(* MIBSPI_CallbackFxn)(MIBSPI_Handle handle, MIBSPI_Transaction *transaction)
The definition of a callback function used by the SPI driver when used in MIBSPI_MODE_CALLBACK.
Definition: mibspi/v0/mibspi.h:418
MIBSPI_TRANSFER_COMPLETED
@ MIBSPI_TRANSFER_COMPLETED
Definition: mibspi/v0/mibspi.h:159
MIBSPI_disableLoopback
int32_t MIBSPI_disableLoopback(MIBSPI_Handle handle)
This function disable the Loopback mode.
MIBSPI_LOOPBK_ANALOG
@ MIBSPI_LOOPBK_ANALOG
Definition: mibspi/v0/mibspi.h:182
MIBSPI_Object::transferSem
void * transferSem
Definition: mibspi/v0/mibspi.h:590
MIBSPI_HW_Stats::parErr
uint32_t parErr
Number of Parity Error interrupts.
Definition: mibspi/v0/mibspi.h:247
MIBSPI_OpenParams::csHold
uint8_t csHold
Definition: mibspi/v0/mibspi.h:495
MIBSPI_Attrs::numDmaReqLines
uint32_t numDmaReqLines
Number of independent DMA request lines supported by MIBSPI.
Definition: mibspi/v0/mibspi.h:548
MIBSPI_EdmaCBFlag_e
MIBSPI_EdmaCBFlag_e
Enum used to track status of EDMA callbacks internally in driver.
Definition: mibspi/v0/mibspi.h:140
MIBSPI_OpenParams::masterParams
MIBSPI_MasterModeParams masterParams
Definition: mibspi/v0/mibspi.h:479
MIBSPI_MASTER
@ MIBSPI_MASTER
Definition: mibspi/v0/mibspi.h:188
MIBSPI_OpenParams::txDummyValue
uint16_t txDummyValue
Definition: mibspi/v0/mibspi.h:496
MIBSPI_open
MIBSPI_Handle MIBSPI_open(uint32_t index, MIBSPI_OpenParams *params)
This function opens a given instance of the MIBSPI peripheral.
MIBSPI_Transaction::txBuf
void * txBuf
Definition: mibspi/v0/mibspi.h:384
MIBSPI_OpenParams::u
union MIBSPI_OpenParams::@0 u
MIBSPI_Stats::dlenErr
uint32_t dlenErr
Definition: mibspi/v0/mibspi.h:265
MIBSPI_DriverDmaInfo::rxDmaIntCnt
uint32_t rxDmaIntCnt
Number of DMA Recieve Interrupts.
Definition: mibspi/v0/mibspi.h:310
MIBSPI_OpenParams::frameFormat
MIBSPI_FrameFormat frameFormat
Definition: mibspi/v0/mibspi.h:476
MIBSPI_DMAXferSizeInfo::elemCnt
uint16_t elemCnt
Definition: mibspi/v0/mibspi.h:355
MIBSPI_Object::hwiHandle
void * hwiHandle
Definition: mibspi/v0/mibspi.h:595
MIBSPI_OpenParams::transferTimeout
uint32_t transferTimeout
Definition: mibspi/v0/mibspi.h:497
HwiP.h
MIBSPI_MODE_BLOCKING
@ MIBSPI_MODE_BLOCKING
Definition: mibspi/v0/mibspi.h:215
MIBSPI_OpenParams::mode
MIBSPI_Mode mode
Definition: mibspi/v0/mibspi.h:469
MIBSPI_Attrs::clockSrcFreq
uint32_t clockSrcFreq
MIBSPI clock source frequency in Hz, It will be used to calculate prescaler for Master mode.
Definition: mibspi/v0/mibspi.h:524
MIBSPI_close
void MIBSPI_close(MIBSPI_Handle handle)
Function to close a instance of a MIBSPI peripheral specified by the MIBSPI handle.
MIBSPI_Attrs::mibspiInstId
uint32_t mibspiInstId
mibspi instance ID
Definition: mibspi/v0/mibspi.h:518
MIBSPI_SlaveModeParams::chipSelect
uint8_t chipSelect
Definition: mibspi/v0/mibspi.h:297
MIBSPI_Attrs::numTransferGroups
uint32_t numTransferGroups
Number of transfer groups for this MIBSPI instance
Definition: mibspi/v0/mibspi.h:532
MIBSPI_TransactionState::dataLength
volatile uint16_t dataLength
Definition: mibspi/v0/mibspi.h:407
MIBSPI_Object::transferSemObj
SemaphoreP_Object transferSemObj
Definition: mibspi/v0/mibspi.h:593
MIBSPI_PINMODE_3PIN
@ MIBSPI_PINMODE_3PIN
Definition: mibspi/v0/mibspi.h:169
MIBSPI_DMACTRL_CH_TX
@ MIBSPI_DMACTRL_CH_TX
Definition: mibspi/v0/mibspi.h:225
MIBSPI_OpenParams::dataSize
uint32_t dataSize
Definition: mibspi/v0/mibspi.h:475
MIBSPI_Mode
MIBSPI_Mode
Definitions for various SPI modes of operation.
Definition: mibspi/v0/mibspi.h:187
MIBSPI_enableLoopback
int32_t MIBSPI_enableLoopback(MIBSPI_Handle handle, MIBSPI_LoopBackType loopbacktype)
This function enables the Loopback mode for self test. Loopback is SPI master only feature.
MIBSPI_POL1_PHA1
@ MIBSPI_POL1_PHA1
Definition: mibspi/v0/mibspi.h:197
MIBSPI_Object::edmaRegionId
uint32_t edmaRegionId
EDMA Region used for MIBSPI transfer.
Definition: mibspi/v0/mibspi.h:607
MIBSPI_MasterModeParams::wDelay
uint8_t wDelay
Definition: mibspi/v0/mibspi.h:439
gMibspiConfigNum
uint32_t gMibspiConfigNum
Externally defined driver configuration array size.
MIBSPI_SLAVE
@ MIBSPI_SLAVE
Definition: mibspi/v0/mibspi.h:189
MIBSPI_Stats::timeout
uint32_t timeout
Definition: mibspi/v0/mibspi.h:266
MIBSPI_XFER_ERR_TIMEOUT
@ MIBSPI_XFER_ERR_TIMEOUT
Definition: mibspi/v0/mibspi.h:154
MIBSPI_Config
MIBSPI Instance configuration.
Definition: mibspi/v0/mibspi.h:628
MIBSPI_DMAXferInfo
MIBSPI Driver DMA module Transfer Info definition.
Definition: mibspi/v0/mibspi.h:367
MIBSPI_NUM_TRANS_GROUP
#define MIBSPI_NUM_TRANS_GROUP
Max number of transport group.
Definition: mibspi/v0/mibspi.h:126
MIBSPI_EDMAChParams::edmaParam
uint32_t edmaParam
Definition: mibspi/v0/mibspi.h:455
MIBSPI_DataShiftFmt
MIBSPI_DataShiftFmt
Definitions for MIBSPI Data shift format.
Definition: mibspi/v0/mibspi.h:174
MIBSPI_EDMAChParams::edmaChId
uint32_t edmaChId
Definition: mibspi/v0/mibspi.h:453
HwiP_Object
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:91
MIBSPI_HW_Stats
SPI Driver Statistics.
Definition: mibspi/v0/mibspi.h:241
MIBSPI_PINMODE_4PIN_CS
@ MIBSPI_PINMODE_4PIN_CS
Definition: mibspi/v0/mibspi.h:170
MIBSPI_OpenParams::edmaInst
int32_t edmaInst
Definition: mibspi/v0/mibspi.h:492
MIBSPI_TransactionState
MIBSPI Driver DMA module Tranaction state definition.
Definition: mibspi/v0/mibspi.h:400
MIBSPI_LOOPBK_DIGITAL
@ MIBSPI_LOOPBK_DIGITAL
Definition: mibspi/v0/mibspi.h:181
MIBSPI_Object::intrDummyObj
Edma_IntrObject intrDummyObj
EDMA Dummy intr object.
Definition: mibspi/v0/mibspi.h:617
MIBSPI_Object::ptrHwCfg
const MIBSPI_Attrs * ptrHwCfg
Pointer to MibSpi driver Hardware Configuration.
Definition: mibspi/v0/mibspi.h:565
MIBSPI_MasterModeParams::t2cDelay
uint8_t t2cDelay
Definition: mibspi/v0/mibspi.h:437
MIBSPI_DMACTRL_CH_BOTH
@ MIBSPI_DMACTRL_CH_BOTH
Definition: mibspi/v0/mibspi.h:227
MIBSPI_DMAXferInfo::dmaReqLine
uint32_t dmaReqLine
Definition: mibspi/v0/mibspi.h:371
MIBSPI_Attrs::mibspiRamSize
uint32_t mibspiRamSize
Size of MIBSPI RAM in this SoC for this MIBSPI instance
Definition: mibspi/v0/mibspi.h:530
MIBSPI_Object::rxScratchBuffer
uint16_t rxScratchBuffer
Rx Scratch buffer, used as scratch buffer to dump received data from SPI transfer when application do...
Definition: mibspi/v0/mibspi.h:579
MIBSPI_OpenParams::transferMode
MIBSPI_TransferMode transferMode
Definition: mibspi/v0/mibspi.h:470
MIBSPI_OpenParams::pinMode
MIBSPI_PinMode pinMode
Definition: mibspi/v0/mibspi.h:485
MIBSPI_DMAXferInfo::size
MIBSPI_DMAXferSizeInfo size
Definition: mibspi/v0/mibspi.h:370
MIBSPI_Object::txScratchBuffer
uint16_t txScratchBuffer
Tx Scratch buffer, used when TX data is not provided for SPI_transfer() The driver transmits txDummyV...
Definition: mibspi/v0/mibspi.h:584
MIBSPI_HW_Stats::txEmpty
uint32_t txEmpty
Number of TX Empty Interrupts.
Definition: mibspi/v0/mibspi.h:257
MIBSPI_Attrs::interrupt0Num
uint32_t interrupt0Num
Interrupt Number for INT0.
Definition: mibspi/v0/mibspi.h:526
MIBSPI_Attrs::featureBitMap
uint32_t featureBitMap
Optional feature that are supported for this MIBSPI instance This is a bitmap comprising of defines M...
Definition: mibspi/v0/mibspi.h:546
MIBSPI_DMAXferSizeInfo::elemSize
uint16_t elemSize
Definition: mibspi/v0/mibspi.h:354
MIBSPI_OpenParams
MIBSPI Parameters.
Definition: mibspi/v0/mibspi.h:468
MIBSPI_LSB_FIRST
@ MIBSPI_LSB_FIRST
Definition: mibspi/v0/mibspi.h:176
MIBSPI_Transaction::arg
void * arg
Definition: mibspi/v0/mibspi.h:386
SemaphoreP_Object
Opaque semaphore object used with the semaphore APIs.
Definition: SemaphoreP.h:59
MIBSPI_OpenParams::transferCallbackFxn
MIBSPI_CallbackFxn transferCallbackFxn
Definition: mibspi/v0/mibspi.h:474
MIBSPI_dmaDoneCb
void MIBSPI_dmaDoneCb(MIBSPI_Handle mibspiHandle)
Function invoked by the SoC DMA implementation to the driver on DMA transfer completion.
MIBSPI_XFER_ERR_BE
@ MIBSPI_XFER_ERR_BE
Definition: mibspi/v0/mibspi.h:153
MIBSPI_Stats::rxOvrnErr
uint32_t rxOvrnErr
Definition: mibspi/v0/mibspi.h:270
MIBSPI_MasterModeParams::c2tDelay
uint8_t c2tDelay
Definition: mibspi/v0/mibspi.h:438
MIBSPI_Transaction::status
MIBSPI_Status status
Definition: mibspi/v0/mibspi.h:388
MIBSPI_NONE_EDMA_CALLBACK_OCCURED
@ MIBSPI_NONE_EDMA_CALLBACK_OCCURED
Definition: mibspi/v0/mibspi.h:141
MIBSPI_PinMode
MIBSPI_PinMode
Definitions for MIBSPI Pins Operation Mode.
Definition: mibspi/v0/mibspi.h:168
MIBSPI_SlaveProfile
MIBSPI slave profile Parameters.
Definition: mibspi/v0/mibspi.h:280
MIBSPI_LoopBackType
MIBSPI_LoopBackType
Definitions for MIBSPI loopback modes.
Definition: mibspi/v0/mibspi.h:180
MIBSPI_Object::intrTxObj
Edma_IntrObject intrTxObj
EDMA TX intr object.
Definition: mibspi/v0/mibspi.h:613
MIBSPI_DriverDmaInfo
SPI Driver Info for Master.
Definition: mibspi/v0/mibspi.h:308
MIBSPI_XFER_ERR_NONE
@ MIBSPI_XFER_ERR_NONE
Definition: mibspi/v0/mibspi.h:151
MIBSPI_HW_Stats::dlenErr
uint32_t dlenErr
Number of data length error interrupts.
Definition: mibspi/v0/mibspi.h:243
MIBSPI_DmaCtrlChType
MIBSPI_DmaCtrlChType
Definitions for DMA controller channel type.
Definition: mibspi/v0/mibspi.h:224
MIBSPI_DriverDmaInfo::txDmaIntCnt
uint32_t txDmaIntCnt
Number of DMA Transmit Interrupts.
Definition: mibspi/v0/mibspi.h:312
MIBSPI_OpenParams::dmaHandle
void * dmaHandle
Definition: mibspi/v0/mibspi.h:493
MIBSPI_XFER_ERR_RXOR
@ MIBSPI_XFER_ERR_RXOR
Definition: mibspi/v0/mibspi.h:152
MIBSPI_EDMAChParams
MIBSPI EDMA Parameters.
Definition: mibspi/v0/mibspi.h:450
MIBSPI_RX_EDMA_CALLBACK_OCCURED
@ MIBSPI_RX_EDMA_CALLBACK_OCCURED
Definition: mibspi/v0/mibspi.h:145
MIBSPI_Transaction::count
uint32_t count
Definition: mibspi/v0/mibspi.h:383
MIBSPI_POL0_PHA1
@ MIBSPI_POL0_PHA1
Definition: mibspi/v0/mibspi.h:195
MIBSPI_TransactionState::remainSize
volatile uint16_t remainSize
Definition: mibspi/v0/mibspi.h:406
MIBSPI_Object::transactionState
MIBSPI_TransactionState transactionState
State info on current transaction.
Definition: mibspi/v0/mibspi.h:603
MIBSPI_DMAXferSizeInfo::frameCnt
uint16_t frameCnt
Definition: mibspi/v0/mibspi.h:356
MIBSPI_MODE_CALLBACK
@ MIBSPI_MODE_CALLBACK
Definition: mibspi/v0/mibspi.h:220
MIBSPI_HW_Stats::rxOvrnErr
uint32_t rxOvrnErr
Number of RX Overrun Error Interrupts.
Definition: mibspi/v0/mibspi.h:253
MIBSPI_DMAXferSizeInfo
MIBSPI Driver DMA module Transfer size definition.
Definition: mibspi/v0/mibspi.h:353
MIBSPI_MSB_FIRST
@ MIBSPI_MSB_FIRST
Definition: mibspi/v0/mibspi.h:175
MIBSPI_DMAXferAddrInfo::daddr
uintptr_t daddr
Definition: mibspi/v0/mibspi.h:339
MIBSPI_Config::attrs
const MIBSPI_Attrs * attrs
Definition: mibspi/v0/mibspi.h:629
MIBSPI_SlaveModeParams::dmaReqLine
uint32_t dmaReqLine
Definition: mibspi/v0/mibspi.h:296
MIBSPI_TRANSFER_STARTED
@ MIBSPI_TRANSFER_STARTED
Definition: mibspi/v0/mibspi.h:160
MIBSPI_Stats
MIBSPI_Stats data structure is used with SPI_getStats() to get driver statistics.
Definition: mibspi/v0/mibspi.h:264
MIBSPI_Config::object
MIBSPI_Object * object
Definition: mibspi/v0/mibspi.h:631
MIBSPI_DMAXferInfo::rx
MIBSPI_DMAXferAddrInfo rx
Definition: mibspi/v0/mibspi.h:369