SPIDRV
[EM_Drivers]

SPIDRV Serial Peripheral Interface module, see SPIDRV Serial Peripheral Interface driver page for detailed documentation. More...

Collaboration diagram for SPIDRV:

Data Structures

struct  SPIDRV_Init_t
 SPI driver instance initialization structure. More...
struct  SPIDRV_HandleData_t
 SPI driver instance handle data structure. More...

Defines

#define ECODE_EMDRV_SPIDRV_OK   ( ECODE_OK )
 Success return value.
#define ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000001 )
 Illegal SPI handle.
#define ECODE_EMDRV_SPIDRV_PARAM_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000002 )
 Illegal input parameter.
#define ECODE_EMDRV_SPIDRV_BUSY   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000003 )
 The SPI port is busy.
#define ECODE_EMDRV_SPIDRV_TIMER_ALLOC_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000004 )
 Unable to allocated timeout timer.
#define ECODE_EMDRV_SPIDRV_TIMEOUT   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000005 )
 SPI transfer timeout.
#define ECODE_EMDRV_SPIDRV_IDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000006 )
 No SPI transfer in progress.
#define ECODE_EMDRV_SPIDRV_ABORTED   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000007 )
 SPI transfer has been aborted.
#define ECODE_EMDRV_SPIDRV_MODE_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000008 )
 SPI master used slave API or vica versa.
#define ECODE_EMDRV_SPIDRV_DMA_ALLOC_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000009 )
 Unable to allocated DMA channels.
#define SPIDRV_MASTER_USART0
 Configuration data for SPI master using USART0.
#define SPIDRV_MASTER_USART1
 Configuration data for SPI master using USART1.
#define SPIDRV_MASTER_USART2
 Configuration data for SPI master using USART2.
#define SPIDRV_MASTER_USARTRF0
 Configuration data for SPI master using USARTRF0.
#define SPIDRV_SLAVE_USART0
 Configuration data for SPI slave using USART0.
#define SPIDRV_SLAVE_USART1
 Configuration data for SPI slave using USART1.
#define SPIDRV_SLAVE_USART2
 Configuration data for SPI slave using USART2.
#define SPIDRV_SLAVE_USARTRF0
 Configuration data for SPI slave using USARTRF0.
#define EMDRV_SPIDRV_INCLUDE_SLAVE
 SPIDRV configuration option. Use this define to include the slave part of the SPIDRV API.

Typedefs

typedef void(* SPIDRV_Callback_t )(struct SPIDRV_HandleData *handle, Ecode_t transferStatus, int itemsTransferred)
 SPIDRV transfer completion callback function.
typedef SPIDRV_HandleData_tSPIDRV_Handle_t
 SPI driver instance handle.

Enumerations

enum  SPIDRV_Type_t {
  spidrvMaster = 0,
  spidrvSlave = 1
}
 

SPI driver instance type.

More...
enum  SPIDRV_BitOrder_t {
  spidrvBitOrderLsbFirst = 0,
  spidrvBitOrderMsbFirst = 1
}
 

SPI bus bit order.

More...
enum  SPIDRV_ClockMode_t {
  spidrvClockMode0 = 0,
  spidrvClockMode1 = 1,
  spidrvClockMode2 = 2,
  spidrvClockMode3 = 3
}
 

SPI clock mode (clock polarity and phase).

More...
enum  SPIDRV_CsControl_t {
  spidrvCsControlAuto = 0,
  spidrvCsControlApplication = 1
}
 

SPI master chip select (CS) control scheme.

More...
enum  SPIDRV_SlaveStart_t {
  spidrvSlaveStartImmediate = 0,
  spidrvSlaveStartDelayed = 1
}
 

SPI slave transfer start scheme.

More...

Functions

Ecode_t SPIDRV_AbortTransfer (SPIDRV_Handle_t handle)
 Abort an ongoing SPI transfer.
Ecode_t SPIDRV_DeInit (SPIDRV_Handle_t handle)
 Deinitialize a SPI driver instance.
Ecode_t SPIDRV_GetBitrate (SPIDRV_Handle_t handle, uint32_t *bitRate)
 Get current SPI bus bitrate.
Ecode_t SPIDRV_GetFramelength (SPIDRV_Handle_t handle, uint32_t *frameLength)
 Get current SPI framelength.
