VSF Documented
Data Structures | Macros | Typedefs | Functions
spi.c File Reference
#include "./spi.h"
#include "../dma/dma.h"
#include "hal/driver/common/spi/spi_template.inc"

Data Structures

struct  vsf_hw_spi_dma_t
 
struct  vsf_hw_spi_t
 

Macros

#define SPI_CTL_MODE_MASK
 
#define SPI_SSCTL_MASK
 
#define VSF_SPI_CFG_IMP_PREFIX   vsf_hw
 
#define VSF_SPI_CFG_IMP_UPCASE_PREFIX   VSF_HW
 
#define VSF_SPI_CFG_IMP_LV0(__IDX, __HAL_OP)
 

Typedefs

typedef struct vsf_hw_spi_dma_t vsf_hw_spi_dma_t
 
typedef struct vsf_hw_spi_t vsf_hw_spi_t
 

Functions

vsf_err_t vsf_hw_spi_init (vsf_hw_spi_t *spi_ptr, vsf_spi_cfg_t *cfg_ptr)
 
fsm_rt_t vsf_hw_spi_enable (vsf_hw_spi_t *spi_ptr)
 
fsm_rt_t vsf_hw_spi_disable (vsf_hw_spi_t *spi_ptr)
 
void vsf_hw_spi_irq_enable (vsf_hw_spi_t *spi_ptr, vsf_spi_irq_mask_t irq_mask)
 
void vsf_hw_spi_irq_disable (vsf_hw_spi_t *spi_ptr, vsf_spi_irq_mask_t irq_mask)
 
vsf_spi_status_t vsf_hw_spi_status (vsf_hw_spi_t *spi_ptr)
 
void vsf_hw_spi_fifo_transfer (vsf_hw_spi_t *spi_ptr, void *out_buffer_ptr, uint_fast32_t out_cnt, uint_fast32_t *out_offset_ptr, void *in_buffer_ptr, uint_fast32_t in_cnt, uint_fast32_t *in_offset_ptr)
 
void vsf_hw_spi_cs_active (vsf_hw_spi_t *spi_ptr, uint_fast8_t index)
 
void vsf_hw_spi_cs_inactive (vsf_hw_spi_t *spi_ptr, uint_fast8_t index)
 
vsf_err_t vsf_hw_spi_request_transfer (vsf_hw_spi_t *spi_ptr, void *out_buffer_ptr, void *in_buffer_ptr, uint_fast32_t count)
 
vsf_err_t vsf_hw_spi_cancel_transfer (vsf_hw_spi_t *spi_ptr)
 
int_fast32_t vsf_hw_spi_get_transferred_count (vsf_hw_spi_t *spi_ptr)
 

Macro Definition Documentation

◆ SPI_CTL_MODE_MASK

#define SPI_CTL_MODE_MASK
Value:
( SPI_CTL_SLAVE_Msk | SPI_CTL_CLKPOL_Msk \
| SPI_CTL_TXNEG_Msk | SPI_CTL_RXNEG_Msk \
| SPI_CTL_DWIDTH_Msk | SPI_CTL_HALFDPX_Msk \
| SPI_CTL_DATDIR_Msk | SPI_CTL_RXONLY_Msk )

◆ SPI_SSCTL_MASK

#define SPI_SSCTL_MASK
Value:
@ VSF_SPI_SLAVE_SELECTION_ACTIVE_HIGH
Definition spi.h:110
@ SPI_AUTO_SLAVE_SELECTION_ENABLE
Definition spi.h:106

◆ VSF_SPI_CFG_IMP_PREFIX

#define VSF_SPI_CFG_IMP_PREFIX   vsf_hw

◆ VSF_SPI_CFG_IMP_UPCASE_PREFIX

#define VSF_SPI_CFG_IMP_UPCASE_PREFIX   VSF_HW

◆ VSF_SPI_CFG_IMP_LV0

#define VSF_SPI_CFG_IMP_LV0 (   __IDX,
  __HAL_OP 
)
Value:
vsf_hw_spi_t vsf_hw_spi ## __IDX = { \
.reg = SPI ## __IDX, \
.irq = SPI ## __IDX ## _IRQn, \
.tx_dma = { \
.per_index = M484_DMA_SPI ## __IDX ## _TX, \
.channel = VSF_HW_SPI ## __IDX ## _DMA_TX_CHANNEL, \
}, \
.rx_dma = { \
.per_index = M484_DMA_SPI ## __IDX ## _RX, \
.channel = VSF_HW_SPI ## __IDX ## _DMA_RX_CHANNEL, \
}, \
__HAL_OP \
};
Definition spi.c:69
SPI_T * reg
Definition spi.c:54

Typedef Documentation

◆ vsf_hw_spi_dma_t

◆ vsf_hw_spi_t

typedef struct vsf_hw_spi_t vsf_hw_spi_t

Function Documentation

◆ vsf_hw_spi_init()

vsf_err_t vsf_hw_spi_init ( vsf_hw_spi_t spi_ptr,
vsf_spi_cfg_t cfg_ptr 
)

◆ vsf_hw_spi_enable()

fsm_rt_t vsf_hw_spi_enable ( vsf_hw_spi_t spi_ptr)

◆ vsf_hw_spi_disable()

fsm_rt_t vsf_hw_spi_disable ( vsf_hw_spi_t spi_ptr)

◆ vsf_hw_spi_irq_enable()

void vsf_hw_spi_irq_enable ( vsf_hw_spi_t spi_ptr,
vsf_spi_irq_mask_t  irq_mask 
)

◆ vsf_hw_spi_irq_disable()

void vsf_hw_spi_irq_disable ( vsf_hw_spi_t spi_ptr,
vsf_spi_irq_mask_t  irq_mask 
)

◆ vsf_hw_spi_status()

vsf_spi_status_t vsf_hw_spi_status ( vsf_hw_spi_t spi_ptr)

◆ vsf_hw_spi_fifo_transfer()

void vsf_hw_spi_fifo_transfer ( vsf_hw_spi_t spi_ptr,
void *  out_buffer_ptr,
uint_fast32_t  out_cnt,
uint_fast32_t out_offset_ptr,
void *  in_buffer_ptr,
uint_fast32_t  in_cnt,
uint_fast32_t in_offset_ptr 
)

◆ vsf_hw_spi_cs_active()

void vsf_hw_spi_cs_active ( vsf_hw_spi_t spi_ptr,
uint_fast8_t  index 
)

◆ vsf_hw_spi_cs_inactive()

void vsf_hw_spi_cs_inactive ( vsf_hw_spi_t spi_ptr,
uint_fast8_t  index 
)

◆ vsf_hw_spi_request_transfer()

vsf_err_t vsf_hw_spi_request_transfer ( vsf_hw_spi_t spi_ptr,
void *  out_buffer_ptr,
void *  in_buffer_ptr,
uint_fast32_t  count 
)

◆ vsf_hw_spi_cancel_transfer()

vsf_err_t vsf_hw_spi_cancel_transfer ( vsf_hw_spi_t spi_ptr)

◆ vsf_hw_spi_get_transferred_count()

int_fast32_t vsf_hw_spi_get_transferred_count ( vsf_hw_spi_t spi_ptr)