RTEMS: bsps/arm/atsam/contrib/libraries/libchip/source/qspi_dma.c File Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Macros | Functions
qspi_dma.c File Reference
`#include "chip.h"`

## Macros
#define | DMA_QSPI_LLI 2

## Functions
uint32_t | QSPID_Configure (QspiDma_t *pQspidma, QspiMode_t Mode, uint32_t dwConf, sXdmad *pXdmad)
| Initializes the pQspidma structure and the corresponding QSPI & DMA . hardware select value.
uint32_t | QSPID_EnableQspiRxChannel (QspiDma_t *pQspidma)
| Enables a QSPI Rx channel. This function will allocate a dma Rx channel for QSPI.
uint32_t | QSPID_EnableQspiTxChannel (QspiDma_t *pQspidma)
| Enables a QSPI Tx channel. This function will allocate a dma Tx channel for QSPI.
uint32_t | QSPID_EnableSpiChannel (QspiDma_t *pQspidma)
| Enables a QSPI SPI Rx channel. This function will allocate a dma Rx channel for QSPI SPI mode.
uint32_t | QSPID_DisableQspiRxChannel (QspiDma_t *pQspidma)
| Disables a QSPI Rx channel. This function will de-allocate previous allocated dma Rx channel for QSPI.
uint32_t | QSPID_DisableQspiTxChannel (QspiDma_t *pQspidma)
| Disables a QSPI Tx channel. This function will de-allocate previous allocated dma Tx channel for QSPI.
uint32_t | QSPID_DisableSpiChannel (QspiDma_t *pQspidma)
| Disables a QSPI SPI Rx and Tx channels. This function will de-allocate privious allocated dma Rx, Txchannel for QSPI in SPI mode.
uint32_t | QSPID_ReadWriteQSPI (QspiDma_t *pQspidma, Access_t const ReadWrite)
| Starts a QSPI read or write operation.
uint32_t | QSPID_ReadWriteSPI (QspiDma_t *pQspidma, Access_t const ReadWrite)
| Starts a SPI master transfer. This is a non blocking function. It will return as soon as the transfer is started.
uint32_t | QSPID_IsBusy (volatile uint8_t *QspiSemaphore)
| Check if the QSPI driver is busy.

## Detailed Description

Implementation for the SPI Flash with xDMA driver.

## Macro Definition Documentation

## ◆ DMA_QSPI_LLI

#define DMA_QSPI_LLI 2

xDMA support xDMA Link List size for SPI transmission

## Function Documentation

## ◆ QSPID_Configure()

uint32_t QSPID_Configure | ( | QspiDma_t * | pQspidma,
|  | QspiMode_t | Mode,
|  | uint32_t | dwConf,
|  | sXdmad * | pXdmad
| ) |  |

Initializes the pQspidma structure and the corresponding QSPI & DMA . hardware select value.

Parameters

  pQspidma | Pointer to a QspiDma_t instance.
  Mode | Associated SPI peripheral.
  dwConf | QSPI peripheral configuration.
  pXdmad | Pointer to a Xdmad instance.

## ◆ QSPID_DisableQspiRxChannel()

uint32_t QSPID_DisableQspiRxChannel | ( | QspiDma_t * | pQspidma | ) |

Disables a QSPI Rx channel. This function will de-allocate previous allocated dma Rx channel for QSPI.

Parameters

  pQspidma | Pointer to a Spid instance.

Returns
  0 if the transfer has been started successfully; otherwise returns QSPID_ERROR_LOCK is the driver is in use, or QSPID_ERROR if the command is not valid.

## ◆ QSPID_DisableQspiTxChannel()

uint32_t QSPID_DisableQspiTxChannel | ( | QspiDma_t * | pQspidma | ) |

Disables a QSPI Tx channel. This function will de-allocate previous allocated dma Tx channel for QSPI.

Parameters

  pQspidma | Pointer to a Spid instance.

Returns
  0 if the transfer has been started successfully; otherwise returns QSPID_ERROR_LOCK is the driver is in use, or QSPID_ERROR if the command is not valid.

## ◆ QSPID_DisableSpiChannel()

uint32_t QSPID_DisableSpiChannel | ( | QspiDma_t * | pQspidma | ) |

Disables a QSPI SPI Rx and Tx channels. This function will de-allocate privious allocated dma Rx, Txchannel for QSPI in SPI mode.

Parameters

  pQspidma | Pointer to a Spid instance.

Returns
  0 if the transfer has been started successfully; otherwise returns QSPID_ERROR_LOCK is the driver is in use, or QSPID_ERROR if the command is not valid.

## ◆ QSPID_EnableQspiRxChannel()

uint32_t QSPID_EnableQspiRxChannel | ( | QspiDma_t * | pQspidma | ) |

Enables a QSPI Rx channel. This function will allocate a dma Rx channel for QSPI.

Parameters

  pQspidma | Pointer to a Spid instance.

Returns
  0 if the transfer has been started successfully; otherwise returns QSPID_ERROR_LOCK is the driver is in use, or QSPID_ERROR if the command is not valid.

## ◆ QSPID_EnableQspiTxChannel()

uint32_t QSPID_EnableQspiTxChannel | ( | QspiDma_t * | pQspidma | ) |

Enables a QSPI Tx channel. This function will allocate a dma Tx channel for QSPI.

Parameters

  pQspidma | Pointer to a Spid instance.

Returns
  0 if the transfer has been started successfully; otherwise returns QSPID_ERROR_LOCK is the driver is in use, or QSPID_ERROR if the command is not valid.

## ◆ QSPID_EnableSpiChannel()

uint32_t QSPID_EnableSpiChannel | ( | QspiDma_t * | pQspidma | ) |

Enables a QSPI SPI Rx channel. This function will allocate a dma Rx channel for QSPI SPI mode.

Parameters

  pQspidma | Pointer to a Spid instance.

Returns
  0 if the transfer has been started successfully; otherwise returns QSPID_ERROR_LOCK is the driver is in use, or QSPID_ERROR if the command is not valid.

## ◆ QSPID_IsBusy()

uint32_t QSPID_IsBusy | ( | volatile uint8_t * | QspiSemaphore | ) |

Check if the QSPI driver is busy.

Parameters

  pSpid | Pointer to a Spid instance.

Returns
  1 if the SPI driver is currently busy executing a command; otherwise

## ◆ QSPID_ReadWriteQSPI()

uint32_t QSPID_ReadWriteQSPI | ( | QspiDma_t * | pQspidma,
|  | Access_t const | ReadWrite
| ) |  |

Starts a QSPI read or write operation.

Parameters

  pQspidma | Pointer to a Qspid instance.
  ReadWrite | Defines the memory access type

Returns
  0 if the transfer has been started successfully; otherwise returns QSPID_ERROR_LOCK is the driver is in use, or QSPID_ERROR if the command is not valid.

## ◆ QSPID_ReadWriteSPI()

uint32_t QSPID_ReadWriteSPI | ( | QspiDma_t * | pQspidma,
|  | Access_t const | ReadWrite
| ) |  |

Starts a SPI master transfer. This is a non blocking function. It will return as soon as the transfer is started.

Parameters

  pSpid | Pointer to a Spid instance.
  pCommand | Pointer to the SPI command to execute.

Returns
  0 if the transfer has been started successfully; otherwise returns SPID_ERROR_LOCK is the driver is in use, or SPID_ERROR if the command is not valid.