Ecode_t SPIDRV_GetTransferStatus (SPIDRV_Handle_t handle, int *itemsTransferred, int *itemsRemaining)
 Get the status of a SPI transfer.
Ecode_t SPIDRV_Init (SPIDRV_Handle_t handle, SPIDRV_Init_t *initData)
 Initialize a SPI driver instance.
Ecode_t SPIDRV_MReceive (SPIDRV_Handle_t handle, void *buffer, int count, SPIDRV_Callback_t callback)
 Start a SPI master receive transfer.
Ecode_t SPIDRV_MReceiveB (SPIDRV_Handle_t handle, void *buffer, int count)
 Start a SPI master blocking receive transfer.
Ecode_t SPIDRV_MTransfer (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count, SPIDRV_Callback_t callback)
 Start a SPI master transfer.
Ecode_t SPIDRV_MTransferB (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count)
 Start a SPI master blocking transfer.
Ecode_t SPIDRV_MTransferSingleItemB (SPIDRV_Handle_t handle, uint32_t txValue, void *rxValue)
 Start a SPI master blocking single item (frame) transfer.
Ecode_t SPIDRV_MTransmit (SPIDRV_Handle_t handle, const void *buffer, int count, SPIDRV_Callback_t callback)
 Start a SPI master transmit transfer.
Ecode_t SPIDRV_MTransmitB (SPIDRV_Handle_t handle, const void *buffer, int count)
 Start a SPI master blocking transmit transfer.
Ecode_t SPIDRV_SetBitrate (SPIDRV_Handle_t handle, uint32_t bitRate)
 Set SPI bus bitrate.
Ecode_t SPIDRV_SetFramelength (SPIDRV_Handle_t handle, uint32_t frameLength)
 Set SPI framelength.
Ecode_t SPIDRV_SReceive (SPIDRV_Handle_t handle, void *buffer, int count, SPIDRV_Callback_t callback, int timeoutMs)
 Start a SPI slave receive transfer.
Ecode_t SPIDRV_SReceiveB (SPIDRV_Handle_t handle, void *buffer, int count, int timeoutMs)
 Start a SPI slave blocking receive transfer.
Ecode_t SPIDRV_STransfer (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count, SPIDRV_Callback_t callback, int timeoutMs)
 Start a SPI slave transfer.
Ecode_t SPIDRV_STransferB (SPIDRV_Handle_t handle, const void *txBuffer, void *rxBuffer, int count, int timeoutMs)
 Start a SPI slave blocking transfer.
Ecode_t SPIDRV_STransmit (SPIDRV_Handle_t handle, const void *buffer, int count, SPIDRV_Callback_t callback, int timeoutMs)
 Start a SPI slave transmit transfer.
Ecode_t SPIDRV_STransmitB (SPIDRV_Handle_t handle, const void *buffer, int count, int timeoutMs)
 Start a SPI slave blocking transmit transfer.

Detailed Description

SPIDRV Serial Peripheral Interface module, see SPIDRV Serial Peripheral Interface driver page for detailed documentation.


Define Documentation

#define ECODE_EMDRV_SPIDRV_ABORTED   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000007 )

SPI transfer has been aborted.

Definition at line 53 of file spidrv.h.

Referenced by SPIDRV_AbortTransfer().

#define ECODE_EMDRV_SPIDRV_BUSY   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000003 )

The SPI port is busy.

Definition at line 49 of file spidrv.h.

Referenced by SPIDRV_MTransferSingleItemB(), SPIDRV_SetBitrate(), and SPIDRV_SetFramelength().

#define ECODE_EMDRV_SPIDRV_DMA_ALLOC_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000009 )

Unable to allocated DMA channels.

Definition at line 55 of file spidrv.h.

Referenced by SPIDRV_Init().

#define ECODE_EMDRV_SPIDRV_IDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000006 )

No SPI transfer in progress.

Definition at line 52 of file spidrv.h.

Referenced by SPIDRV_AbortTransfer().

#define ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000001 )
#define ECODE_EMDRV_SPIDRV_MODE_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000008 )
#define ECODE_EMDRV_SPIDRV_OK   ( ECODE_OK )
#define ECODE_EMDRV_SPIDRV_PARAM_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000002 )
#define ECODE_EMDRV_SPIDRV_TIMEOUT   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000005 )

