This module contains APIs to program and use the OSPI module. The APIs can be used by other drivers to get access to OSPI and also by application to initiate data transfer operation.
Files | |
file | ospi/v0/ospi.h |
OSPI Driver API/interface file. | |
Data Structures | |
struct | OSPI_Transaction |
Data structure used with OSPI_Transfers - OSPI_readDirect, OSPI_writeDirect, OSPI_readIndirect, OSPI_writeIndirect. More... | |
struct | OSPI_WriteCmdParams |
struct | OSPI_ReadCmdParams |
struct | OSPI_Params |
OSPI Parameters. More... | |
struct | OSPI_Attrs |
OSPI instance attributes - used during init time. More... | |
struct | OSPI_Object |
OSPI driver object. More... | |
struct | OSPI_Config |
Functions | |
void | OSPI_init (void) |
This function initializes the OSPI module. More... | |
void | OSPI_deinit (void) |
This function de-initializes the OSPI module. More... | |
void | OSPI_Params_init (OSPI_Params *ospiParams) |
Initialize data structure with defaults. More... | |
OSPI_Handle | OSPI_open (uint32_t index, const OSPI_Params *openParams) |
This function opens a given OSPI peripheral. More... | |
void | OSPI_close (OSPI_Handle handle) |
Function to close a OSPI peripheral specified by the OSPI handle. More... | |
OSPI_Handle | OSPI_getHandle (uint32_t index) |
This function returns the handle of an open OSPI Instance from the instance index. More... | |
int32_t | OSPI_readCmd (OSPI_Handle handle, OSPI_ReadCmdParams *rdParams) |
Function to send specific commands and receive related data from flash. More... | |
int32_t | OSPI_writeCmd (OSPI_Handle handle, OSPI_WriteCmdParams *wrParams) |
Function to send specific commands and related data to flash. More... | |
void | OSPI_Transaction_init (OSPI_Transaction *trans) |
Function to initialize the OSPI_Transaction structure. More... | |
void | OSPI_ReadCmdParams_init (OSPI_ReadCmdParams *rdParams) |
Function to initialize the OSPI_Transaction structure. More... | |
void | OSPI_WriteCmdParams_init (OSPI_WriteCmdParams *wrParams) |
Function to initialize the OSPI_Transaction structure. More... | |
uint32_t | OSPI_isDacEnable (OSPI_Handle handle) |
This function checks if the Direct Access Controller is enabled. More... | |
uint32_t | OSPI_isDmaEnable (OSPI_Handle handle) |
This function checks if DMA is enabled for reads. More... | |
uint32_t | OSPI_isIntrEnable (OSPI_Handle handle) |
This function checks if interrupts are enabled. More... | |
uint32_t | OSPI_isPhyEnable (OSPI_Handle handle) |
This function checks if the OSPI PHY controller is enabled. More... | |
uint32_t | OSPI_isDtrEnable (OSPI_Handle handle) |
This function checks if the Dual Transfer Rate (Sampling on both rising and falling edge of the clock) is enabled. More... | |
uint32_t | OSPI_isXipEnable (OSPI_Handle handle) |
This function checks if the eXecute In Place (XIP) mode is enabled. More... | |
uint32_t | OSPI_getXferLines (OSPI_Handle handle) |
This function returns the number of transfer lines enabled for the OSPI communication. More... | |
int32_t | OSPI_enableModeDDR (OSPI_Handle handle, uint32_t cmd, uint32_t addr, uint32_t data) |
This function enables the Dual Data Rate (DDR) More... | |
int32_t | OSPI_enableModeSDR (OSPI_Handle handle, uint32_t cmd, uint32_t addr, uint32_t data) |
This function enables the Single Data Rate (DDR) More... | |
int32_t | OSPI_enableModeXIP (OSPI_Handle handle, uint32_t cmd, uint32_t addr, uint32_t data) |
This function enables the eXecute In Place (XIP) mode. More... | |
int32_t | OSPI_setDummyCycle (OSPI_Handle handle, uint32_t cmd, uint32_t addr, uint32_t data) |
This function sets appropriate dummy cycles to the flash controller. More... | |
void | OSPI_setReadDummyCycles (OSPI_Handle handle, uint32_t dummyCycles) |
This function sets appropriate dummy cycles to the OSPI object to be used for flash read. More... | |
void | OSPI_setExtReadDummyCycles (OSPI_Handle handle, uint32_t dummyCycles) |
This function sets appropriate dummy cycles to the OSPI object to be used for flash extended read. More... | |
void | OSPI_setXferLines (OSPI_Handle handle, uint32_t xferLines) |
This function sets the number of transfer lines to the flash device configuration registers. More... | |
void | OSPI_setXferOpCode (OSPI_Handle handle, uint32_t readCmd, uint32_t pageProgCmd, uint32_t readStatusCmd) |
This function sets the transfer opcodes required for correct read and write operations to the flash. More... | |
void | OSPI_setXferOpCodeExt (OSPI_Handle handle, uint32_t *cmd, uint32_t cmdLen) |
This function sets the transfer opcodes required for correct read and write operations to the flash for extended dual opcode mode. More... | |
int32_t | OSPI_enableDacMode (OSPI_Handle handle) |
This function enables the Direct Access Mode. More... | |
int32_t | OSPI_disableDacMode (OSPI_Handle handle) |
This function disables the Direct Access Mode. More... | |
uint32_t | OSPI_getFlashDataBaseAddr (OSPI_Handle handle) |
This function gets the SOC mapped data base address of the flash. More... | |
Typedefs | |
typedef void * | OSPI_Handle |
A handle that is returned from a OSPI_open() call. More... | |
Transfer Status Code | |
Status codes that are set by the OSPI driver | |
#define | OSPI_TRANSFER_COMPLETED (0U) |
#define | OSPI_TRANSFER_STARTED (1U) |
#define | OSPI_TRANSFER_CANCELLED (2U) |
#define | OSPI_TRANSFER_FAILED (3U) |
#define | OSPI_TRANSFER_CSN_DEASSERT (4U) |
#define | OSPI_TRANSFER_TIMEOUT (5U) |
Transfer Mode | |
This determines whether the driver operates synchronously or asynchronously In OSPI_TRANSFER_MODE_BLOCKING OSPI_Transfers block code execution until the transaction has completed In OSPI_TRANSFER_MODE_CALLBACK OSPI_Transfers does not block code execution and instead calls a callback function when the transaction has completed | |
#define | OSPI_TRANSFER_MODE_BLOCKING (0U) |
OSPI_Transfers blocks execution. This mode can only be used when called within a Task context and is interrupt based More... | |
#define | OSPI_TRANSFER_MODE_CALLBACK (1U) |
OSPI_Transfers does not block code execution and will call a callback function. This mode can be used in a Task, Swi, or Hwi context More... | |
#define | OSPI_TRANSFER_MODE_POLLING (2U) |
OSPI_Transfers blocks execution. This mode can only be used when called within a Task context and is polling based. More... | |
Frame Format | |
Definitions for various SPI data frame formats POL0 = OSPICLK is held low during the INACTIVE state POL1 = OSPICLK is held high during the INACTIVE state PHA0 = Data launch is on the falling edge of OSPICLK PHA1 = Data launch is on the rising edge of OSPICLK | |
#define | OSPI_FF_POL0_PHA0 (0U) |
#define | OSPI_FF_POL0_PHA1 (CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_PHASE_FLD_MASK | 0U) |
#define | OSPI_FF_POL1_PHA0 (0U | CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_POL_FLD_MASK) |
#define | OSPI_FF_POL1_PHA1 |
Transfer Lines Number | |
Number of lines used for OSPI read/write transaction | |
#define | OSPI_XFER_LINES_SINGLE (0U) |
#define | OSPI_XFER_LINES_DUAL (1U) |
#define | OSPI_XFER_LINES_QUAD (2U) |
#define | OSPI_XFER_LINES_OCTAL (3U) |
Chip Selects | |
Chip selects | |
#define | OSPI_CS0 (0U) |
#define | OSPI_CS1 (1U) |
#define | OSPI_CS2 (2U) |
#define | OSPI_CS3 (3U) |
#define | OSPI_CHIP_SELECT(x) ((~((1U) << (x))) & 0xFU) |
Decoder Chip Selects | |
Decoder Chip selects | |
#define | OSPI_DECODER_SELECT4 ((uint32_t) 0U) |
#define | OSPI_DECODER_SELECT16 ((uint32_t) 1U) |
Different OSPI Transfer functions | |
int32_t | OSPI_readDirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform direct reads from the flash using DAC controller. More... | |
int32_t | OSPI_readIndirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform indirect reads from the flash using INDAC controller. More... | |
int32_t | OSPI_writeDirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform direct writes to the flash using DAC controller. More... | |
int32_t | OSPI_writeIndirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform indirect writes to the flash using INDAC controller. More... | |
#define OSPI_TRANSFER_COMPLETED (0U) |
#define OSPI_TRANSFER_STARTED (1U) |
#define OSPI_TRANSFER_CANCELLED (2U) |
#define OSPI_TRANSFER_FAILED (3U) |
#define OSPI_TRANSFER_CSN_DEASSERT (4U) |
#define OSPI_TRANSFER_TIMEOUT (5U) |
#define OSPI_TRANSFER_MODE_BLOCKING (0U) |
OSPI_Transfers blocks execution. This mode can only be used when called within a Task context and is interrupt based
#define OSPI_TRANSFER_MODE_CALLBACK (1U) |
OSPI_Transfers does not block code execution and will call a callback function. This mode can be used in a Task, Swi, or Hwi context
#define OSPI_TRANSFER_MODE_POLLING (2U) |
OSPI_Transfers blocks execution. This mode can only be used when called within a Task context and is polling based.
#define OSPI_FF_POL0_PHA0 (0U) |
#define OSPI_FF_POL0_PHA1 (CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_PHASE_FLD_MASK | 0U) |
#define OSPI_FF_POL1_PHA0 (0U | CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_POL_FLD_MASK) |
#define OSPI_FF_POL1_PHA1 |
#define OSPI_XFER_LINES_SINGLE (0U) |
#define OSPI_XFER_LINES_DUAL (1U) |
#define OSPI_XFER_LINES_QUAD (2U) |
#define OSPI_XFER_LINES_OCTAL (3U) |
#define OSPI_CS0 (0U) |
#define OSPI_CS1 (1U) |
#define OSPI_CS2 (2U) |
#define OSPI_CS3 (3U) |
#define OSPI_CHIP_SELECT | ( | x | ) | ((~((1U) << (x))) & 0xFU) |
#define OSPI_DECODER_SELECT4 ((uint32_t) 0U) |
#define OSPI_DECODER_SELECT16 ((uint32_t) 1U) |
typedef void* OSPI_Handle |
A handle that is returned from a OSPI_open() call.
void OSPI_init | ( | void | ) |
This function initializes the OSPI module.
void OSPI_deinit | ( | void | ) |
This function de-initializes the OSPI module.
void OSPI_Params_init | ( | OSPI_Params * | ospiParams | ) |
Initialize data structure with defaults.
ospiParams | [out] Initialized parameters |
OSPI_Handle OSPI_open | ( | uint32_t | index, |
const OSPI_Params * | openParams | ||
) |
This function opens a given OSPI peripheral.
index | Index of config to use in the OSPI_Config array |
openParams | Pointer to parameters to open the driver with |
void OSPI_close | ( | OSPI_Handle | handle | ) |
Function to close a OSPI peripheral specified by the OSPI handle.
handle | OSPI_Handle returned from OSPI_open() |
OSPI_Handle OSPI_getHandle | ( | uint32_t | index | ) |
This function returns the handle of an open OSPI Instance from the instance index.
index | Index of config to use in the OSPI_Config array |
int32_t OSPI_readDirect | ( | OSPI_Handle | handle, |
OSPI_Transaction * | trans | ||
) |
Function to perform direct reads from the flash using DAC controller.
handle | OSPI_Handle returned from OSPI_open() |
trans | Pointer to a OSPI_Transaction |
int32_t OSPI_readIndirect | ( | OSPI_Handle | handle, |
OSPI_Transaction * | trans | ||
) |
Function to perform indirect reads from the flash using INDAC controller.
handle | OSPI_Handle returned from OSPI_open() |
trans | Pointer to a OSPI_Transaction |
int32_t OSPI_writeDirect | ( | OSPI_Handle | handle, |
OSPI_Transaction * | trans | ||
) |
Function to perform direct writes to the flash using DAC controller.
handle | OSPI_Handle returned from OSPI_open() |
trans | Pointer to a OSPI_Transaction |
int32_t OSPI_writeIndirect | ( | OSPI_Handle | handle, |
OSPI_Transaction * | trans | ||
) |
Function to perform indirect writes to the flash using INDAC controller.
handle | OSPI_Handle returned from OSPI_open() |
trans | Pointer to a OSPI_Transaction |
int32_t OSPI_readCmd | ( | OSPI_Handle | handle, |
OSPI_ReadCmdParams * | rdParams | ||
) |
Function to send specific commands and receive related data from flash.
handle | OSPI_Handle returned from OSPI_open() |
rdParams | Pointer to a OSPI_ReadCmdParams |
int32_t OSPI_writeCmd | ( | OSPI_Handle | handle, |
OSPI_WriteCmdParams * | wrParams | ||
) |
Function to send specific commands and related data to flash.
handle | OSPI_Handle returned from OSPI_open() |
wrParams | Pointer to a OSPI_WriteCmdParams |
void OSPI_Transaction_init | ( | OSPI_Transaction * | trans | ) |
Function to initialize the OSPI_Transaction structure.
trans | Pointer to a OSPI_Transaction |
void OSPI_ReadCmdParams_init | ( | OSPI_ReadCmdParams * | rdParams | ) |
Function to initialize the OSPI_Transaction structure.
rdParams | Pointer to a OSPI_ReadCmdParams |
void OSPI_WriteCmdParams_init | ( | OSPI_WriteCmdParams * | wrParams | ) |
Function to initialize the OSPI_Transaction structure.
wrParams | Pointer to a OSPI_WriteCmdParams |
uint32_t OSPI_isDacEnable | ( | OSPI_Handle | handle | ) |
This function checks if the Direct Access Controller is enabled.
handle | An OSPI_Handle returned from an OSPI_open() |
uint32_t OSPI_isDmaEnable | ( | OSPI_Handle | handle | ) |
This function checks if DMA is enabled for reads.
handle | An OSPI_Handle returned from an OSPI_open() |
uint32_t OSPI_isIntrEnable | ( | OSPI_Handle | handle | ) |
This function checks if interrupts are enabled.
handle | An OSPI_Handle returned from an OSPI_open() |
uint32_t OSPI_isPhyEnable | ( | OSPI_Handle | handle | ) |
This function checks if the OSPI PHY controller is enabled.
handle | An OSPI_Handle returned from an OSPI_open() |
uint32_t OSPI_isDtrEnable | ( | OSPI_Handle | handle | ) |
This function checks if the Dual Transfer Rate (Sampling on both rising and falling edge of the clock) is enabled.
handle | An OSPI_Handle returned from an OSPI_open() |
uint32_t OSPI_isXipEnable | ( | OSPI_Handle | handle | ) |
This function checks if the eXecute In Place (XIP) mode is enabled.
handle | An OSPI_Handle returned from an OSPI_open() |
uint32_t OSPI_getXferLines | ( | OSPI_Handle | handle | ) |
This function returns the number of transfer lines enabled for the OSPI communication.
handle | An OSPI_Handle returned from an OSPI_open() |
int32_t OSPI_enableModeDDR | ( | OSPI_Handle | handle, |
uint32_t | cmd, | ||
uint32_t | addr, | ||
uint32_t | data | ||
) |
This function enables the Dual Data Rate (DDR)
handle | An OSPI_Handle returned from an OSPI_open() |
cmd | Command to written to the flash command control register |
addr | Address to be written to the flash command address register |
data | Data to be written to the flash write data register |
int32_t OSPI_enableModeSDR | ( | OSPI_Handle | handle, |
uint32_t | cmd, | ||
uint32_t | addr, | ||
uint32_t | data | ||
) |
This function enables the Single Data Rate (DDR)
handle | An OSPI_Handle returned from an OSPI_open() |
cmd | Command to written to the flash command control register |
addr | Address to be written to the flash command address register |
data | Data to be written to the flash write data register |
int32_t OSPI_enableModeXIP | ( | OSPI_Handle | handle, |
uint32_t | cmd, | ||
uint32_t | addr, | ||
uint32_t | data | ||
) |
This function enables the eXecute In Place (XIP) mode.
handle | An OSPI_Handle returned from an OSPI_open() |
cmd | Command to written to the flash command control register |
addr | Address to be written to the flash command address register |
data | Data to be written to the flash write data register |
int32_t OSPI_setDummyCycle | ( | OSPI_Handle | handle, |
uint32_t | cmd, | ||
uint32_t | addr, | ||
uint32_t | data | ||
) |
This function sets appropriate dummy cycles to the flash controller.
handle | An OSPI_Handle returned from an OSPI_open() |
cmd | Command to be written to the flash command control register |
addr | Address to be written to the flash command address register |
data | Data to be written to the flash write data register |
void OSPI_setReadDummyCycles | ( | OSPI_Handle | handle, |
uint32_t | dummyCycles | ||
) |
This function sets appropriate dummy cycles to the OSPI object to be used for flash read.
handle | An OSPI_Handle returned from an OSPI_open() |
dummyCycles | Number of dummy cycles |
void OSPI_setExtReadDummyCycles | ( | OSPI_Handle | handle, |
uint32_t | dummyCycles | ||
) |
This function sets appropriate dummy cycles to the OSPI object to be used for flash extended read.
handle | An OSPI_Handle returned from an OSPI_open() |
dummyCycles | Number of dummy cycles |
void OSPI_setXferLines | ( | OSPI_Handle | handle, |
uint32_t | xferLines | ||
) |
This function sets the number of transfer lines to the flash device configuration registers.
handle | An OSPI_Handle returned from an OSPI_open() |
xferLines | Number of transfer lines |
void OSPI_setXferOpCode | ( | OSPI_Handle | handle, |
uint32_t | readCmd, | ||
uint32_t | pageProgCmd, | ||
uint32_t | readStatusCmd | ||
) |
This function sets the transfer opcodes required for correct read and write operations to the flash.
handle | An OSPI_Handle returned from an OSPI_open() |
readCmd | Flash specific command opcode for read |
pageProgCmd | Flash specific command opcode for programming the page |
readStatusCmd | Flash specific command opcode to check readStatus |
void OSPI_setXferOpCodeExt | ( | OSPI_Handle | handle, |
uint32_t * | cmd, | ||
uint32_t | cmdLen | ||
) |
This function sets the transfer opcodes required for correct read and write operations to the flash for extended dual opcode mode.
handle | An OSPI_Handle returned from an OSPI_open() |
cmd | Pointer to command buffer containing different opcodes to enable the dual opcode mode |
cmdLen | Length of command buffer |
int32_t OSPI_enableDacMode | ( | OSPI_Handle | handle | ) |
This function enables the Direct Access Mode.
handle | An OSPI_Handle returned from an OSPI_open() |
int32_t OSPI_disableDacMode | ( | OSPI_Handle | handle | ) |
This function disables the Direct Access Mode.
handle | An OSPI_Handle returned from an OSPI_open() |
uint32_t OSPI_getFlashDataBaseAddr | ( | OSPI_Handle | handle | ) |
This function gets the SOC mapped data base address of the flash.
handle | An OSPI_Handle returned from an OSPI_open() |
|
extern |
Externally defined driver configuration array.
|
extern |
Externally defined driver configuration array size.