 |
AM263x MCU+ SDK
11.01.00
|
|
Go to the documentation of this file.
57 #include <drivers/hw_include/cslr_qspi.h>
92 #define QSPI_NOT_IN_USE(x) (void) 0
99 #define QSPI_LLD_CMD_INVALID_ADDR (0xFFFFFFFFU)
111 #define QSPI_RX_LINES_SINGLE (0U)
112 #define QSPI_RX_LINES_DUAL (1U)
113 #define QSPI_RX_LINES_QUAD (2U)
130 #define QSPI_FF_POL0_PHA0 ((CSL_QSPI_SPI_DC_REG_CKPH0_CKP_0_SHIFT_OUT_FALLING_EDGE \
131 << CSL_QSPI_SPI_DC_REG_CKPH0_SHIFT) | \
132 (CSL_QSPI_SPI_DC_REG_CKP0_DATA_INACTIVE << \
133 CSL_QSPI_SPI_DC_REG_CKP0_SHIFT))
134 #define QSPI_FF_POL0_PHA1 ((CSL_QSPI_SPI_DC_REG_CKPH0_CKP_0_SHIFT_OUT_RISING_EDGE \
135 << CSL_QSPI_SPI_DC_REG_CKPH0_SHIFT) | \
136 (CSL_QSPI_SPI_DC_REG_CKP0_DATA_INACTIVE << \
137 CSL_QSPI_SPI_DC_REG_CKP0_SHIFT))
138 #define QSPI_FF_POL1_PHA0 ((CSL_QSPI_SPI_DC_REG_CKPH0_CKP_1_SHIFT_OUT_RISING_EDGE \
139 << CSL_QSPI_SPI_DC_REG_CKPH0_SHIFT) | \
140 (CSL_QSPI_SPI_DC_REG_CKP0_DATA_ACTIVE << \
141 CSL_QSPI_SPI_DC_REG_CKP0_SHIFT))
142 #define QSPI_FF_POL1_PHA1 ((CSL_QSPI_SPI_DC_REG_CKPH0_CKP_1_SHIFT_OUT_FALLING_EDGE \
143 << CSL_QSPI_SPI_DC_REG_CKPH0_SHIFT) | \
144 (CSL_QSPI_SPI_DC_REG_CKP0_DATA_ACTIVE << \
145 CSL_QSPI_SPI_DC_REG_CKP0_SHIFT))
156 #define QSPI_CS_POL_ACTIVE_LOW (CSL_QSPI_SPI_DC_REG_CSP0_ACTIVE_LOW)
157 #define QSPI_CS_POL_ACTIVE_HIGH (CSL_QSPI_SPI_DC_REG_CSP0_ACTIVE_HIGH)
168 #define QSPI_DATA_DELAY_0 (CSL_QSPI_SPI_DC_REG_DD0_CS_TO_DATA_DELAY_0)
169 #define QSPI_DATA_DELAY_1 (CSL_QSPI_SPI_DC_REG_DD0_CS_TO_DATA_DELAY_1)
170 #define QSPI_DATA_DELAY_2 (CSL_QSPI_SPI_DC_REG_DD0_CS_TO_DATA_DELAY_2)
171 #define QSPI_DATA_DELAY_3 (CSL_QSPI_SPI_DC_REG_DD0_CS_TO_DATA_DELAY_3)
183 #define QSPI_MEM_MAP_PORT_SEL_CFG_PORT \
184 (CSL_QSPI_SPI_SWITCH_REG_MMPT_S_SEL_CFG_PORT)
185 #define QSPI_MEM_MAP_PORT_SEL_MEM_MAP_PORT \
186 (CSL_QSPI_SPI_SWITCH_REG_MMPT_S_SEL_MM_PORT)
190 #define QSPI_MAX_WORD_LENGTH (128U)
198 #define QSPI_SYSTEM_SUCCESS ((int32_t )0)
203 #define QSPI_SYSTEM_FAILURE ((int32_t)-1)
208 #define QSPI_TIMEOUT ((int32_t)-2)
213 #define QSPI_LLD_INVALID_PARAM ((int32_t)-3)
218 #define QSPI_BUSY ((int32_t)-4)
223 #define QSPI_INVALID_STATE ((int32_t)-5)
233 #define QSPI_STATE_RESET (0U)
238 #define QSPI_STATE_READY (1U)
243 #define QSPI_STATE_BUSY (2U)
248 #define QSPI_STATE_ERROR (3U)
258 #define QSPI_STATE_IDLE (0U)
262 #define QSPI_STATE_ADDRESS_WRITE (1U)
266 #define QSPI_STATE_DATA_WRITE (2U)
270 #define QSPI_STATE_DATA_READ (3U)
274 #define QSPI_STATE_BLOCK (4U)
278 #define QSPI_STATE_NON_BLOCK (5U)
282 #define QSPI_STATE_WRITE_DUMMY_CYCLES (6U)
288 #define QSPI_NUM_OF_DUMMY_BITS_ZERO (0U)
292 #define QSPI_CMD_ADDR_DUMMY_BYTES_LEN (5U)
296 #define QSPI_MAX_FRAME_LENGTH (4096U)
int32_t QSPI_lld_readCmd(QSPILLD_Handle hQspi, QSPILLD_WriteCmdParams *writeMsg)
Function to send specific commands and receive related data from flash in configuration mode This API...
void * dataBuf
Definition: qspi_lld.h:393
uint32_t memMapBaseAddr
Definition: qspi_lld.h:404
void * args
Definition: qspi_lld.h:468
bool readWriteFlag
Definition: qspi_lld.h:365
void * args
Definition: hsmclient_msg.h:4
uint32_t inputClkFreq
Definition: qspi_lld.h:406
bool wordIntr
Definition: qspi_lld.h:430
uint8_t readCmd
Definition: qspi_lld.h:454
int32_t QSPI_lld_setRxLines(QSPILLD_Handle hQspi, uint32_t rxLines)
Set QSPI Rx lines in the QSPI object.
QSPI_Clock_usecToTicks Clock_usecToTicks
Definition: qspi_lld.h:440
int32_t QSPI_lld_readDma(QSPILLD_Handle hQspi, uint32_t count, void *rxBuf, uint32_t addrOffset, uint32_t timeout)
Function to perform read from the flash in DMA mode.
QSPI Driver Transaction.
Definition: qspi_lld.h:354
uint8_t intrPriority
Definition: qspi_lld.h:434
struct QSPILLD_Transaction * QSPILLD_TransactionHandle
uint32_t wlen
Definition: qspi_lld.h:375
uint32_t wrdLen
Definition: qspi_lld.h:418
bool dmaEnable
Definition: qspi_lld.h:436
int32_t QSPI_lld_getInputClk(QSPILLD_Handle hQspi, uint32_t *inputClk)
This function returns the input clock at which QSPI was programmed.
uint32_t cmdRegVal
Definition: qspi_lld.h:367
int32_t QSPI_lld_setReadCmd(QSPILLD_Handle hQspi, uint8_t command)
Function to set read command to be used.
void * buf
Definition: qspi_lld.h:359
QSPILLD_Transaction * transaction
Definition: qspi_lld.h:470
int32_t QSPI_lld_read(QSPILLD_Handle hQspi, uint32_t count, void *rxBuf, uint32_t addrOffset, uint32_t timeout)
Function to perform reads from the flash in memory map mode.
uint32_t baseAddr
Definition: qspi_lld.h:452
QSPI driver initialization object.
Definition: qspi_lld.h:403
void(* QSPI_lld_InterruptCallback)(void *args)
The definition of a interrupt completion callback function used by the QSPI driver.
Definition: qspi_lld.h:329
uint32_t dataLen
Definition: qspi_lld.h:395
void QSPI_lld_isr(void *args)
QSPI ISR for Read and Write Functionality.
uint32_t qspiClockDiv
Definition: qspi_lld.h:408
bool status
Definition: qspi_lld.h:363
uint8_t writeCmd
Definition: qspi_lld.h:456
QSPI_lld_InterruptCallback interruptCallback
Definition: qspi_lld.h:474
uint32_t intrNum
Definition: qspi_lld.h:426
uint32_t csPol
Definition: qspi_lld.h:412
struct QSPILLD_Object * QSPILLD_Handle
uint32_t cmdAddr
Definition: qspi_lld.h:388
void(* QSPI_lld_dma_readCompleteCallback)(void *args)
The definition of a dma read completion callback function used by the QSPI driver.
Definition: qspi_lld.h:337
uint8_t numAddrBytes
Definition: qspi_lld.h:373
uint32_t chipSelect
Definition: qspi_lld.h:410
EDMA_Handle QSPI_DmaHandle
The handle for DMA instance used with QSPI.
Definition: qspi_lld.h:70
uint32_t frmLength
Definition: qspi_lld.h:458
int32_t QSPI_lld_readCmdIntr(QSPILLD_Handle hQspi, const QSPILLD_WriteCmdParams *msg)
Function to send specific commands and receive related data from flash in interrupt mode.
QSPI driver object.
Definition: qspi_lld.h:448
QSPI_lld_dma_readCompleteCallback readCompleteCallback
Definition: qspi_lld.h:476
uint32_t(* QSPI_Clock_usecToTicks)(uint64_t usecs)
The definition of a micro seconds to ticks function used by the QSPI driver to get ticks from microse...
Definition: qspi_lld.h:320
QSPI_DmaHandle qspiDmaHandle
Definition: qspi_lld.h:422
uint32_t currentIndex
Definition: qspi_lld.h:369
bool intrEnable
Definition: qspi_lld.h:428
uint8_t cmd
Definition: qspi_lld.h:386
uint32_t numDummyBits
Definition: qspi_lld.h:462
int32_t QSPI_lld_setDummyBitCount(QSPILLD_Handle hQspi, uint32_t count)
Function to set number of dummy bits to be used.
int32_t QSPI_lld_writeCmd(QSPILLD_Handle hQspi, QSPILLD_WriteCmdParams *writeMsg)
Function to send specific commands and write data into flash in configuration mode.
uint32_t addrOffset
Definition: qspi_lld.h:361
int32_t QSPI_lld_setWriteCmd(QSPILLD_Handle hQspi, uint8_t command)
Function to set write command to be used.
uint32_t dataDelay
Definition: qspi_lld.h:416
int32_t QSPI_lld_initDma(QSPILLD_Handle hQspi)
This function initializes the QSPI module in DMA Mode.
uint8_t numAddrBytes
Definition: qspi_lld.h:391
int32_t QSPI_lld_readData(QSPILLD_Handle hQspi, QSPILLD_WriteCmdParams *writeMsg)
Function to send specific commands and receive related data from flash in configuration mode This API...
QSPI Transaction Info.
Definition: qspi_lld.h:385
uint8_t cmd
Definition: qspi_lld.h:371
int32_t QSPI_lld_setMemAddrSpace(QSPILLD_Handle hQspi, uint32_t memMappedPortSwitch)
This function is used to switch between memory mapped and configuration mode.
void * EDMA_Handle
A handle that is returned from a EDMA_open() call.
Definition: edma/v0/edma.h:596
QSPI_Clock_getTicks Clock_getTicks
Definition: qspi_lld.h:438
int32_t QSPI_lld_setPreScaler(QSPILLD_Handle hQspi, uint32_t clkDividerVal)
Set the QSPI clock register divider value.
QSPILLD_InitHandle hQspiInit
Definition: qspi_lld.h:464
bool frameIntr
Definition: qspi_lld.h:432
uint32_t(* QSPI_Clock_getTicks)(void)
The definition of a get System Tick function used by the QSPI driver to keep track of time.
Definition: qspi_lld.h:309
int32_t QSPI_lld_setAddressByteCount(QSPILLD_Handle hQspi, uint32_t count)
Function to set number of address bytes to be used.
uint32_t dataLen
Definition: qspi_lld.h:357
int32_t QSPI_lld_deInit(QSPILLD_Handle hQspi)
This function de-initializes the QSPI module.
int32_t QSPI_lld_deInitDma(QSPILLD_Handle hQspi)
This function de-initializes the QSPI module in DMA Mode.
struct QSPI_EdmaParams_s * QSPI_DmaChConfig
A handle that holds DMA configuration parameters for QSPI.
Definition: qspi_lld.h:73
uint32_t rxLines
Definition: qspi_lld.h:420
uint32_t count
Definition: qspi_lld.h:355
uint32_t state
Definition: qspi_lld.h:466
uint32_t frmFmt
Definition: qspi_lld.h:414
QSPILLD_Transaction trans
Definition: qspi_lld.h:472
void QSPI_lld_readCompleteCallback(void *args)
QSPI Read complete callback for DMA mode.
uint32_t QSPI_lld_getRxLines(QSPILLD_Handle hQspi)
Get QSPI Rx lines in the QSPI object.
int32_t QSPI_lld_init(QSPILLD_Handle hQspi)
This function initializes the QSPI module.
uint32_t numAddrBytes
Definition: qspi_lld.h:460
uint32_t state
Definition: qspi_lld.h:377
QSPI_DmaChConfig qspiDmaChConfig
Definition: qspi_lld.h:424
int32_t QSPI_lld_writeCmdIntr(QSPILLD_Handle hQspi, const QSPILLD_WriteCmdParams *msg)
Function to send specific commands and write data into flash in interrupt mode.
struct QSPILLD_InitObject * QSPILLD_InitHandle