8 #ifndef HPM_COMPONENT_SPI_H
9 #define HPM_COMPONENT_SPI_H
13 #ifdef HPMSOC_HAS_HPMSDK_DMAV2
23 #define SPI_CS_ACTIVE 0
27 #define USE_DMA_MGR (0U)
34 #define SPI_DMA_DESC_COUNT_PER_TRANS (3U)
63 void (*write_cs)(uint32_t
cs_pin, uint8_t state);
82 typedef void (*spi_dma_complete_cb)(uint32_t channel);
230 spi_dma_complete_cb tx_complete,
231 spi_dma_complete_cb rx_complete);
244 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:126
static void size
Definition: hpm_math.h:6938
spi_mode_selection_t
spi mode selection
Definition: hpm_spi_drv.h:47
spi_sclk_idle_state_t
spi clock polarity
Definition: hpm_spi_drv.h:55
spi_shift_direction_t
Definition: hpm_spi_drv.h:151
spi_sclk_sampling_clk_edges_t
spi clock phase
Definition: hpm_spi_drv.h:63
spi_data_phase_format_t
spi data phase format
Definition: hpm_spi_drv.h:127
@ cs_pin
Definition: hpm_spi_drv.h:265
struct _dma_resource dma_resource_t
DMA Resource Structure.
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:833
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:1016
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:581
hpm_stat_t hpm_spi_initialize(SPI_Type *ptr, spi_initialize_config_t *config)
initialize for spi
Definition: hpm_spi.c:805
void hpm_spi_get_default_init_config(spi_initialize_config_t *config)
spi get default init config
Definition: hpm_spi.c:794
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:932
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:533
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:980
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:1063
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:57
dma_linked_descriptor_t * dma_linked_descriptor
Definition: hpm_spi.h:65
uint32_t * spi_transctrl
Definition: hpm_spi.h:62
spi_dma_context_t dma_context
Definition: hpm_spi.h:64
uint8_t * rx_buff
Definition: hpm_spi.h:52
SPI_Type * ptr
Definition: hpm_spi.h:49
uint32_t rx_size
Definition: hpm_spi.h:56
uint32_t tx_size
Definition: hpm_spi.h:58
uint8_t running_core
Definition: hpm_spi.h:54
uint32_t data_len_in_byte
Definition: hpm_spi.h:60
uint32_t per_trans_max
Definition: hpm_spi.h:61
uint32_t addr
Definition: hpm_spi.h:55
uint32_t cs_pin
Definition: hpm_spi.h:50
uint32_t tx_count
Definition: hpm_spi.h:59
uint8_t * tx_buff
Definition: hpm_spi.h:53
uint8_t cmd
Definition: hpm_spi.h:51
spi control config structure
Definition: hpm_spi_drv.h:236
DMAMUX_Type * dmamux_ptr
Definition: hpm_spi.h:38
uint8_t tx_dmamux_ch
Definition: hpm_spi.h:42
uint8_t rx_req
Definition: hpm_spi.h:43
uint8_t data_width
Definition: hpm_spi.h:45
DMA_Type * dma_ptr
Definition: hpm_spi.h:37
uint8_t rx_dmamux_ch
Definition: hpm_spi.h:41
uint8_t rx_dma_ch
Definition: hpm_spi.h:39
uint8_t tx_dma_ch
Definition: hpm_spi.h:40
uint8_t tx_req
Definition: hpm_spi.h:44
spi configuration init structure
Definition: hpm_spi.h:71
spi_mode_selection_t mode
Definition: hpm_spi.h:72
spi_sclk_sampling_clk_edges_t clk_phase
Definition: hpm_spi.h:75
spi_shift_direction_t direction
Definition: hpm_spi.h:76
bool data_merge
Definition: hpm_spi.h:78
spi_data_phase_format_t io_mode
Definition: hpm_spi.h:73
uint8_t data_len
Definition: hpm_spi.h:77
spi_sclk_idle_state_t clk_polarity
Definition: hpm_spi.h:74