|
SmartSnippets DA1459x SDK
|
Go to the documentation of this file.
46 #if dg_configUSE_HW_SPI
53 #define SBA(id) ((SPI_Type *)id)
55 typedef void (*hw_spi_tx_callback)(
void *user_data, uint16_t transferred);
61 #define HW_SPI1 ((void *)SPI_BASE)
63 #define HW_SPI2 ((void *)SPI2_BASE)
66 #define HW_SPI3 ((void *)SPI3_BASE)
68 typedef void * HW_SPI_ID;
81 #define HW_SPI_DMA_SUPPORT dg_configSPI_DMA_SUPPORT
90 #ifndef HW_SPI1_USE_FIXED_WORD_SIZE
91 #define HW_SPI1_USE_FIXED_WORD_SIZE (0)
102 #ifndef HW_SPI2_USE_FIXED_WORD_SIZE
103 #define HW_SPI2_USE_FIXED_WORD_SIZE (0)
115 #ifndef HW_SPI3_USE_FIXED_WORD_SIZE
116 #define HW_SPI3_USE_FIXED_WORD_SIZE (0)
120 #if HW_SPI1_USE_FIXED_WORD_SIZE == 1
127 #ifndef HW_SPI1_FIXED_WORD_SIZE
128 #error "HW_SPI1_FIXED_WORD_SIZE must be defined when HW_SPI1_USE_FIXED_WORD_SIZE is set!"
133 #if HW_SPI2_USE_FIXED_WORD_SIZE == 1
140 #ifndef HW_SPI2_FIXED_WORD_SIZE
141 #error "HW_SPI2_FIXED_WORD_SIZE must be defined when HW_SPI2_USE_FIXED_WORD_SIZE is set!"
147 #if HW_SPI3_USE_FIXED_WORD_SIZE == 1
154 #ifndef HW_SPI3_FIXED_WORD_SIZE
155 #error "HW_SPI3_FIXED_WORD_SIZE must be defined when HW_SPI3_USE_FIXED_WORD_SIZE is set!"
297 REG_MSK(SPI, SPI_CTRL_REG, SPI_TX_EN)
310 #if (HW_SPI_DMA_SUPPORT == 1)
340 #if (HW_SPI_DMA_SUPPORT == 1)
344 hw_spi_dma_prio_t dma_prio;
361 #define HW_SPI_REG_SETF(id, reg, field, val) \
362 SBA(id)->reg = ((SBA(id)->reg & ~(SPI_##reg##_##field##_Msk)) | \
363 ((SPI_##reg##_##field##_Msk) & ((val) << (SPI_##reg##_##field##_Pos))))
375 #define HW_SPI_REG_GETF(id, reg, field) \
376 ((SBA(id)->reg & (SPI_##reg##_##field##_Msk)) >> (SPI_##reg##_##field##_Pos))
386 #define HW_SPI_REG_SET_FIELD(reg, field, var, val) \
387 REG_SET_FIELD(SPI, reg##_REG, field, var, val)
400 #define HW_SPI_ASSERT(id) \
402 ASSERT_WARNING(REG_GETF(CRG_COM, CLK_COM_REG, SPI_ENABLE) == true); \
423 return (uint16_t) SBA(
id)->SPI_FIFO_READ_REG;
442 SBA(
id)->SPI_FIFO_WRITE_REG = data;
463 return (uint8_t) SBA(
id)->SPI_FIFO_READ_REG;
483 SBA(
id)->SPI_FIFO_WRITE_REG = data;
503 return SBA(
id)->SPI_FIFO_READ_REG;
522 SBA(
id)->SPI_FIFO_WRITE_REG = data;
590 hw_spi_tx_callback cb,
void *user_data);
645 hw_spi_tx_callback cb,
void *user_data);
678 hw_spi_tx_callback cb,
void *user_data);
708 SBA(
id)->SPI_CTRL_REG = val;
721 return SBA(
id)->SPI_CTRL_REG;
908 HW_SPI_REG_SETF(
id, SPI_CTRL_REG, SPI_CAPTURE_AT_NEXT_EDGE, capture_next_edge);
969 SBA(
id)->SPI_CONFIG_REG = spi_config_reg;
982 return SBA(
id)->SPI_CONFIG_REG;
1075 return (
bool)
REG_GETF(CRG_COM, CLK_COM_REG, SPI_ENABLE);
1088 SBA(
id)->SPI_CLOCK_REG = spi_clock_reg;
1101 return SBA(
id)->SPI_CLOCK_REG;
1145 SBA(
id)->SPI_FIFO_CONFIG_REG = val;
1158 return SBA(
id)->SPI_FIFO_CONFIG_REG;
1233 HW_SPI_REG_SETF(
id, SPI_IRQ_MASK_REG, SPI_IRQ_MASK_TX_EMPTY, irq_tx_empty_en);
1259 HW_SPI_REG_SETF(
id, SPI_IRQ_MASK_REG, SPI_IRQ_MASK_RX_FULL, irq_rx_full_en);
1288 return (
bool)
HW_SPI_REG_GETF(
id, SPI_STATUS_REG, SPI_STATUS_TX_EMPTY);
1301 return (
bool)
HW_SPI_REG_GETF(
id, SPI_STATUS_REG, SPI_STATUS_RX_FULL);
1317 return SBA(
id)->SPI_FIFO_STATUS_REG;
1331 return (
bool)
HW_SPI_REG_GETF(
id, SPI_FIFO_STATUS_REG, SPI_TRANSACTION_ACTIVE);
1344 return (uint8_t)
HW_SPI_REG_GETF(
id, SPI_FIFO_STATUS_REG, SPI_TX_FIFO_LEVEL);
1359 return (
bool)
HW_SPI_REG_GETF(
id, SPI_FIFO_STATUS_REG, SPI_STATUS_RX_EMPTY);
1372 return (uint8_t)
HW_SPI_REG_GETF(
id, SPI_FIFO_STATUS_REG, SPI_RX_FIFO_LEVEL);
1386 return (uint8_t)
HW_SPI_REG_GETF(
id, SPI_FIFO_STATUS_REG, SPI_RX_FIFO_OVFL);
1402 return SBA(
id)->SPI_FIFO_READ_REG;
1418 SBA(
id)->SPI_FIFO_WRITE_REG = tx_data;
1434 SBA(
id)->SPI_CS_CONFIG_REG = cs_mode;
1467 SBA(
id)->SPI_TXBUFFER_FORCE_REG = tx_data;
1480 uint32_t tmp = SBA(
id)->SPI_IRQ_MASK_REG;
1487 SBA(
id)->SPI_IRQ_MASK_REG = tmp;
1498 uint32_t tmp = SBA(
id)->SPI_IRQ_MASK_REG;
1501 SBA(
id)->SPI_IRQ_MASK_REG = tmp;
1632 #if HW_SPI1_USE_FIXED_WORD_SIZE == 1
1633 return (HW_SPI1_FIXED_WORD_SIZE);
1674 return (
bool)
HW_SPI_REG_GETF(
id, SPI_FIFO_STATUS_REG, SPI_STATUS_TX_FULL);
1783 #if (HW_SPI_DMA_SUPPORT == 1)
1797 void hw_spi_configure_dma_channels(HW_SPI_ID
id,
HW_DMA_CHANNEL rx_channel,
const hw_spi_dma_prio_t *prio);
__STATIC_INLINE HW_SPI_MODE_CPOL_CPHA hw_spi_get_config_reg_spi_mode(HW_SPI_ID id)
Get SPI_MODE from Configuration Register.
Definition: hw_spi.h:1006
__STATIC_INLINE void hw_spi_set_config_reg_spi_mode(HW_SPI_ID id, HW_SPI_MODE_CPOL_CPHA spi_cp)
Set SPI_MODE in Configuration Register.
Definition: hw_spi.h:993
__STATIC_INLINE bool hw_spi_get_fifo_status_reg_transaction_active(HW_SPI_ID id)
Get SPI transaction status from Status Register.
Definition: hw_spi.h:1329
Definition of API for the DMA Low Level Driver.
__STATIC_INLINE void hw_spi_disable_interrupt(HW_SPI_ID id)
Disables the SPI maskable interrupt (MINT) to the CPU.
Definition: hw_spi.h:1496
SPI chip-select pin definition.
Definition: hw_spi.h:304
__STATIC_INLINE void hw_spi_set_clock_freq(HW_SPI_ID id, HW_SPI_FREQ freq)
Set SPI source clock's divider for the selected SPI clock frequency.
Definition: hw_spi.h:1563
__STATIC_INLINE void hw_spi_fifo_write32(HW_SPI_ID id, uint32_t data)
Write 4 to 32-bits to TX FIFO.
Definition: hw_spi.h:520
__STATIC_INLINE void hw_spi_set_clock_reg(HW_SPI_ID id, uint8_t spi_clock_reg)
Set SPI Clock Register Value.
Definition: hw_spi.h:1086
__STATIC_INLINE void hw_spi_set_txbuffer_force_reg(HW_SPI_ID id, uint32_t tx_data)
Write SPI_TXBUFFER_FORCE_REG Register.
Definition: hw_spi.h:1465
__STATIC_INLINE HW_SPI_FIFO_TL hw_spi_get_fifo_config_reg_rx_tl(HW_SPI_ID id)
Get SPI_RX_TL from FIFO Configuration Register.
Definition: hw_spi.h:1216
void hw_spi_read_buf(HW_SPI_ID id, uint8_t *in_buf, uint16_t len, hw_spi_tx_callback cb, void *user_data)
Reads array of bytes through SPI.
void hw_spi_set_fifo_mode(HW_SPI_ID id, HW_SPI_FIFO mode)
Set SPI FIFO mode.
SPI configuration.
Definition: hw_spi.h:326
__STATIC_INLINE bool hw_spi_get_clock_en(const HW_SPI_ID id)
Check if the SPI clock is enabled.
Definition: hw_spi.h:1073
SPI_Pad cs_pad
Definition: hw_spi.h:328
__STATIC_INLINE uint16_t hw_spi_get_fifo_status_reg(HW_SPI_ID id)
Get SPI FIFO status.
Definition: hw_spi.h:1315
__STATIC_INLINE void hw_spi_set_ctrl_reg_rx_en(HW_SPI_ID id, bool spi_rx_enable)
Set SPI_RX_EN in Control Register.
Definition: hw_spi.h:802
__STATIC_INLINE HW_SPI_FIFO_TL hw_spi_get_fifo_config_reg_tx_tl(HW_SPI_ID id)
Get SPI_TX_TL from FIFO Configuration Register.
Definition: hw_spi.h:1186
#define HW_SPI_REG_SET_FIELD(reg, field, var, val)
Sets a field value of an SPI register. Aimed to be used with local variables.
Definition: hw_spi.h:386
__STATIC_INLINE bool hw_spi_get_ctrl_reg_spi_en(HW_SPI_ID id)
Get SPI_EN from Control Register.
Definition: hw_spi.h:763
__STATIC_INLINE void hw_spi_set_ctrl_reg_swap_bytes(HW_SPI_ID id, bool swap_bytes)
Set SPI_SWAP_BYTES in Control Register.
Definition: hw_spi.h:939
__STATIC_INLINE uint8_t hw_spi_get_fifo_status_reg_rx_fifo_level(HW_SPI_ID id)
Get SPI RX FIFO level from FIFO Status Register.
Definition: hw_spi.h:1370
__STATIC_INLINE void hw_spi_set_ctrl_reg(HW_SPI_ID id, uint32_t val)
Set SPI Control Register Value.
Definition: hw_spi.h:706
__STATIC_INLINE bool hw_spi_get_ctrl_reg_fifo_reset(HW_SPI_ID id)
Get SPI_FIFO_RESET from Control Register.
Definition: hw_spi.h:893
void hw_spi_init_clk_reg(const HW_SPI_ID id, bool select_divn)
Initialize peripheral divider register - select clock source and enable SPI clock.
__STATIC_INLINE void hw_spi_set_ctrl_reg_tx_en(HW_SPI_ID id, bool spi_tx_enable)
Set SPI_TX_EN in Control Register.
Definition: hw_spi.h:776
__STATIC_INLINE void hw_spi_set_cs_config_reg_mode(HW_SPI_ID id, HW_SPI_CS_MODE cs_mode)
Set CS output in master mode.
Definition: hw_spi.h:1432
Central include header file with platform definitions.
__STATIC_INLINE uint8_t hw_spi_get_fifo_status_reg_rx_fifo_overflow(HW_SPI_ID id)
Get SPI RX FIFO overflow status from FIFO Status Register.
Definition: hw_spi.h:1384
HW_SPI_FIFO_TL
Define the SPI RX/TX FIFO threshold level in bytes.
Definition: hw_spi.h:280
__STATIC_INLINE uint8_t hw_spi_fifo_read8(HW_SPI_ID id)
Read 4 to 8-bits from RX FIFO.
Definition: hw_spi.h:460
DMA peripherals priority structure.
Definition: hw_dma.h:275
__STATIC_INLINE HW_SPI_FIFO_TL hw_spi_get_fifo_depth_in_bytes(const HW_SPI_ID id)
Get SPI fifo depth in bytes.
Definition: hw_spi.h:687
void hw_spi_deinit_clk_reg(const HW_SPI_ID id)
De-initialize peripheral divider register - disable SPI clock.
void hw_spi_deinit(HW_SPI_ID id)
Disables SPI controller.
__STATIC_INLINE HW_SPI_CS_MODE hw_spi_get_cs_config_reg_mode(HW_SPI_ID id)
Get CS output in master mode.
Definition: hw_spi.h:1445
__STATIC_INLINE void hw_spi_set_irq_mask_reg_rx_full_en(HW_SPI_ID id, HW_SPI_MINT irq_rx_full_en)
Set SPI_IRQ_MASK_RX_FULL in IRQ Mask Register.
Definition: hw_spi.h:1257
__STATIC_INLINE void hw_spi_wait_while_busy(HW_SPI_ID id)
Wait till SPI is not busy.
Definition: hw_spi.h:1827
__STATIC_INLINE void hw_spi_set_config_reg_slave_en(HW_SPI_ID id, HW_SPI_MODE spi_ms)
Set SPI_SLAVE_EN in Configuration Register.
Definition: hw_spi.h:1045
HW_SPI_CS_MODE
Control the CS output in master mode.
Definition: hw_spi.h:267
__STATIC_INLINE void hw_spi_set_ctrl_reg_dma_rx_en(HW_SPI_ID id, bool spi_dma_rx_enable)
Set SPI_DMA_RX_EN in Control Register.
Definition: hw_spi.h:854
__STATIC_INLINE void hw_spi_set_ctrl_reg_fifo_reset(HW_SPI_ID id, bool spi_fifo_reset)
Set SPI_FIFO_RESET in Control Register.
Definition: hw_spi.h:880
__STATIC_INLINE void hw_spi_set_ctrl_reg_capture_next_edge(HW_SPI_ID id, HW_SPI_MASTER_EDGE_CAPTURE capture_next_edge)
Set SPI_CAPTURE_AT_NEXT_EDGE in Control Register.
Definition: hw_spi.h:906
void hw_spi_init(HW_SPI_ID id, const hw_spi_config_t *cfg)
Initialize the SPI module.
__STATIC_INLINE uint32_t hw_spi_get_config_reg(HW_SPI_ID id)
Get SPI Configuration Register Value.
Definition: hw_spi.h:980
HW_SPI_FIFO hw_spi_change_fifo_mode(HW_SPI_ID id, HW_SPI_FIFO mode)
Change SPI FIFO mode.
HW_GPIO_PIN
GPIO pin number.
Definition: hw_gpio.h:106
bool select_divn
Definition: hw_spi.h:339
HW_SPI_FIFO hw_spi_get_fifo_mode(HW_SPI_ID id)
Get SPI FIFO mode.
__STATIC_INLINE HW_SPI_FREQ hw_spi_get_clock_reg_clk_div(HW_SPI_ID id)
Get SPI_CLK_DIV from Configuration Register.
Definition: hw_spi.h:1129
HW_SPI_MODE_CPOL_CPHA cpol_cpha_mode
Definition: hw_spi.h:331
HW_SPI_FIFO fifo_mode
Definition: hw_spi.h:333
__STATIC_INLINE void hw_spi_fifo_write8(HW_SPI_ID id, uint8_t data)
Write 4 to 8-bits to TX FIFO.
Definition: hw_spi.h:480
__STATIC_INLINE uint16_t hw_spi_fifo_read16(HW_SPI_ID id)
Read 4 to 16-bits from RX FIFO.
Definition: hw_spi.h:420
HW_GPIO_PORT
GPIO port number.
Definition: hw_gpio.h:96
HW_DMA_CHANNEL
DMA channel number.
Definition: hw_dma.h:62
HW_SPI_MODE
Master/slave mode.
Definition: hw_spi.h:213
void hw_spi_set_cs_low(HW_SPI_ID id)
Set SPI CS low.
__STATIC_INLINE HW_SPI_MINT hw_spi_get_irq_mask_reg_rx_full_en(HW_SPI_ID id)
Get SPI_IRQ_MASK_RX_FULL from IRQ Mask Register.
Definition: hw_spi.h:1270
__STATIC_INLINE void hw_spi_set_mode(HW_SPI_ID id, HW_SPI_MODE smn)
Set SPI master/slave mode.
Definition: hw_spi.h:1592
__STATIC_INLINE void hw_spi_set_fifo_config_reg(HW_SPI_ID id, uint8_t val)
Set SPI FIFO Configuration Register Value.
Definition: hw_spi.h:1143
__STATIC_INLINE void hw_spi_set_fifo_write_reg(HW_SPI_ID id, uint32_t tx_data)
Write to TX FIFO. Write access is permitted only if SPI_TX_FIFO_FULL is 0.
Definition: hw_spi.h:1416
__STATIC_INLINE bool hw_spi_get_ctrl_reg_rx_en(HW_SPI_ID id)
Get SPI_RX_EN from Control Register.
Definition: hw_spi.h:815
uint32_t hw_spi_writeread32(HW_SPI_ID id, uint32_t val)
Writes/reads 4 to 32 bits to the SPI.
__STATIC_INLINE void hw_spi_set_fifo_config_reg_tx_tl(HW_SPI_ID id, HW_SPI_FIFO_TL spi_tx_tl)
Set SPI_TX_TL in FIFO Configuration Register.
Definition: hw_spi.h:1172
__STATIC_INLINE bool hw_spi_get_ctrl_reg_dma_rx_en(HW_SPI_ID id)
Get SPI_DMA_RX_EN from Control Register.
Definition: hw_spi.h:867
__STATIC_INLINE void hw_spi_enable_interrupt(HW_SPI_ID id)
Enables the SPI maskable interrupt (MINT) to the CPU.
Definition: hw_spi.h:1478
uint8_t disabled
Definition: hw_spi.h:334
__STATIC_INLINE bool hw_spi_get_status_reg_rx_fifo_full(HW_SPI_ID id)
Get SPI RX FIFO Full status from Status Register.
Definition: hw_spi.h:1299
uint8_t HW_SPI_FREQ
Source clock's divider for the selected SPI clock frequency.
Definition: hw_spi.h:251
HW_SPI_MODE_CPOL_CPHA
Defines the SPI mode Clock Polarity and Clock Phase (CPOL, CPHA)
Definition: hw_spi.h:224
#define REG_MSK(base, reg, field)
Access register field mask.
Definition: sdk_defs.h:583
HW_GPIO_MODE mode
Definition: hw_gpio.h:211
__STATIC_INLINE HW_SPI_MASTER_EDGE_CAPTURE hw_spi_get_ctrl_reg_capture_next_edge(HW_SPI_ID id)
Get SPI_CAPTURE_AT_NEXT_EDGE from Control Register.
Definition: hw_spi.h:919
__STATIC_INLINE void hw_spi_set_ctrl_reg_dma_tx_en(HW_SPI_ID id, bool spi_dma_tx_enable)
Set SPI_DMA_TX_EN in Control Register.
Definition: hw_spi.h:828
HW_SPI_WORD
Word length.
Definition: hw_spi.h:173
__STATIC_INLINE uint32_t hw_spi_fifo_read32(HW_SPI_ID id)
Read 4 to 32-bits from RX FIFO.
Definition: hw_spi.h:501
__STATIC_INLINE void hw_spi_set_clock_reg_clk_div(HW_SPI_ID id, HW_SPI_FREQ spi_clk_div)
Set SPI_CLK_DIV in Clock Register Applicable only in master mode. Defines the spi clock frequency in ...
Definition: hw_spi.h:1115
__STATIC_INLINE void hw_spi_enable(HW_SPI_ID id, uint8_t on)
Switch the SPI module on and off.
Definition: hw_spi.h:1530
__STATIC_INLINE HW_SPI_MINT hw_spi_get_irq_mask_reg_tx_empty_en(HW_SPI_ID id)
Get SPI_IRQ_MASK_TX_EMPTY from IRQ Mask Register.
Definition: hw_spi.h:1244
HW_SPI_MINT
Disable/enable interrupts to the CPU.
Definition: hw_spi.h:239
__STATIC_INLINE bool hw_spi_is_tx_fifo_full(HW_SPI_ID id)
Get the value of the SPI TX FIFO full bit.
Definition: hw_spi.h:1672
HW_SPI_WORD word_mode
Definition: hw_spi.h:329
__STATIC_INLINE uint32_t hw_spi_get_ctrl_reg(HW_SPI_ID id)
Get SPI Control Register Value.
Definition: hw_spi.h:719
__STATIC_INLINE bool hw_spi_get_ctrl_reg_swap_bytes(HW_SPI_ID id)
Get SPI_SWAP_BYTES from Control Register.
Definition: hw_spi.h:952
HW_SPI_CS_MODE spi_cs
Definition: hw_spi.h:335
__STATIC_INLINE uint8_t hw_spi_get_clock_reg(HW_SPI_ID id)
Get SPI Clock Register Value.
Definition: hw_spi.h:1099
__STATIC_INLINE void hw_spi_set_ctrl_reg_clear_enable(HW_SPI_ID id)
Set SPI Control Register Value to clear SPI enable.
Definition: hw_spi.h:730
Definition of API for the GPIO Low Level Driver.
void hw_spi_set_cs_pad(HW_SPI_ID id, const SPI_Pad *pad, HW_SPI_CS_MODE cs_mode, bool validate)
Set SPI GPIO Chip Select (CS) Pad.
__STATIC_INLINE uint32_t hw_spi_get_fifo_read_reg(HW_SPI_ID id)
Read RX FIFO. Read access is permitted only if SPI_RX_FIFO_EMPTY = 0.
Definition: hw_spi.h:1400
void hw_spi_write_buf(HW_SPI_ID id, const uint8_t *out_buf, uint16_t len, hw_spi_tx_callback cb, void *user_data)
Write array of bytes to SPI.
HW_SPI_FIFO_TL rx_tl
Definition: hw_spi.h:336
bool swap_bytes
Definition: hw_spi.h:338
#define HW_SPI_REG_GETF(id, reg, field)
Get the value of an SPI register field.
Definition: hw_spi.h:375
#define SPI_SPI_CLOCK_REG_SPI_CLK_DIV_Msk
Definition: DA1459x-00.h:4653
#define REG_GETF(base, reg, field)
Return the value of a register field.
Definition: sdk_defs.h:711
bool hw_spi_is_occupied(const HW_SPI_ID id)
get SPI transaction status
__STATIC_INLINE bool hw_spi_get_ctrl_reg_tx_en(HW_SPI_ID id)
Get SPI_TX_EN from Control Register.
Definition: hw_spi.h:789
__STATIC_INLINE uint8_t hw_spi_get_fifo_status_reg_tx_fifo_level(HW_SPI_ID id)
Get SPI TX FIFO level from FIFO Status Register.
Definition: hw_spi.h:1342
__STATIC_INLINE uint8_t hw_spi_is_enabled(HW_SPI_ID id)
Get the on/off status of the SPI module.
Definition: hw_spi.h:1549
__STATIC_INLINE void hw_spi_set_ctrl_reg_spi_en(HW_SPI_ID id, bool spi_enable)
Set SPI_EN in Control Register.
Definition: hw_spi.h:750
__STATIC_INLINE uint32_t hw_spi_get_memory_word_size(HW_SPI_ID id)
Get the SPI word size.
Definition: hw_spi.h:1650
HW_SPI_MODE smn_role
Definition: hw_spi.h:330
__STATIC_INLINE void hw_spi_set_irq_mask_reg_tx_empty_en(HW_SPI_ID id, HW_SPI_MINT irq_tx_empty_en)
Set SPI_IRQ_MASK_TX_EMPTY in IRQ Mask Register.
Definition: hw_spi.h:1231
void hw_spi_set_cs_high(HW_SPI_ID id)
Set SPI CS high.
HW_SPI_FREQ xtal_freq
Definition: hw_spi.h:332
HW_SPI_FIFO_TL tx_tl
Definition: hw_spi.h:337
__STATIC_INLINE void hw_spi_set_config_reg(HW_SPI_ID id, uint32_t spi_config_reg)
Set SPI Configuration Register Value.
Definition: hw_spi.h:967
__STATIC_INLINE bool hw_spi_get_fifo_status_reg_rx_empty(HW_SPI_ID id)
Get SPI RX FIFO Empty status from FIFO Status Register.
Definition: hw_spi.h:1357
uint16_t hw_spi_writeread(HW_SPI_ID id, uint16_t val)
Writes/reads 4 to 16 bits to the SPI.
__STATIC_INLINE HW_SPI_WORD hw_spi_get_word_size(HW_SPI_ID id)
Get the SPI word mode.
Definition: hw_spi.h:1630
__STATIC_INLINE uint8_t hw_spi_is_busy(HW_SPI_ID id)
Get SPI busy status in master mode.
Definition: hw_spi.h:1813
__STATIC_INLINE void hw_spi_set_config_reg_word_len(HW_SPI_ID id, HW_SPI_WORD spi_wsz)
Set SPI_WORD_LENGTH in Configuration Register.
Definition: hw_spi.h:1019
__STATIC_INLINE uint32_t hw_spi_get_fifo_config_reg(HW_SPI_ID id)
Get SPI FIFO Configuration Register Value.
Definition: hw_spi.h:1156
__STATIC_INLINE HW_SPI_MODE hw_spi_get_config_reg_slave_en(HW_SPI_ID id)
Get SPI Master/Slave mode from Configuration Register.
Definition: hw_spi.h:1058
__STATIC_INLINE HW_SPI_FREQ hw_spi_get_clock_freq(HW_SPI_ID id)
Get SPI source clock's divider for the selected SPI clock frequency.
Definition: hw_spi.h:1578
__STATIC_INLINE HW_SPI_WORD hw_spi_get_config_reg_word_len(HW_SPI_ID id)
Get SPI_WORD_LENGTH from Configuration Register.
Definition: hw_spi.h:1032
__STATIC_INLINE void hw_spi_set_fifo_config_reg_rx_tl(HW_SPI_ID id, HW_SPI_FIFO_TL spi_rx_tl)
Set SPI_RX_TL in FIFO Configuration Register.
Definition: hw_spi.h:1202
HW_SPI_FIFO
FIFO mode.
Definition: hw_spi.h:292
__STATIC_INLINE HW_SPI_MINT hw_spi_is_interrupt_enabled(HW_SPI_ID id)
Get the status of the SPI maskable interrupt (MINT) to the CPU.
Definition: hw_spi.h:1512
__STATIC_INLINE void hw_spi_fifo_write16(HW_SPI_ID id, uint16_t data)
Write 4 to 16-bits to TX FIFO.
Definition: hw_spi.h:440
HW_SPI_MASTER_EDGE_CAPTURE
Define the SPI master edge capture type.
Definition: hw_spi.h:257
__STATIC_INLINE HW_SPI_MODE hw_spi_is_slave(HW_SPI_ID id)
Get the SPI master/slave mode.
Definition: hw_spi.h:1605
__STATIC_INLINE void hw_spi_set_word_size(HW_SPI_ID id, HW_SPI_WORD word)
Set SPI word mode.
Definition: hw_spi.h:1617
void hw_spi_writeread_buf(HW_SPI_ID id, const uint8_t *out_buf, uint8_t *in_buf, uint16_t len, hw_spi_tx_callback cb, void *user_data)
Write and reads array of bytes through SPI.
#define HW_SPI_REG_SETF(id, reg, field, val)
Write a value to an SPI register field.
Definition: hw_spi.h:361
__STATIC_INLINE bool hw_spi_get_ctrl_reg_dma_tx_en(HW_SPI_ID id)
Get SPI_DMA_TX_EN from Control Register.
Definition: hw_spi.h:841
__STATIC_INLINE bool hw_spi_get_status_reg_tx_fifo_empty(HW_SPI_ID id)
Get SPI TX FIFO Empty status from Status Register.
Definition: hw_spi.h:1286