SPI transfer timeout.

Definition at line 51 of file spidrv.h.

#define ECODE_EMDRV_SPIDRV_TIMER_ALLOC_ERROR   ( ECODE_EMDRV_SPIDRV_BASE | 0x00000004 )

Unable to allocated timeout timer.

Definition at line 50 of file spidrv.h.

Referenced by SPIDRV_Init().

#define EMDRV_SPIDRV_INCLUDE_SLAVE

SPIDRV configuration option. Use this define to include the slave part of the SPIDRV API.

Definition at line 29 of file spidrv_config.h.

#define SPIDRV_MASTER_USART0
Value:
{                                                                         \
  USART0,                       /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  1000000,                      /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvMaster,                 /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI master using USART0.

Definition at line 325 of file spidrv.h.

#define SPIDRV_MASTER_USART1
Value:
{                                                                         \
  USART1,                       /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  1000000,                      /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvMaster,                 /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI master using USART1.

Definition at line 340 of file spidrv.h.

#define SPIDRV_MASTER_USART2
Value:
{                                                                         \
  USART2,                       /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC0,   /* USART pins location number       */    \
  1000000,                      /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvMaster,                 /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI master using USART2.

Definition at line 370 of file spidrv.h.

#define SPIDRV_MASTER_USARTRF0
Value:
{                                                                         \
  USARTRF0,                     /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  1000000,                      /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvMaster,                 /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI master using USARTRF0.

Definition at line 386 of file spidrv.h.

#define SPIDRV_SLAVE_USART0
Value:
{                                                                         \
  USART0,                       /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  0,                            /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvSlave,                  /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI slave using USART0.

Definition at line 401 of file spidrv.h.

#define SPIDRV_SLAVE_USART1
Value:
{                                                                         \
  USART1,                       /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  0,                            /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvSlave,                  /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI slave using USART1.

Definition at line 416 of file spidrv.h.

#define SPIDRV_SLAVE_USART2
Value:
{                                                                         \
  USART2,                       /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC0,   /* USART pins location number       */    \
  0,                            /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvSlave,                  /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI slave using USART2.

Definition at line 446 of file spidrv.h.

#define SPIDRV_SLAVE_USARTRF0
Value:
{                                                                         \
  USARTRF0,                     /* USART port                       */    \
  _USART_ROUTE_LOCATION_LOC1,   /* USART pins location number       */    \
  0,                            /* Bitrate                          */    \
  8,                            /* Frame length                     */    \
  0,                            /* Dummy tx value for rx only funcs */    \
  spidrvSlave,                  /* SPI mode                         */    \
  spidrvBitOrderMsbFirst,       /* Bit order on bus                 */    \
  spidrvClockMode0,             /* SPI clock/phase mode             */    \
  spidrvCsControlAuto,          /* CS controlled by the driver      */    \
  spidrvSlaveStartImmediate     /* Slave start transfers immediately*/    \
}

Configuration data for SPI slave using USARTRF0.

Definition at line 462 of file spidrv.h.


Typedef Documentation

typedef void(* SPIDRV_Callback_t)(struct SPIDRV_HandleData *handle, Ecode_t transferStatus, int itemsTransferred)

SPIDRV transfer completion callback function.

The callback function is called when a transfer has completed. An application should check the transferStatus and itemsTransferred values.

Parameters:
[in] handle The SPIDRV device handle used to start the transfer.
[in] transferStatus Number of bytes actually transferred.
[in] itemsTransferred Number of bytes transferred.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout. Timeouts are only relevant for slave mode transfers.

Definition at line 117 of file spidrv.h.

SPI driver instance handle.

Definition at line 177 of file spidrv.h.


Enumeration Type Documentation

SPI bus bit order.

Enumerator:
spidrvBitOrderLsbFirst 

LSB bit is transmitted first.

spidrvBitOrderMsbFirst 

MSB bit is transmitted first.

Definition at line 65 of file spidrv.h.

SPI clock mode (clock polarity and phase).

Enumerator:
spidrvClockMode0 

SPI mode 0: CLKPOL=0, CLKPHA=0.

spidrvClockMode1 

SPI mode 1: CLKPOL=0, CLKPHA=1.

spidrvClockMode2 

SPI mode 2: CLKPOL=1, CLKPHA=0.

spidrvClockMode3 

SPI mode 3: CLKPOL=1, CLKPHA=1.

Definition at line 72 of file spidrv.h.

SPI master chip select (CS) control scheme.

Enumerator:
spidrvCsControlAuto 

CS controlled by SPI driver.

spidrvCsControlApplication 

CS controlled by application.

Definition at line 81 of file spidrv.h.

SPI slave transfer start scheme.

Enumerator:
spidrvSlaveStartImmediate 

Transfer is started immediately.

spidrvSlaveStartDelayed 

Transfer is started when bus is idle (CS deasserted).

Definition at line 88 of file spidrv.h.

SPI driver instance type.

Enumerator:
spidrvMaster 

Act as SPI master.

spidrvSlave 

Act as SPI slave.

Definition at line 58 of file spidrv.h.


Function Documentation

Ecode_t SPIDRV_AbortTransfer ( SPIDRV_Handle_t  handle  ) 

Abort an ongoing SPI transfer.

Parameters:
[in] handle Pointer to a SPI driver handle.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_IDLE if SPI is idle. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 345 of file spidrv.c.

References DMADRV_StopTransfer(), DMADRV_TransferRemainingCount(), ECODE_EMDRV_SPIDRV_ABORTED, ECODE_EMDRV_SPIDRV_IDLE, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StopTimer(), and spidrvSlave.

Here is the call graph for this function:

Ecode_t SPIDRV_DeInit ( SPIDRV_Handle_t  handle  ) 

Deinitialize a SPI driver instance.

Parameters:
[in] handle Pointer to a SPI driver handle.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 304 of file spidrv.c.

References DMADRV_DeInit(), DMADRV_FreeChannel(), DMADRV_StopTransfer(), ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, RTCDRV_FreeTimer(), RTCDRV_StopTimer(), and spidrvSlave.

Here is the call graph for this function:

Ecode_t SPIDRV_GetBitrate ( SPIDRV_Handle_t  handle,
uint32_t *  bitRate 
)

Get current SPI bus bitrate.

Parameters:
[in] handle Pointer to a SPI driver handle.
[out] bitRate Current SPI bus bitrate.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 398 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Ecode_t SPIDRV_GetFramelength ( SPIDRV_Handle_t  handle,
uint32_t *  frameLength 
)

Get current SPI framelength.

Parameters:
[in] handle Pointer to a SPI driver handle.
[out] frameLength Current SPI bus framelength.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 427 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Ecode_t SPIDRV_GetTransferStatus ( SPIDRV_Handle_t  handle,
int *  itemsTransferred,
int *  itemsRemaining 
)

Get the status of a SPI transfer.

Returns status of an ongoing transfer. If no transfer is in progress the status of the last transfer is reported.

Parameters:
[in] handle Pointer to a SPI driver handle.
[out] itemsTransferred Number of items (frames) transferred.
[out] itemsRemaining Number of items (frames) remaining.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 462 of file spidrv.c.

References DMADRV_TransferRemainingCount(), ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Here is the call graph for this function:

Ecode_t SPIDRV_Init ( SPIDRV_Handle_t  handle,
SPIDRV_Init_t initData 
)
Ecode_t SPIDRV_MReceive ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count,
SPIDRV_Callback_t  callback 
)

Start a SPI master receive transfer.

Note:
The MOSI wire will transmit SPIDRV_Init_t::dummyTxValue.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 514 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Ecode_t SPIDRV_MReceiveB ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count 
)

Start a SPI master blocking receive transfer.

Note:
The MOSI wire will transmit SPIDRV_Init_t::dummyTxValue.
This function is blocking and returns when the transfer has completed, or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 557 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Referenced by ezradio_hal_SpiReadByte(), and ezradio_hal_SpiReadData().

Here is the caller graph for this function:

Ecode_t SPIDRV_MTransfer ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count,
SPIDRV_Callback_t  callback 
)

Start a SPI master transfer.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 599 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, and spidrvSlave.

Ecode_t SPIDRV_MTransferB ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count 
)

Start a SPI master blocking transfer.

Note:
This function is blocking and returns when the transfer has completed, or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 649 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, and spidrvSlave.

Ecode_t SPIDRV_MTransferSingleItemB ( SPIDRV_Handle_t  handle,
uint32_t  txValue,
void *  rxValue 
)

Start a SPI master blocking single item (frame) transfer.

Note:
This function is blocking and returns when the transfer has completed, or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txValue Value to transmit.
[out] rxValue Value received.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 698 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_BUSY, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_MODE_ERROR, and spidrvSlave.

Ecode_t SPIDRV_MTransmit ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count,
SPIDRV_Callback_t  callback 
)

Start a SPI master transmit transfer.

Note:
The data received on the MISO wire is discarded.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 755 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Ecode_t SPIDRV_MTransmitB ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count 
)

Start a SPI master blocking transmit transfer.

Note:
The data received on the MISO wire is discarded.
This function is blocking and returns when the transfer is completed.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
Returns:
ECODE_EMDRV_SPIDRV_OK on success or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 797 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, and spidrvSlave.

Referenced by ezradio_hal_SpiWriteByte(), and ezradio_hal_SpiWriteData().

Here is the caller graph for this function:

Ecode_t SPIDRV_SetBitrate ( SPIDRV_Handle_t  handle,
uint32_t  bitRate 
)

Set SPI bus bitrate.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] bitRate New SPI bus bitrate.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 833 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_BUSY, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, and ECODE_EMDRV_SPIDRV_OK.

