52 #ifndef ti_dl_dl_spi__include 53 #define ti_dl_dl_spi__include 58 #include <ti/devices/msp/msp.h> 61 #ifdef __MSPM0_HAS_SPI__ 75 #define DL_SPI_CD_MODE_DATA (SPI_CTL1_CDMODE_DATA >> SPI_CTL1_CDMODE_OFS) 80 #define DL_SPI_CD_MODE_COMMAND (SPI_CTL1_CDMODE_COMMAND >> SPI_CTL1_CDMODE_OFS) 92 #define DL_SPI_INTERRUPT_DMA_DONE_TX (SPI_CPU_INT_IMASK_DMA_DONE_TX_SET) 97 #define DL_SPI_INTERRUPT_DMA_DONE_RX (SPI_CPU_INT_IMASK_DMA_DONE_RX_SET) 101 #define DL_SPI_INTERRUPT_IDLE (SPI_CPU_INT_IMASK_IDLE_SET) 106 #define DL_SPI_INTERRUPT_TX_EMPTY (SPI_CPU_INT_IMASK_TXEMPTY_SET) 111 #define DL_SPI_INTERRUPT_TX (SPI_CPU_INT_IMASK_TX_SET) 116 #define DL_SPI_INTERRUPT_RX (SPI_CPU_INT_IMASK_RX_SET) 121 #define DL_SPI_INTERRUPT_RX_TIMEOUT (SPI_CPU_INT_IMASK_RTOUT_SET) 126 #define DL_SPI_INTERRUPT_RX_FULL (SPI_CPU_INT_IMASK_RXFULL_SET) 131 #define DL_SPI_INTERRUPT_TX_UNDERFLOW (SPI_CPU_INT_IMASK_TXFIFO_UNF_SET) 136 #define DL_SPI_INTERRUPT_PARITY_ERROR (SPI_CPU_INT_IMASK_PER_SET) 141 #define DL_SPI_INTERRUPT_RX_OVERFLOW (SPI_CPU_INT_IMASK_RXFIFO_OVF_SET) 165 #define DL_SPI_DMA_INTERRUPT_RX (SPI_DMA_TRIG_RX_IMASK_RX_SET) 170 #define DL_SPI_DMA_INTERRUPT_RX_TIMEOUT (SPI_DMA_TRIG_RX_IMASK_RTOUT_SET) 177 #define DL_SPI_DMA_INTERRUPT_TX (SPI_DMA_TRIG_TX_IMASK_TX_SET) 185 (SPI_CTL1_PES_ENABLE | SPI_CTL1_PREN_ENABLE | SPI_CTL1_PTEN_ENABLE),
188 (SPI_CTL1_PES_DISABLE | SPI_CTL1_PREN_ENABLE | SPI_CTL1_PTEN_ENABLE),
197 (SPI_CTL0_SPO_LOW | SPI_CTL0_SPH_FIRST | SPI_CTL0_FRF_MOTOROLA_3WIRE),
200 (SPI_CTL0_SPO_LOW | SPI_CTL0_SPH_SECOND | SPI_CTL0_FRF_MOTOROLA_3WIRE),
203 (SPI_CTL0_SPO_HIGH | SPI_CTL0_SPH_FIRST | SPI_CTL0_FRF_MOTOROLA_3WIRE),
206 (SPI_CTL0_SPO_HIGH | SPI_CTL0_SPH_SECOND |
207 SPI_CTL0_FRF_MOTOROLA_3WIRE),
210 (SPI_CTL0_SPO_LOW | SPI_CTL0_SPH_FIRST | SPI_CTL0_FRF_MOTOROLA_4WIRE),
213 (SPI_CTL0_SPO_LOW | SPI_CTL0_SPH_SECOND | SPI_CTL0_FRF_MOTOROLA_4WIRE),
216 (SPI_CTL0_SPO_HIGH | SPI_CTL0_SPH_FIRST | SPI_CTL0_FRF_MOTOROLA_4WIRE),
219 (SPI_CTL0_SPO_HIGH | SPI_CTL0_SPH_SECOND |
220 SPI_CTL0_FRF_MOTOROLA_4WIRE),
494 spi->GPRCM.PWREN = (SPI_PWREN_KEY_UNLOCK_W | SPI_PWREN_ENABLE_ENABLE);
510 spi->GPRCM.PWREN = (SPI_PWREN_KEY_UNLOCK_W | SPI_PWREN_ENABLE_DISABLE);
532 (spi->GPRCM.PWREN & SPI_PWREN_ENABLE_MASK) == SPI_PWREN_ENABLE_ENABLE);
543 (SPI_RSTCTL_KEY_UNLOCK_W | SPI_RSTCTL_RESETSTKYCLR_CLR |
544 SPI_RSTCTL_RESETASSERT_ASSERT);
558 return ((spi->GPRCM.STAT & SPI_GPRCM_STAT_RESETSTKY_MASK) ==
559 SPI_GPRCM_STAT_RESETSTKY_RESET);
569 spi->CTL1 |= SPI_CTL1_ENABLE_ENABLE;
584 return ((spi->CTL1 & SPI_CTL1_ENABLE_MASK) == SPI_CTL1_ENABLE_ENABLE);
594 spi->CTL1 &= ~(SPI_CTL1_ENABLE_MASK);
629 return ((spi->STAT & SPI_STAT_BUSY_MASK) == SPI_STAT_BUSY_ACTIVE);
644 return ((spi->STAT & SPI_STAT_TFE_MASK) == SPI_STAT_TFE_EMPTY);
659 return ((spi->STAT & SPI_STAT_TNF_MASK) == SPI_STAT_TNF_FULL);
674 return ((spi->STAT & SPI_STAT_RFE_MASK) == SPI_STAT_RFE_EMPTY);
689 return ((spi->STAT & SPI_STAT_RNF_MASK) == SPI_STAT_RNF_FULL);
713 (SPI_CTL1_PREN_MASK | SPI_CTL1_PTEN_MASK | SPI_CTL1_PES_MASK));
727 uint32_t parity = spi->CTL1 & (SPI_CTL1_PES_MASK | SPI_CTL1_PREN_MASK |
745 spi->CTL1 |= SPI_CTL1_PREN_ENABLE;
760 spi->CTL1 &= ~(SPI_CTL1_PREN_MASK);
775 return ((spi->CTL1 & SPI_CTL1_PREN_MASK) == SPI_CTL1_PREN_ENABLE);
790 spi->CTL1 |= SPI_CTL1_PTEN_ENABLE;
805 spi->CTL1 &= ~(SPI_CTL1_PTEN_MASK);
820 return ((spi->CTL1 & SPI_CTL1_PTEN_MASK) == SPI_CTL1_PTEN_ENABLE);
839 (SPI_CTL0_FRF_MASK | SPI_CTL0_SPO_MASK | SPI_CTL0_SPH_MASK));
853 uint32_t frameFormat = spi->CTL0 & (SPI_CTL0_FRF_MASK | SPI_CTL0_SPO_MASK |
885 uint32_t dataSize = spi->CTL0 & SPI_CTL0_DSS_MASK;
914 uint32_t mode = spi->CTL1 & SPI_CTL1_CP_MASK;
945 uint32_t bitOrder = spi->CTL1 & SPI_CTL1_MSB_MASK;
960 spi->CTL1 |= SPI_CTL1_LBM_ENABLE;
973 spi->CTL1 &= ~(SPI_CTL1_LBM_MASK);
988 return ((spi->CTL1 & SPI_CTL1_LBM_MASK) == SPI_CTL1_LBM_ENABLE);
1006 SPI_Regs *spi, uint32_t numRepeats)
1009 SPI_CTL1_REPEATTX_MASK);
1028 return ((spi->CTL1 & SPI_CTL1_REPEATTX_MASK) >> SPI_CTL1_REPEATTX_OFS);
1046 spi->CTL0 |= SPI_CTL0_CSCLR_ENABLE;
1062 spi->CTL0 &= ~(SPI_CTL0_CSCLR_MASK);
1076 const SPI_Regs *spi)
1078 return ((spi->CTL0 & SPI_CTL0_CSCLR_MASK) == SPI_CTL0_CSCLR_ENABLE);
1094 spi->CTL0 |= SPI_CTL0_PACKEN_ENABLED;
1110 spi->CTL0 &= ~(SPI_CTL0_PACKEN_MASK);
1125 return ((spi->CTL0 & SPI_CTL0_PACKEN_MASK) == SPI_CTL0_PACKEN_ENABLED);
1146 &spi->CTL0, (uint32_t) chipSelect, SPI_CTL0_CSSEL_MASK);
1162 uint32_t chipSelect = spi->CTL0 & SPI_CTL0_CSSEL_MASK;
1181 SPI_Regs *spi, uint32_t timeout)
1184 SPI_CTL1_RXTIMEOUT_MASK);
1200 const SPI_Regs *spi)
1202 return ((spi->CTL1 & SPI_CTL1_RXTIMEOUT_MASK) >> SPI_CTL1_RXTIMEOUT_OFS);
1228 SPI_Regs *spi, uint32_t config)
1231 &spi->CTL1, config << SPI_CTL1_CDMODE_OFS, SPI_CTL1_CDMODE_MASK);
1250 const SPI_Regs *spi)
1252 return ((spi->CTL1 & SPI_CTL1_CDMODE_MASK) >> SPI_CTL1_CDMODE_OFS);
1267 spi->CTL1 |= SPI_CTL1_CDENABLE_ENABLE;
1277 spi->CTL1 &= ~(SPI_CTL1_CDENABLE_MASK);
1291 const SPI_Regs *spi)
1293 return ((spi->CTL1 & SPI_CTL1_CDENABLE_MASK) == SPI_CTL1_CDENABLE_ENABLE);
1308 spi->CTL1 &= ~(SPI_CTL1_POD_MASK);
1324 spi->CTL1 |= SPI_CTL1_POD_ENABLE;
1341 return ((spi->CTL1 & SPI_CTL1_POD_MASK) == SPI_CTL1_POD_DISABLE);
1359 SPI_CLKCTL_DSAMPLE_MASK);
1379 return (spi->CLKCTL & SPI_CLKCTL_DSAMPLE_MASK >> SPI_CLKCTL_DSAMPLE_OFS);
1401 DL_SPI_RX_FIFO_LEVEL rxThreshold, DL_SPI_TX_FIFO_LEVEL txThreshold)
1404 (uint32_t) rxThreshold | (uint32_t) txThreshold,
1405 SPI_IFLS_RXIFLSEL_MASK | SPI_IFLS_TXIFLSEL_MASK);
1418 const SPI_Regs *spi)
1420 uint32_t txThreshold = spi->IFLS & SPI_IFLS_TXIFLSEL_MASK;
1422 return (DL_SPI_TX_FIFO_LEVEL)(txThreshold);
1435 const SPI_Regs *spi)
1437 uint32_t rxThreshold = spi->IFLS & SPI_IFLS_RXIFLSEL_MASK;
1439 return (DL_SPI_RX_FIFO_LEVEL)(rxThreshold);
1459 SPI_Regs *spi, uint32_t SCR)
1474 const SPI_Regs *spi)
1476 return (spi->CLKCTL & SPI_CLKCTL_SCR_MASK);
1563 return ((uint8_t)(spi->RXDATA));
1584 return ((uint16_t)(spi->RXDATA));
1623 SPI_Regs *spi, uint32_t interruptMask)
1625 spi->CPU_INT.IMASK |= interruptMask;
1637 SPI_Regs *spi, uint32_t interruptMask)
1639 spi->CPU_INT.IMASK &= ~(interruptMask);
1655 const SPI_Regs *spi, uint32_t interruptMask)
1657 return (spi->CPU_INT.IMASK & interruptMask);
1678 const SPI_Regs *spi, uint32_t interruptMask)
1680 return (spi->CPU_INT.MIS & interruptMask);
1699 const SPI_Regs *spi, uint32_t interruptMask)
1701 return (spi->CPU_INT.RIS & interruptMask);
1718 return ((DL_SPI_IIDX) spi->CPU_INT.IIDX);
1730 SPI_Regs *spi, uint32_t interruptMask)
1732 spi->CPU_INT.ICLR = interruptMask;
2006 const SPI_Regs *spi, uint8_t *buffer, uint32_t maxCount);
2018 const SPI_Regs *spi, uint16_t *buffer, uint32_t maxCount);
2037 const SPI_Regs *spi, uint32_t *buffer, uint32_t maxCount);
2052 SPI_Regs *spi,
const uint8_t *buffer, uint32_t count);
2067 SPI_Regs *spi,
const uint16_t *buffer, uint32_t count);
2089 SPI_Regs *spi,
const uint32_t *buffer, uint32_t count);
2107 SPI_Regs *spi, uint32_t interrupt)
2109 spi->DMA_TRIG_RX.IMASK = interrupt;
2127 spi->DMA_TRIG_TX.IMASK = SPI_DMA_TRIG_TX_IMASK_TX_SET;
2144 SPI_Regs *spi, uint32_t interrupt)
2146 spi->DMA_TRIG_RX.IMASK &= ~(interrupt);
2164 spi->DMA_TRIG_TX.IMASK = SPI_DMA_TRIG_TX_IMASK_TX_CLR;
2185 const SPI_Regs *spi, uint32_t interruptMask)
2187 return (spi->DMA_TRIG_RX.IMASK & interruptMask);
2205 return (spi->DMA_TRIG_TX.IMASK & SPI_DMA_TRIG_TX_IMASK_TX_MASK);
2230 const SPI_Regs *spi, uint32_t interruptMask)
2232 return (spi->DMA_TRIG_RX.MIS & interruptMask);
2253 const SPI_Regs *spi)
2255 return (spi->DMA_TRIG_TX.MIS & SPI_DMA_TRIG_TX_MIS_TX_MASK);
2276 const SPI_Regs *spi, uint32_t interruptMask)
2278 return (spi->DMA_TRIG_RX.RIS & interruptMask);
2297 const SPI_Regs *spi)
2299 return (spi->DMA_TRIG_TX.RIS & SPI_DMA_TRIG_TX_RIS_TX_MASK);
2319 const SPI_Regs *spi)
2321 return (DL_SPI_DMA_IIDX_RX)(spi->DMA_TRIG_RX.IIDX);
2341 const SPI_Regs *spi)
2343 return (DL_SPI_DMA_IIDX_TX)(spi->DMA_TRIG_TX.IIDX);
2358 SPI_Regs *spi, uint32_t interruptMask)
2360 spi->DMA_TRIG_RX.ICLR = interruptMask;
2375 spi->DMA_TRIG_TX.ICLR = SPI_DMA_TRIG_TX_ICLR_TX_CLR;
__STATIC_INLINE uint32_t DL_SPI_getDelayedSampling(const SPI_Regs *spi)
Get the delay sampling.
Definition: dl_spi.h:1377
bool DL_SPI_restoreConfiguration(SPI_Regs *spi, DL_SPI_backupConfig *ptr)
Restore SPI configuration after leaving a power loss state.
void DL_SPI_setClockConfig(SPI_Regs *spi, const DL_SPI_ClockConfig *config)
Configure SPI source clock.
uint32_t controlWord0
Definition: dl_spi.h:429
DL_SPI_RX_FIFO_LEVEL
Definition: dl_spi.h:300
__STATIC_INLINE void DL_Common_updateReg(volatile uint32_t *reg, uint32_t val, uint32_t mask)
Writes value to specified register - retaining bits unaffected by mask.
Definition: dl_common.h:63
__STATIC_INLINE bool DL_SPI_isTXFIFOFull(const SPI_Regs *spi)
Checks if the TX FIFO is full.
Definition: dl_spi.h:657
bool DL_SPI_receiveDataCheck32(const SPI_Regs *spi, uint32_t *buffer)
Checks the RX FIFO before trying to transmit data.
__STATIC_INLINE void DL_SPI_setFrameFormat(SPI_Regs *spi, DL_SPI_FRAME_FORMAT frameFormat)
Set the frame format to use.
Definition: dl_spi.h:835
__STATIC_INLINE bool DL_SPI_isPowerEnabled(const SPI_Regs *spi)
Returns if the Peripheral Write Enable (PWREN) register for the SPI is enabled.
Definition: dl_spi.h:529
__STATIC_INLINE DL_SPI_DMA_IIDX_RX DL_SPI_getPendingDMAReceiveEvent(const SPI_Regs *spi)
Get highest priority pending SPI interrupt for DMA receive event.
Definition: dl_spi.h:2318
__STATIC_INLINE bool DL_SPI_isEnabled(const SPI_Regs *spi)
Checks if the SPI peripheral is enabled.
Definition: dl_spi.h:582
uint32_t clockControl
Definition: dl_spi.h:439
__STATIC_INLINE uint32_t DL_SPI_getBitRateSerialClockDivider(const SPI_Regs *spi)
Get the SPI bit rate serial clock divider (SCR)
Definition: dl_spi.h:1473
__STATIC_INLINE void DL_SPI_disableLoopbackMode(SPI_Regs *spi)
Disables loopback mode.
Definition: dl_spi.h:971
__STATIC_INLINE bool DL_SPI_isRXFIFOEmpty(const SPI_Regs *spi)
Checks if the RX FIFO is empty.
Definition: dl_spi.h:672
bool DL_SPI_receiveDataCheck16(const SPI_Regs *spi, uint16_t *buffer)
Checks the RX FIFO before trying to transmit data.
__STATIC_INLINE void DL_SPI_setFIFOThreshold(SPI_Regs *spi, DL_SPI_RX_FIFO_LEVEL rxThreshold, DL_SPI_TX_FIFO_LEVEL txThreshold)
Set the RX and TX FIFO interrupt threshold level.
Definition: dl_spi.h:1400
__STATIC_INLINE bool DL_SPI_isTransmitParityEnabled(const SPI_Regs *spi)
Checks if transmit parity is enabled.
Definition: dl_spi.h:818
__STATIC_INLINE void DL_SPI_disableInterrupt(SPI_Regs *spi, uint32_t interruptMask)
Disable SPI interrupts.
Definition: dl_spi.h:1636
DL_SPI_DMA_IIDX_RX
Definition: dl_spi.h:146
__STATIC_INLINE uint8_t DL_SPI_receiveData8(const SPI_Regs *spi)
Reads 8-bit data from the RX FIFO.
Definition: dl_spi.h:1561
__STATIC_INLINE void DL_SPI_setRepeatTransmit(SPI_Regs *spi, uint32_t numRepeats)
Set counter for repeated transmit.
Definition: dl_spi.h:1005
__STATIC_INLINE uint32_t DL_SPI_getEnabledDMAReceiveEvent(const SPI_Regs *spi, uint32_t interruptMask)
Check which SPI interrupt for DMA receive events is enabled.
Definition: dl_spi.h:2184
__STATIC_INLINE void DL_SPI_disableDMAReceiveEvent(SPI_Regs *spi, uint32_t interrupt)
Disables SPI interrupt from triggering the DMA receive event.
Definition: dl_spi.h:2143
__STATIC_INLINE DL_SPI_DMA_IIDX_TX DL_SPI_getPendingDMATransmitEvent(const SPI_Regs *spi)
Get highest priority pending SPI interrupt for DMA transmit event.
Definition: dl_spi.h:2340
DL_SPI_BIT_ORDER
Definition: dl_spi.h:234
__STATIC_INLINE void DL_SPI_enableControllerCommandDataMode(SPI_Regs *spi)
Enables command/data mode.
Definition: dl_spi.h:1265
__STATIC_INLINE bool DL_SPI_isTXFIFOEmpty(const SPI_Regs *spi)
Checks if the TX FIFO is empty.
Definition: dl_spi.h:642
__STATIC_INLINE uint32_t DL_SPI_getRepeatTransmit(const SPI_Regs *spi)
Get counter for repeated transmit.
Definition: dl_spi.h:1026
DL_SPI_DMA_IIDX_TX
Definition: dl_spi.h:154
__STATIC_INLINE uint32_t DL_SPI_getEnabledDMAReceiveEventStatus(const SPI_Regs *spi, uint32_t interruptMask)
Check interrupt flag of enabled SPI interrupt for DMA receive event.
Definition: dl_spi.h:2229
__STATIC_INLINE DL_SPI_CHIP_SELECT DL_SPI_getChipSelect(const SPI_Regs *spi)
Get chip select used for controller or peripheral mode.
Definition: dl_spi.h:1160
__STATIC_INLINE bool DL_SPI_isReset(const SPI_Regs *spi)
Returns if spi peripheral was reset.
Definition: dl_spi.h:556
__STATIC_INLINE void DL_SPI_disableReceiveParity(SPI_Regs *spi)
Disables receive parity.
Definition: dl_spi.h:758
DL_SPI_CHIP_SELECT chipSelectPin
Definition: dl_spi.h:403
uint32_t DL_SPI_drainRXFIFO32(const SPI_Regs *spi, uint32_t *buffer, uint32_t maxCount)
Read all available data out of the RX FIFO using 32 bit access.
uint32_t clockSel
Definition: dl_spi.h:442
__STATIC_INLINE void DL_SPI_setBitOrder(SPI_Regs *spi, DL_SPI_BIT_ORDER bitOrder)
Set the bit order used for transfers.
Definition: dl_spi.h:928
__STATIC_INLINE void DL_SPI_clearDMAReceiveEventStatus(SPI_Regs *spi, uint32_t interruptMask)
Clear pending SPI interrupts for DMA receive event.
Definition: dl_spi.h:2357
__STATIC_INLINE uint32_t DL_SPI_getRawDMAReceiveEventStatus(const SPI_Regs *spi, uint32_t interruptMask)
Check interrupt flag of any SPI interrupt for DMA receive event.
Definition: dl_spi.h:2275
DL_SPI_IIDX
Definition: dl_spi.h:314
__STATIC_INLINE void DL_SPI_clearInterruptStatus(SPI_Regs *spi, uint32_t interruptMask)
Clear pending SPI interrupts.
Definition: dl_spi.h:1729
bool DL_SPI_transmitDataCheck32(SPI_Regs *spi, uint32_t data)
Checks the TX FIFO before trying to transmit data.
__STATIC_INLINE uint32_t DL_SPI_getRawInterruptStatus(const SPI_Regs *spi, uint32_t interruptMask)
Check interrupt flag of any SPI interrupt.
Definition: dl_spi.h:1698
__STATIC_INLINE void DL_SPI_setControllerCommandDataModeConfig(SPI_Regs *spi, uint32_t config)
Configure the command/data mode.
Definition: dl_spi.h:1227
Configuration struct for DL_SPI_init.
Definition: dl_spi.h:377
uint32_t DL_SPI_fillTXFIFO8(SPI_Regs *spi, const uint8_t *buffer, uint32_t count)
Fill the TX FIFO using 8 bit access.
__STATIC_INLINE void DL_SPI_setBitRateSerialClockDivider(SPI_Regs *spi, uint32_t SCR)
Set the SPI bit rate serial clock divider (SCR)
Definition: dl_spi.h:1458
__STATIC_INLINE DL_SPI_TX_FIFO_LEVEL DL_SPI_getTXFIFOThreshold(const SPI_Regs *spi)
Get the TX FIFO interrupt threshold level.
Definition: dl_spi.h:1417
bool DL_SPI_saveConfiguration(const SPI_Regs *spi, DL_SPI_backupConfig *ptr)
Save SPI configuration before entering a power loss state.
Configuration structure to backup SPI peripheral state before going to STOP/STANDBY mode...
Definition: dl_spi.h:424
__STATIC_INLINE void DL_SPI_disableControllerCommandDataMode(SPI_Regs *spi)
Disables command/data mode.
Definition: dl_spi.h:1275
void DL_SPI_transmitDataBlocking32(SPI_Regs *spi, uint32_t data)
Blocks to ensure transmit is ready before sending data.
DL_SPI_CLOCK_DIVIDE_RATIO divideRatio
Definition: dl_spi.h:415
__STATIC_INLINE void DL_SPI_clearDMATransmitEventStatus(SPI_Regs *spi)
Clear pending SPI interrupt for DMA transmit event.
Definition: dl_spi.h:2373
void DL_SPI_init(SPI_Regs *spi, const DL_SPI_Config *config)
Initialize the SPI peripheral.
__STATIC_INLINE void DL_SPI_setPeripheralReceiveTimeout(SPI_Regs *spi, uint32_t timeout)
Set peripheral receive timeout.
Definition: dl_spi.h:1180
__STATIC_INLINE void DL_SPI_setParity(SPI_Regs *spi, DL_SPI_PARITY parity)
Sets the parity configuration used for transactions.
Definition: dl_spi.h:710
__STATIC_INLINE void DL_SPI_enableTransmitParity(SPI_Regs *spi)
Enables transmit parity.
Definition: dl_spi.h:788
__STATIC_INLINE void DL_SPI_disablePower(SPI_Regs *spi)
Disables the Peripheral Write Enable (PWREN) register for the SPI.
Definition: dl_spi.h:508
__STATIC_INLINE void DL_SPI_enableLoopbackMode(SPI_Regs *spi)
Enables loopback mode.
Definition: dl_spi.h:958
uint32_t DL_SPI_drainRXFIFO16(const SPI_Regs *spi, uint16_t *buffer, uint32_t maxCount)
Read all available data out of the RX FIFO using 16 bit access.
__STATIC_INLINE DL_SPI_MODE DL_SPI_getMode(const SPI_Regs *spi)
Get the current mode for the SPI (controller/peripheral)
Definition: dl_spi.h:912
__STATIC_INLINE void DL_SPI_transmitData16(SPI_Regs *spi, uint16_t data)
Writes 16-bit data into the TX FIFO for transmit.
Definition: dl_spi.h:1514
__STATIC_INLINE DL_SPI_PARITY DL_SPI_getParity(const SPI_Regs *spi)
Get the current receive and transmit parity configuration.
Definition: dl_spi.h:725
__STATIC_INLINE uint32_t DL_SPI_getEnabledInterruptStatus(const SPI_Regs *spi, uint32_t interruptMask)
Check interrupt flag of enabled SPI interrupts.
Definition: dl_spi.h:1677
__STATIC_INLINE uint32_t DL_SPI_getPeripheralReceiveTimeout(const SPI_Regs *spi)
Get peripheral receive timeout.
Definition: dl_spi.h:1199
bool DL_SPI_transmitDataCheck8(SPI_Regs *spi, uint8_t data)
Checks the TX FIFO before trying to transmit data.
DL_SPI_PARITY
Definition: dl_spi.h:182
__STATIC_INLINE bool DL_SPI_isBusy(const SPI_Regs *spi)
Checks if the SPI is busy transmitting.
Definition: dl_spi.h:627
__STATIC_INLINE void DL_SPI_enableInterrupt(SPI_Regs *spi, uint32_t interruptMask)
Enable SPI interrupts.
Definition: dl_spi.h:1622
DL_SPI_CHIP_SELECT
Definition: dl_spi.h:272
__STATIC_INLINE uint32_t DL_SPI_getRawDMATransmitEventStatus(const SPI_Regs *spi)
Check interrupt flag of any SPI interrupt for DMA transmit event.
Definition: dl_spi.h:2296
bool DL_SPI_receiveDataCheck8(const SPI_Regs *spi, uint8_t *buffer)
Checks the RX FIFO before trying to transmit data.
uint32_t interruptMask1
Definition: dl_spi.h:458
uint32_t DL_SPI_fillTXFIFO32(SPI_Regs *spi, const uint32_t *buffer, uint32_t count)
Fill the TX FIFO using 32 bit access.
__STATIC_INLINE void DL_SPI_enable(SPI_Regs *spi)
Enable the SPI peripheral.
Definition: dl_spi.h:567
__STATIC_INLINE bool DL_SPI_isLoopbackModeEnabled(const SPI_Regs *spi)
Checks if the loopback mode is enabled.
Definition: dl_spi.h:986
uint8_t DL_SPI_receiveDataBlocking8(const SPI_Regs *spi)
Blocks to ensure receive is ready before reading data.
__STATIC_INLINE DL_SPI_BIT_ORDER DL_SPI_getBitOrder(const SPI_Regs *spi)
Get the current bit order used for transfers.
Definition: dl_spi.h:943
__STATIC_INLINE uint32_t DL_SPI_receiveData32(const SPI_Regs *spi)
Reads 32-bit data from the RX FIFO.
Definition: dl_spi.h:1609
__STATIC_INLINE void DL_SPI_enablePower(SPI_Regs *spi)
Enables the Peripheral Write Enable (PWREN) register for the SPI.
Definition: dl_spi.h:492
void DL_SPI_transmitDataBlocking8(SPI_Regs *spi, uint8_t data)
Blocks to ensure transmit is ready before sending data.
__STATIC_INLINE uint32_t DL_SPI_getEnabledDMATransmitEventStatus(const SPI_Regs *spi)
Check interrupt flag of enabled SPI interrupt for DMA transmit event.
Definition: dl_spi.h:2252
DL_SPI_CLOCK
Definition: dl_spi.h:365
__STATIC_INLINE bool DL_SPI_isReceiveParityEnabled(const SPI_Regs *spi)
Checks if receive parity is enabled.
Definition: dl_spi.h:773
__STATIC_INLINE DL_SPI_IIDX DL_SPI_getPendingInterrupt(const SPI_Regs *spi)
Get highest priority pending SPI interrupt.
Definition: dl_spi.h:1716
__STATIC_INLINE bool DL_SPI_isPeripheralAlignDataOnChipSelectEnabled(const SPI_Regs *spi)
Checks if data alignment on chip select for peripherals is enabled.
Definition: dl_spi.h:1075
__STATIC_INLINE DL_SPI_FRAME_FORMAT DL_SPI_getFrameFormat(const SPI_Regs *spi)
Get the frame format configuration.
Definition: dl_spi.h:851
Configuration struct for DL_SPI_setClockConfig.
Definition: dl_spi.h:410
__STATIC_INLINE void DL_SPI_setDelayedSampling(SPI_Regs *spi, uint32_t delay)
Set the delay sampling.
Definition: dl_spi.h:1356
__STATIC_INLINE uint16_t DL_SPI_receiveData16(const SPI_Regs *spi)
Reads 16-bit data from the RX FIFO.
Definition: dl_spi.h:1582
uint32_t interruptFifoLevelSelectWord
Definition: dl_spi.h:450
uint32_t interruptMask2
Definition: dl_spi.h:462
__STATIC_INLINE void DL_SPI_enableDMAReceiveEvent(SPI_Regs *spi, uint32_t interrupt)
Enable SPI interrupt for triggering the DMA receive event.
Definition: dl_spi.h:2106
__STATIC_INLINE DL_SPI_RX_FIFO_LEVEL DL_SPI_getRXFIFOThreshold(const SPI_Regs *spi)
Get the RX FIFO interrupt threshold level.
Definition: dl_spi.h:1434
DL_SPI_TX_FIFO_LEVEL
Definition: dl_spi.h:286
DL_SPI_DATA_SIZE
Definition: dl_spi.h:242
__STATIC_INLINE void DL_SPI_enableReceiveParity(SPI_Regs *spi)
Enables receive parity.
Definition: dl_spi.h:743
uint32_t interruptMask0
Definition: dl_spi.h:454
__STATIC_INLINE void DL_SPI_disablePeripheralDataOutput(SPI_Regs *spi)
Disables peripheral data output.
Definition: dl_spi.h:1322
DL_SPI_MODE
Definition: dl_spi.h:226
__STATIC_INLINE void DL_SPI_enableDMATransmitEvent(SPI_Regs *spi)
Enable SPI interrupt for triggering the DMA transmit event.
Definition: dl_spi.h:2125
DL_SPI_CLOCK_DIVIDE_RATIO
Definition: dl_spi.h:345
DL_SPI_DATA_SIZE dataSize
Definition: dl_spi.h:394
bool DL_SPI_transmitDataCheck16(SPI_Regs *spi, uint16_t data)
Checks the TX FIFO before trying to transmit data.
DL_SPI_BIT_ORDER bitOrder
Definition: dl_spi.h:397
__STATIC_INLINE void DL_SPI_disablePacking(SPI_Regs *spi)
Disables packing feature.
Definition: dl_spi.h:1108
__STATIC_INLINE void DL_SPI_enablePeripheralDataOutput(SPI_Regs *spi)
Enables peripheral data output.
Definition: dl_spi.h:1306
DL_SPI_FRAME_FORMAT frameFormat
Definition: dl_spi.h:385
uint32_t DL_SPI_fillTXFIFO16(SPI_Regs *spi, const uint16_t *buffer, uint32_t count)
Fill the TX FIFO using 16 bit access.
__STATIC_INLINE uint32_t DL_SPI_getEnabledInterrupts(const SPI_Regs *spi, uint32_t interruptMask)
Check which SPI interrupts are enabled.
Definition: dl_spi.h:1654
void DL_SPI_transmitDataBlocking16(SPI_Regs *spi, uint16_t data)
Blocks to ensure transmit is ready before sending data.
bool backupRdy
Definition: dl_spi.h:466
__STATIC_INLINE void DL_SPI_disableDMATransmitEvent(SPI_Regs *spi)
Disables SPI interrupt from triggering the DMA transmit event.
Definition: dl_spi.h:2162
__STATIC_INLINE void DL_SPI_setDataSize(SPI_Regs *spi, DL_SPI_DATA_SIZE dataSize)
Set the size for transfers.
Definition: dl_spi.h:868
uint16_t DL_SPI_receiveDataBlocking16(const SPI_Regs *spi)
Blocks to ensure receive is ready before reading data.
uint32_t controlWord1
Definition: dl_spi.h:435
__STATIC_INLINE bool DL_SPI_isRXFIFOFull(const SPI_Regs *spi)
Checks if the RX FIFO is full.
Definition: dl_spi.h:687
__STATIC_INLINE void DL_SPI_setChipSelect(SPI_Regs *spi, DL_SPI_CHIP_SELECT chipSelect)
Set chip select used for controller or peripheral mode.
Definition: dl_spi.h:1142
__STATIC_INLINE void DL_SPI_transmitData32(SPI_Regs *spi, uint32_t data)
Writes 32-bit data into the TX FIFO for transmit.
Definition: dl_spi.h:1540
__STATIC_INLINE uint32_t DL_SPI_getControllerCommandDataModeConfig(const SPI_Regs *spi)
Get the command/data mode configuration.
Definition: dl_spi.h:1249
__STATIC_INLINE bool DL_SPI_isPackingEnabled(const SPI_Regs *spi)
Checks if packing feature is enabled.
Definition: dl_spi.h:1123
__STATIC_INLINE DL_SPI_DATA_SIZE DL_SPI_getDataSize(const SPI_Regs *spi)
Get the configured size for transfers.
Definition: dl_spi.h:883
DL_SPI_FRAME_FORMAT
Definition: dl_spi.h:194
__STATIC_INLINE uint32_t DL_SPI_getEnabledDMATransmitEvent(const SPI_Regs *spi)
Check if SPI interrupt for DMA transmit event is enabled.
Definition: dl_spi.h:2203
uint32_t DL_SPI_drainRXFIFO8(const SPI_Regs *spi, uint8_t *buffer, uint32_t maxCount)
Read all available data out of the RX FIFO using 8 bit access.
__STATIC_INLINE void DL_SPI_reset(SPI_Regs *spi)
Resets spi peripheral.
Definition: dl_spi.h:540
__STATIC_INLINE bool DL_SPI_isPeripheralDataOutputEnabled(const SPI_Regs *spi)
Checks if peripheral data output is enabled.
Definition: dl_spi.h:1339
__STATIC_INLINE void DL_SPI_disablePeripheralAlignDataOnChipSelect(SPI_Regs *spi)
Disables data alignment on chip select for peripherals.
Definition: dl_spi.h:1059
__STATIC_INLINE void DL_SPI_transmitData8(SPI_Regs *spi, uint8_t data)
Writes 8-bit data into the TX FIFO for transmit.
Definition: dl_spi.h:1494
__STATIC_INLINE void DL_SPI_disableTransmitParity(SPI_Regs *spi)
Disables transmit parity.
Definition: dl_spi.h:803
__STATIC_INLINE void DL_SPI_disable(SPI_Regs *spi)
Disable the SPI peripheral.
Definition: dl_spi.h:592
DL_SPI_PARITY parity
Definition: dl_spi.h:391
__STATIC_INLINE void DL_SPI_enablePacking(SPI_Regs *spi)
Enables packing feature.
Definition: dl_spi.h:1092
DL_SPI_MODE mode
Definition: dl_spi.h:379
DL_SPI_CLOCK clockSel
Definition: dl_spi.h:412
uint32_t divideRatio
Definition: dl_spi.h:445
__STATIC_INLINE bool DL_SPI_isControllerCommandDataModeEnabled(const SPI_Regs *spi)
Checks if command/data mode is enabled.
Definition: dl_spi.h:1290
uint32_t DL_SPI_receiveDataBlocking32(const SPI_Regs *spi)
Blocks to ensure receive is ready before reading data.
__STATIC_INLINE void DL_SPI_enablePeripheralAlignDataOnChipSelect(SPI_Regs *spi)
Enables data alignment on chip select for peripherals.
Definition: dl_spi.h:1043
void DL_SPI_getClockConfig(const SPI_Regs *spi, DL_SPI_ClockConfig *config)
Get SPI source clock configuration.
__STATIC_INLINE void DL_SPI_setMode(SPI_Regs *spi, DL_SPI_MODE mode)
Set whether the device should be in controller/peripheral mode.
Definition: dl_spi.h:898