24#ifndef _DMA_QUADSPI_H_INC
25#define _DMA_QUADSPI_H_INC
28#include <basictypes.h>
33#error QuadSPI driver is a C++ only library
43#define DEFAULT_QUADSPI_MODULE 0
44#define QUADSPI_MODULE_COUNT 1
62 virtual void ReadyHW()
override;
63 virtual spiDriverStruct *getCtx()
override {
return QuadSPIDriverCtx + m_moduleNum; }
64 inline Qspi * quadSpi() {
return QSPI + m_moduleNum; }
69 virtual void dumpRegs()
override;
103 SPI_QSPI( uint8_t QuadSPIModule, uint32_t baudRateInBps,
104 uint8_t transferSizeInBits = 8, uint8_t peripheralChipSelects = 0x00,
105 uint8_t chipSelectPolarity = 0x0F, uint8_t clockPolarity = 0,
106 uint8_t clockPhase = 1, BOOL doutHiz = TRUE,
107 uint8_t csToClockDelay = 0, uint8_t delayAfterTransfer = 0 );
127 virtual uint8_t
Init( uint32_t baudRateInBps = 2000000,
128 uint8_t transferSizeInBits = 8, uint8_t peripheralChipSelects = 0x00,
129 uint8_t chipSelectPolarity = 0x0F, uint8_t clockPolarity = 0,
130 uint8_t clockPhase = 1, BOOL doutHiz = TRUE,
131 uint8_t csToClockDelay = 0, uint8_t delayAfterTransfer = 0 )
override;
159 virtual uint8_t
Start( uint8_t *transmitBufferPtr,
volatile uint8_t *receiveBufferPtr,
171 virtual inline uint8_t
Tx( uint8_t *transmitBufferPtr, uint32_t byteCount,
173 {
return Start(transmitBufferPtr, NULL, byteCount, csReturnToInactive); }
185 {
return Start(NULL, receiveBufferPtr, byteCount, csReturnToInactive); }
246 virtual inline bool SetCS( uint8_t CS )
override
253 friend void QuadSPI_DMA_Isr(XdmaCh_t *dma,
int module);
The Single-Bit SPI mode QSPI Peripheral Class.
Definition quadspi.h:54
SPI_QSPI(uint8_t QuadSPIModule, uint32_t baudRateInBps, uint8_t transferSizeInBits=8, uint8_t peripheralChipSelects=0x00, uint8_t chipSelectPolarity=0x0F, uint8_t clockPolarity=0, uint8_t clockPhase=1, BOOL doutHiz=TRUE, uint8_t csToClockDelay=0, uint8_t delayAfterTransfer=0)
Create a SPI object and Initialize with parameters.
virtual uint32_t SetBusSpeed(uint32_t maxSpeed) override
Set the SPI bus speed Will attempt to set the desired bus speed. It may be different based on the ava...
SPI_QSPI(uint8_t QuadSPIModule=DEFAULT_QUADSPI_MODULE)
Create a SPI object.
uint8_t Rx(uint8_t *receiveBufferPtr, uint32_t byteCount, int csReturnToInactive=DEASSERT_AFTER_LAST)
Convenience function for unidirectional receive.
Definition quadspi.h:184
virtual uint8_t Init(uint32_t baudRateInBps=2000000, uint8_t transferSizeInBits=8, uint8_t peripheralChipSelects=0x00, uint8_t chipSelectPolarity=0x0F, uint8_t clockPolarity=0, uint8_t clockPhase=1, BOOL doutHiz=TRUE, uint8_t csToClockDelay=0, uint8_t delayAfterTransfer=0) override
Initialize an existing SPI object.
virtual bool SetCS(uint8_t CS) override
Set the chip select configuration for the SPI object's bus transactions.
Definition quadspi.h:246
virtual uint8_t Start(uint8_t *transmitBufferPtr, volatile uint8_t *receiveBufferPtr, uint32_t byteCount, int csReturnToInactive=DEASSERT_AFTER_LAST) override
Start a SPI transfer.
virtual uint8_t Tx(uint8_t *transmitBufferPtr, uint32_t byteCount, int csReturnToInactive=DEASSERT_AFTER_LAST) override
Convenience function for unidirectional transmit.
Definition quadspi.h:171
SPI Peripheral Module Class.
Definition cortex-m7/cpu/SAME70/include/dspi.h:138
@ DEASSERT_AFTER_LAST
Definition coldfire/cpu/MCF5441X/include/dspi.h:165
#define DEFAULT_QUADSPI_MODULE
Default QUADSPI module.
Definition quadspi.h:43
#define QUADSPI_MODULE_COUNT
Number of modules: 0, 1.
Definition quadspi.h:44
Variables/configurations for a DSPI transfer.
Definition cortex-m7/cpu/SAME70/include/dspi.h:114