Ecode_t SPIDRV_SetFramelength ( SPIDRV_Handle_t  handle,
uint32_t  frameLength 
)

Set SPI framelength.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] frameLength New SPI bus framelength.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 866 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_BUSY, ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE, ECODE_EMDRV_SPIDRV_OK, and ECODE_EMDRV_SPIDRV_PARAM_ERROR.

Ecode_t SPIDRV_SReceive ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count,
SPIDRV_Callback_t  callback,
int  timeoutMs 
)

Start a SPI slave receive transfer.

Note:
The MISO wire will transmit SPIDRV_Init_t::dummyTxValue.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 919 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_SReceiveB ( SPIDRV_Handle_t  handle,
void *  buffer,
int  count,
int  timeoutMs 
)

Start a SPI slave blocking receive transfer.

Note:
The MISO wire will transmit SPIDRV_Init_t::dummyTxValue.
This function is blocking and returns when the transfer has completed, or on timeout or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[out] buffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 983 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransfer ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count,
SPIDRV_Callback_t  callback,
int  timeoutMs 
)

Start a SPI slave transfer.

Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 1045 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransferB ( SPIDRV_Handle_t  handle,
const void *  txBuffer,
void *  rxBuffer,
int  count,
int  timeoutMs 
)

Start a SPI slave blocking transfer.

