spidrv.h File Reference
SPIDRV API definition.
- Version
- 5.4.0
License
(C) Copyright 2014 Silicon Labs, www.silabs.com
This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.
       Definition in file
       
        spidrv.h
       
       .
      
       #include "
       
        em_device.h
       
       "
      
      
       #include "
       
        em_cmu.h
       
       "
      
      
       #include "
       
        ecode.h
       
       "
      
      
       #include "spidrv_config.h"
      
      
       #include "
       
        rtcdriver.h
       
       "
      
      
       #include "
       
        dmadrv.h
       
       "
      
      
| Data Structures | |
| struct | SPIDRV_HandleData | 
| struct | SPIDRV_Init | 
| Macros | |
| #define | ECODE_EMDRV_SPIDRV_ABORTED ( ECODE_EMDRV_SPIDRV_BASE | 0x00000007) | 
| An SPI transfer has been aborted. | |
| #define | ECODE_EMDRV_SPIDRV_BUSY ( ECODE_EMDRV_SPIDRV_BASE | 0x00000003) | 
| The SPI port is busy. | |
| #define | ECODE_EMDRV_SPIDRV_DMA_ALLOC_ERROR ( ECODE_EMDRV_SPIDRV_BASE | 0x00000009) | 
| Unable to allocate DMA channels. | |
| #define | ECODE_EMDRV_SPIDRV_IDLE ( ECODE_EMDRV_SPIDRV_BASE | 0x00000006) | 
| No SPI transfer in progress. | |
| #define | ECODE_EMDRV_SPIDRV_ILLEGAL_HANDLE ( ECODE_EMDRV_SPIDRV_BASE | 0x00000001) | 
| An illegal SPI handle. | |
| #define | ECODE_EMDRV_SPIDRV_MODE_ERROR ( ECODE_EMDRV_SPIDRV_BASE | 0x00000008) | 
| SPI master used slave API or vica versa. | |
| #define | ECODE_EMDRV_SPIDRV_OK ( ECODE_OK ) | 
| A successful return value. | |
| #define | ECODE_EMDRV_SPIDRV_PARAM_ERROR ( ECODE_EMDRV_SPIDRV_BASE | 0x00000002) | 
| An illegal input parameter. | |
| #define | ECODE_EMDRV_SPIDRV_TIMEOUT ( ECODE_EMDRV_SPIDRV_BASE | 0x00000005) | 
| An SPI transfer timeout. | |
| #define | ECODE_EMDRV_SPIDRV_TIMER_ALLOC_ERROR ( ECODE_EMDRV_SPIDRV_BASE | 0x00000004) | 
| Unable to allocate timeout timer. | |
| #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_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. | |
| Typedefs | |
| typedef enum SPIDRV_BitOrder | SPIDRV_BitOrder_t | 
| SPI bus bit order. | |
| typedef void(* | SPIDRV_Callback_t ) (struct SPIDRV_HandleData *handle, Ecode_t transferStatus, int itemsTransferred) | 
| SPIDRV transfer completion callback function. | |
| typedef enum SPIDRV_ClockMode | SPIDRV_ClockMode_t | 
| SPI clock mode (clock polarity and phase). | |
| typedef enum SPIDRV_CsControl | SPIDRV_CsControl_t | 
| SPI master chip select (CS) control scheme. | |
| typedef SPIDRV_HandleData_t * | SPIDRV_Handle_t | 
| An SPI driver instance handle. | |
| typedef struct SPIDRV_HandleData | SPIDRV_HandleData_t | 
| typedef struct SPIDRV_Init | SPIDRV_Init_t | 
| typedef enum SPIDRV_SlaveStart | SPIDRV_SlaveStart_t | 
| SPI slave transfer start scheme. | |
| typedef enum SPIDRV_Type | SPIDRV_Type_t | 
| SPI driver instance type. | |
| Enumerations | |
| enum | SPIDRV_BitOrder
         
         { spidrvBitOrderLsbFirst = 0, spidrvBitOrderMsbFirst = 1 } | 
| SPI bus bit order. | |
| enum | SPIDRV_ClockMode
         
         { spidrvClockMode0 = 0, spidrvClockMode1 = 1, spidrvClockMode2 = 2, spidrvClockMode3 = 3 } | 
| SPI clock mode (clock polarity and phase). | |
| enum | SPIDRV_CsControl
         
         { spidrvCsControlAuto = 0, spidrvCsControlApplication = 1 } | 
| SPI master chip select (CS) control scheme. | |
| enum | SPIDRV_SlaveStart
         
         { spidrvSlaveStartImmediate = 0, spidrvSlaveStartDelayed = 1 } | 
| SPI slave transfer start scheme. | |
| enum | SPIDRV_Type
         
         { spidrvMaster = 0, spidrvSlave = 1 } | 
| SPI driver instance type. | |
| Functions | |
| Ecode_t | SPIDRV_AbortTransfer ( SPIDRV_Handle_t handle) | 
| Abort an ongoing SPI transfer. | |
| Ecode_t | SPIDRV_DeInit ( SPIDRV_Handle_t handle) | 
| Deinitialize an 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 an SPI transfer. | |
| Ecode_t | SPIDRV_Init ( SPIDRV_Handle_t handle, SPIDRV_Init_t *initData) | 
| Initialize an SPI driver instance. | |
| Ecode_t | SPIDRV_MReceive ( SPIDRV_Handle_t handle, void *buffer, int count, SPIDRV_Callback_t callback) | 
| Start an SPI master receive transfer. | |
| Ecode_t | SPIDRV_MReceiveB ( SPIDRV_Handle_t handle, void *buffer, int count) | 
| Start an 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 an SPI master transfer. | |
| Ecode_t | SPIDRV_MTransferB ( SPIDRV_Handle_t handle, const void *txBuffer, void * rxBuffer , int count) | 
| Start an SPI master blocking transfer. | |
| Ecode_t | SPIDRV_MTransferSingleItemB ( SPIDRV_Handle_t handle, uint32_t txValue, void *rxValue) | 
| Start an 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 an SPI master transmit transfer. | |
| Ecode_t | SPIDRV_MTransmitB ( SPIDRV_Handle_t handle, const void *buffer, int count) | 
| Start an 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 an SPI slave receive transfer. | |
| Ecode_t | SPIDRV_SReceiveB ( SPIDRV_Handle_t handle, void *buffer, int count, int timeoutMs) | 
| Start an 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 an SPI slave transfer. | |
| Ecode_t | SPIDRV_STransferB ( SPIDRV_Handle_t handle, const void *txBuffer, void * rxBuffer , int count, int timeoutMs) | 
| Start an SPI slave blocking transfer. | |
| Ecode_t | SPIDRV_STransmit ( SPIDRV_Handle_t handle, const void *buffer, int count, SPIDRV_Callback_t callback, int timeoutMs) | 
| Start an SPI slave transmit transfer. | |
| Ecode_t | SPIDRV_STransmitB ( SPIDRV_Handle_t handle, const void *buffer, int count, int timeoutMs) | 
| Start an SPI slave blocking transmit transfer. | |