8 #ifndef HPM_COMPONENT_SPI_H
9 #define HPM_COMPONENT_SPI_H
13 #ifdef HPMSOC_HAS_HPMSDK_DMAV2
20 #include "hpm_l1c_drv.h"
23 #define SPI_CS_ACTIVE 0
27 #define USE_DMA_MGR (0U)
31 #define SPI_DMA_DESC_COUNT_PER_TRANS (3U)
60 void (*write_cs)(uint32_t
cs_pin, uint8_t state);
79 typedef void (*spi_dma_complete_cb)(uint32_t channel);
227 spi_dma_complete_cb tx_complete,
228 spi_dma_complete_cb rx_complete);
241 hpm_stat_t hpm_spi_transmit_receive_nonblocking(
SPI_Type *ptr, uint8_t *wbuff, uint8_t *rbuff, uint32_t
size);
uint32_t hpm_stat_t
Definition: hpm_common.h:123
static void size
Definition: hpm_math.h:6899
spi_mode_selection_t
spi mode selection
Definition: hpm_spi_drv.h:43
spi_sclk_idle_state_t
spi clock polarity
Definition: hpm_spi_drv.h:51
spi_shift_direction_t
Definition: hpm_spi_drv.h:147
spi_sclk_sampling_clk_edges_t
spi clock phase
Definition: hpm_spi_drv.h:59
spi_data_phase_format_t
spi data phase format
Definition: hpm_spi_drv.h:123
@ cs_pin
Definition: hpm_spi_drv.h:261
hpm_stat_t hpm_spi_set_sclk_frequency(SPI_Type *ptr, uint32_t freq)
set spi sclk frequency for spi master
Definition: hpm_spi.c:836
hpm_stat_t hpm_spi_transmit_blocking(SPI_Type *ptr, uint8_t *buff, uint32_t size, uint32_t timeout)
transmit block for spi
Definition: hpm_spi.c:1019
hpm_stat_t hpm_spi_release_gpio_cs(spi_context_t *context)
hpm_spi releases gpio cs pin after SPI transfer completed
Definition: hpm_spi.c:584
hpm_stat_t hpm_spi_initialize(SPI_Type *ptr, spi_initialize_config_t *config)
initialize for spi
Definition: hpm_spi.c:808
void hpm_spi_get_default_init_config(spi_initialize_config_t *config)
spi get default init config
Definition: hpm_spi.c:797
hpm_stat_t hpm_spi_transmit_receive_blocking(SPI_Type *ptr, uint8_t *wbuff, uint8_t *rbuff, uint32_t size, uint32_t timeout)
transmit and receive block for spi
Definition: hpm_spi.c:935
hpm_stat_t hpm_spi_setup_dma_transfer(spi_context_t *context, spi_control_config_t *config)
hpm_spi setup dma transfer
Definition: hpm_spi.c:536
hpm_stat_t hpm_spi_receive_blocking(SPI_Type *ptr, uint8_t *buff, uint32_t size, uint32_t timeout)
receive block for spi
Definition: hpm_spi.c:983
hpm_stat_t hpm_spi_transmit_receive_setup_dma(SPI_Type *ptr, uint32_t size)
transmit and receive setup dma for spi
Definition: hpm_spi.c:1066
hpm_stat_t hpm_spi_transmit_setup_dma(SPI_Type *ptr, uint32_t size)
transmit setup dma for spi
Definition: hpm_spi.c:1116
hpm_stat_t hpm_spi_receive_setup_dma(SPI_Type *ptr, uint32_t size)
receive setup dma for spi
Definition: hpm_spi.c:1091
Definition: hpm_dmamux_regs.h:12
Definition: hpm_dma_regs.h:12
Definition: hpm_spi_regs.h:12
Linked descriptor.
Definition: hpm_dma_drv.h:92
uint32_t rx_count
Definition: hpm_spi.h:54
dma_linked_descriptor_t * dma_linked_descriptor
Definition: hpm_spi.h:62
uint32_t * spi_transctrl
Definition: hpm_spi.h:59
spi_dma_context_t dma_context
Definition: hpm_spi.h:61
uint8_t * rx_buff
Definition: hpm_spi.h:49
SPI_Type * ptr
Definition: hpm_spi.h:46
uint32_t rx_size
Definition: hpm_spi.h:53
uint32_t tx_size
Definition: hpm_spi.h:55
uint8_t running_core
Definition: hpm_spi.h:51
uint32_t data_len_in_byte
Definition: hpm_spi.h:57
uint32_t per_trans_max
Definition: hpm_spi.h:58
uint32_t addr
Definition: hpm_spi.h:52
uint32_t cs_pin
Definition: hpm_spi.h:47
uint32_t tx_count
Definition: hpm_spi.h:56
uint8_t * tx_buff
Definition: hpm_spi.h:50
uint8_t cmd
Definition: hpm_spi.h:48
spi control config structure
Definition: hpm_spi_drv.h:232
DMAMUX_Type * dmamux_ptr
Definition: hpm_spi.h:35
uint8_t tx_dmamux_ch
Definition: hpm_spi.h:39
uint8_t rx_req
Definition: hpm_spi.h:40
uint8_t data_width
Definition: hpm_spi.h:42
DMA_Type * dma_ptr
Definition: hpm_spi.h:34
uint8_t rx_dmamux_ch
Definition: hpm_spi.h:38
uint8_t rx_dma_ch
Definition: hpm_spi.h:36
uint8_t tx_dma_ch
Definition: hpm_spi.h:37
uint8_t tx_req
Definition: hpm_spi.h:41
spi configuration init structure
Definition: hpm_spi.h:68
spi_mode_selection_t mode
Definition: hpm_spi.h:69
spi_sclk_sampling_clk_edges_t clk_phase
Definition: hpm_spi.h:72
spi_shift_direction_t direction
Definition: hpm_spi.h:73
bool data_merge
Definition: hpm_spi.h:75
spi_data_phase_format_t io_mode
Definition: hpm_spi.h:70
uint8_t data_len
Definition: hpm_spi.h:74
spi_sclk_idle_state_t clk_polarity
Definition: hpm_spi.h:71