Note:

This function is blocking and returns when the transfer has completed, or on timeout or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] txBuffer Transmit data buffer.
[out] rxBuffer Receive data buffer.
[in] count Number of bytes in transfer.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 1116 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, ECODE_EMDRV_SPIDRV_PARAM_ERROR, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransmit ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count,
SPIDRV_Callback_t  callback,
int  timeoutMs 
)

Start a SPI slave transmit transfer.

Note:
The data received on the MOSI wire is discarded.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
[in] callback Transfer completion callback.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 1185 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function:

Ecode_t SPIDRV_STransmitB ( SPIDRV_Handle_t  handle,
const void *  buffer,
int  count,
int  timeoutMs 
)

Start a SPI slave blocking transmit transfer.

Note:
The data received on the MOSI wire is discarded.
This function is blocking and returns when the transfer has completed, or on timeout or when SPIDRV_AbortTransfer() is called.
Parameters:
[in] handle Pointer to a SPI driver handle.
[in] buffer Transmit data buffer.
[in] count Number of bytes in transfer.
[in] timeoutMs Transfer timeout in milliseconds.
Returns:
ECODE_EMDRV_SPIDRV_OK on success, ECODE_EMDRV_SPIDRV_TIMEOUT on timeout or ECODE_EMDRV_SPIDRV_ABORTED if SPIDRV_AbortTransfer() has been called. On failure an appropriate SPIDRV Ecode_t is returned.

Definition at line 1249 of file spidrv.c.

References ECODE_EMDRV_SPIDRV_MODE_ERROR, ECODE_EMDRV_SPIDRV_OK, RTCDRV_StartTimer(), rtcdrvTimerTypeOneshot, spidrvMaster, and spidrvSlaveStartDelayed.

Here is the call graph for this function: