18 #ifndef QUADSPI_DRIVER_H
19 #define QUADSPI_DRIVER_H
37 #define QSPI_AHB_BUFFERS 4
41 #define QSPI_LUT_LOCK_KEY 0x5AF05AF0U
229 void * callbackParam;
231 const uint8_t * roData;
252 #if defined(__cplusplus)
340 baseAddr = g_qspiBase[instance];
361 baseAddr = g_qspiBase[instance];
379 baseAddr = g_qspiBase[instance];
396 baseAddr = g_qspiBase[instance];
412 baseAddr = g_qspiBase[instance];
430 baseAddr = g_qspiBase[instance];
469 const uint8_t * dataCmp,
519 #if defined(__cplusplus)
static void QSPI_DRV_LockLut(uint32_t instance)
Locks LUT table.
status_t QSPI_DRV_IpRead(uint32_t instance, uint8_t lut, uint32_t addr, uint8_t *dataRead, const uint8_t *dataCmp, uint32_t size, qspi_transfer_type_t transferType, uint32_t timeout)
Launches an IP read command.
qspi_endianess_t endianess
#define QuadSPI_LUT_COUNT
qspi_sample_delay_t sampleDelay
#define QuadSPI_LCKCR_LOCK_MASK
qspi_flash_side_t
External flash connection options (side A/B) Implements : qspi_flash_side_t_Class.
qspi_date_rate_t
Clock phase used for sampling Rx data Implements : qspi_date_rate_t_Class.
status_t QSPI_DRV_IpWrite(uint32_t instance, uint8_t lut, uint32_t addr, uint8_t *data, uint32_t size, qspi_transfer_type_t transferType, uint32_t timeout)
Launches an IP write command.
qspi_transfer_type_t
Driver type Implements : qspi_transfer_type_t_Class.
qspi_lut_pads_t
Lut pad options Implements : qspi_lut_pads_t_Class.
qspi_clock_src_t clock_src
static void QSPI_DRV_UnlockLut(uint32_t instance)
Unlocks LUT table.
#define QuadSPI_BFGENCR_SEQID(x)
qspi_endianess_t
Endianess options Implements : qspi_endianess_t_Class.
status_t QSPI_DRV_Deinit(uint32_t instance)
De-initialize the qspi driver.
qspi_sample_delay_t
Delay used for sampling Rx data Implements : qspi_sample_delay_t_Class.
#define QuadSPI_LUT_PAD0(x)
#define QuadSPI_SPTRCLR_IPPTRC_MASK
#define QuadSPI_LUT_PAD1(x)
static void QSPI_DRV_ClearIpSeqPointer(uint32_t instance)
Clears IP sequence pointer.
qspi_date_rate_t dataRate
qspi_lut_commands_t
Lut commands Implements : qspi_lut_commands_t_Class.
static void QSPI_DRV_ClearAHBSeqPointer(uint32_t instance)
Clears AHB sequence pointer.
status_t QSPI_DRV_IpErase(uint32_t instance, uint8_t lut, uint32_t addr)
Launches an IP erase command.
#define QuadSPI_INSTANCE_COUNT
#define QuadSPI_LUT_INSTR1(x)
Driver configuration structure.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
static void QSPI_DRV_SetAhbSeqId(uint32_t instance, uint8_t seqID)
Sets sequence ID for AHB operations.
status_t QSPI_DRV_AhbSetup(uint32_t instance, const qspi_ahb_config_t *config)
Sets up AHB accesses to the serial flash.
qspi_sample_phase_t
Clock phase used for sampling Rx data Implements : qspi_sample_phase_t_Class.
status_t QSPI_DRV_IpGetStatus(uint32_t instance)
Checks the status of the currently running IP command.
void(* qspi_callback_t)(uint32_t instance, void *param)
QuadSPI callback function type.
status_t QSPI_DRV_IpCommand(uint32_t instance, uint8_t lut, uint32_t timeout)
Launches a simple IP command.
#define QuadSPI_LCKCR_UNLOCK_MASK
qspi_read_mode_t readMode
qspi_read_mode_t
Read mode Implements : qspi_read_mode_t_Class.
Driver internal context structure.
qspi_sample_phase_t clockPhase
#define QSPI_AHB_BUFFERS
Number of AHB buffers in the device.
static void QSPI_DRV_SetLut(uint32_t instance, uint8_t lut, qspi_lut_commands_t instr0, qspi_lut_pads_t pad0, uint8_t oprnd0, qspi_lut_commands_t instr1, qspi_lut_pads_t pad1, uint8_t oprnd1)
Configures LUT commands.
#define QSPI_LUT_LOCK_KEY
Key to lock/unlock LUT.
#define QuadSPI_SPTRCLR_BFPTRC_MASK
AHB configuration structure.
#define QuadSPI_LUT_OPRND1(x)
#define QuadSPI_LUT_INSTR0(x)
status_t QSPI_DRV_GetDefaultConfig(qspi_user_config_t *userConfigPtr)
Returns default configuration structure for QuadSPI.
#define QuadSPI_LUT_OPRND0(x)
QuadSPI_Type *const g_qspiBase[]
Table of base addresses for QuadSPI instances.
qspi_clock_src_t
Source of QuadSPI internal reference clock Implements : qspi_clock_src_t_Class.
status_t QSPI_DRV_Init(uint32_t instance, const qspi_user_config_t *userConfigPtr, qspi_state_t *state)
Initializes the qspi driver.
__IO uint32_t LUT[QuadSPI_LUT_COUNT]