AM64x MCU+ SDK  07.03.00
ospi/v0/ospi.h File Reference

Introduction

OSPI Driver API/interface file.

Go to the source code of this 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
 

Macros

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)
 

Typedefs

typedef void * OSPI_Handle
 A handle that is returned from a OSPI_open() call. More...
 

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...
 
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...
 

Variables

OSPI_Config gOspiConfig []
 Externally defined driver configuration array. More...
 
uint32_t gOspiConfigNum
 Externally defined driver configuration array size. More...