rusEFI
The most advanced open source ECU
|
Data Structures | |
struct | _lpspi_master_config |
LPSPI master configuration structure. More... | |
struct | _lpspi_slave_config |
LPSPI slave configuration structure. More... | |
struct | _lpspi_transfer |
LPSPI master/slave transfer structure. More... | |
struct | _lpspi_master_handle |
LPSPI master transfer handle structure used for transactional API. More... | |
struct | _lpspi_slave_handle |
LPSPI slave transfer handle structure used for transactional API. More... | |
Functions | |
Initialization and deinitialization | |
void | LPSPI_MasterInit (LPSPI_Type *base, const lpspi_master_config_t *masterConfig, uint32_t srcClock_Hz) |
Initializes the LPSPI master. | |
void | LPSPI_MasterGetDefaultConfig (lpspi_master_config_t *masterConfig) |
Sets the lpspi_master_config_t structure to default values. | |
void | LPSPI_SlaveInit (LPSPI_Type *base, const lpspi_slave_config_t *slaveConfig) |
LPSPI slave configuration. | |
void | LPSPI_SlaveGetDefaultConfig (lpspi_slave_config_t *slaveConfig) |
Sets the lpspi_slave_config_t structure to default values. | |
void | LPSPI_Deinit (LPSPI_Type *base) |
De-initializes the LPSPI peripheral. Call this API to disable the LPSPI clock. | |
void | LPSPI_Reset (LPSPI_Type *base) |
Restores the LPSPI peripheral to reset state. Note that this function sets all registers to reset state. As a result, the LPSPI module can't work after calling this API. | |
static void | LPSPI_Enable (LPSPI_Type *base, bool enable) |
Enables the LPSPI peripheral and sets the MCR MDIS to 0. | |
Status | |
static uint32_t | LPSPI_GetStatusFlags (LPSPI_Type *base) |
Gets the LPSPI status flag state. | |
static uint32_t | LPSPI_GetTxFifoSize (LPSPI_Type *base) |
Gets the LPSPI Tx FIFO size. | |
static uint32_t | LPSPI_GetRxFifoSize (LPSPI_Type *base) |
Gets the LPSPI Rx FIFO size. | |
static uint32_t | LPSPI_GetTxFifoCount (LPSPI_Type *base) |
Gets the LPSPI Tx FIFO count. | |
static uint32_t | LPSPI_GetRxFifoCount (LPSPI_Type *base) |
Gets the LPSPI Rx FIFO count. | |
static void | LPSPI_ClearStatusFlags (LPSPI_Type *base, uint32_t statusFlags) |
Clears the LPSPI status flag. | |
Interrupts | |
static void | LPSPI_EnableInterrupts (LPSPI_Type *base, uint32_t mask) |
Enables the LPSPI interrupts. | |
static void | LPSPI_DisableInterrupts (LPSPI_Type *base, uint32_t mask) |
Disables the LPSPI interrupts. | |
DMA Control | |
static void | LPSPI_EnableDMA (LPSPI_Type *base, uint32_t mask) |
Enables the LPSPI DMA request. | |
static void | LPSPI_DisableDMA (LPSPI_Type *base, uint32_t mask) |
Disables the LPSPI DMA request. | |
static uint32_t | LPSPI_GetTxRegisterAddress (LPSPI_Type *base) |
Gets the LPSPI Transmit Data Register address for a DMA operation. | |
static uint32_t | LPSPI_GetRxRegisterAddress (LPSPI_Type *base) |
Gets the LPSPI Receive Data Register address for a DMA operation. | |
Bus Operations | |
bool | LPSPI_CheckTransferArgument (lpspi_transfer_t *transfer, uint32_t bitsPerFrame, uint32_t bytesPerFrame) |
Check the argument for transfer . | |
static void | LPSPI_SetMasterSlaveMode (LPSPI_Type *base, lpspi_master_slave_mode_t mode) |
Configures the LPSPI for either master or slave. | |
static bool | LPSPI_IsMaster (LPSPI_Type *base) |
Returns whether the LPSPI module is in master mode. | |
static void | LPSPI_FlushFifo (LPSPI_Type *base, bool flushTxFifo, bool flushRxFifo) |
Flushes the LPSPI FIFOs. | |
static void | LPSPI_SetFifoWatermarks (LPSPI_Type *base, uint32_t txWater, uint32_t rxWater) |
Sets the transmit and receive FIFO watermark values. | |
static void | LPSPI_SetAllPcsPolarity (LPSPI_Type *base, uint32_t mask) |
Configures all LPSPI peripheral chip select polarities simultaneously. | |
static void | LPSPI_SetFrameSize (LPSPI_Type *base, uint32_t frameSize) |
Configures the frame size. | |
uint32_t | LPSPI_MasterSetBaudRate (LPSPI_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz, uint32_t *tcrPrescaleValue) |
Sets the LPSPI baud rate in bits per second. | |
void | LPSPI_MasterSetDelayScaler (LPSPI_Type *base, uint32_t scaler, lpspi_delay_type_t whichDelay) |
Manually configures a specific LPSPI delay parameter (module must be disabled to change the delay values). | |
uint32_t | LPSPI_MasterSetDelayTimes (LPSPI_Type *base, uint32_t delayTimeInNanoSec, lpspi_delay_type_t whichDelay, uint32_t srcClock_Hz) |
Calculates the delay based on the desired delay input in nanoseconds (module must be disabled to change the delay values). | |
static void | LPSPI_WriteData (LPSPI_Type *base, uint32_t data) |
Writes data into the transmit data buffer. | |
static uint32_t | LPSPI_ReadData (LPSPI_Type *base) |
Reads data from the data buffer. | |
void | LPSPI_SetDummyData (LPSPI_Type *base, uint8_t dummyData) |
Set up the dummy data. | |
Transactional | |
void | LPSPI_MasterTransferCreateHandle (LPSPI_Type *base, lpspi_master_handle_t *handle, lpspi_master_transfer_callback_t callback, void *userData) |
Initializes the LPSPI master handle. | |
status_t | LPSPI_MasterTransferBlocking (LPSPI_Type *base, lpspi_transfer_t *transfer) |
LPSPI master transfer data using a polling method. | |
status_t | LPSPI_MasterTransferNonBlocking (LPSPI_Type *base, lpspi_master_handle_t *handle, lpspi_transfer_t *transfer) |
LPSPI master transfer data using an interrupt method. | |
status_t | LPSPI_MasterTransferGetCount (LPSPI_Type *base, lpspi_master_handle_t *handle, size_t *count) |
Gets the master transfer remaining bytes. | |
void | LPSPI_MasterTransferAbort (LPSPI_Type *base, lpspi_master_handle_t *handle) |
LPSPI master abort transfer which uses an interrupt method. | |
void | LPSPI_MasterTransferHandleIRQ (LPSPI_Type *base, lpspi_master_handle_t *handle) |
LPSPI Master IRQ handler function. | |
void | LPSPI_SlaveTransferCreateHandle (LPSPI_Type *base, lpspi_slave_handle_t *handle, lpspi_slave_transfer_callback_t callback, void *userData) |
Initializes the LPSPI slave handle. | |
status_t | LPSPI_SlaveTransferNonBlocking (LPSPI_Type *base, lpspi_slave_handle_t *handle, lpspi_transfer_t *transfer) |
LPSPI slave transfer data using an interrupt method. | |
status_t | LPSPI_SlaveTransferGetCount (LPSPI_Type *base, lpspi_slave_handle_t *handle, size_t *count) |
Gets the slave transfer remaining bytes. | |
void | LPSPI_SlaveTransferAbort (LPSPI_Type *base, lpspi_slave_handle_t *handle) |
LPSPI slave aborts a transfer which uses an interrupt method. | |
void | LPSPI_SlaveTransferHandleIRQ (LPSPI_Type *base, lpspi_slave_handle_t *handle) |
LPSPI Slave IRQ handler function. | |
Driver version | |
enum | _lpspi_status { kStatus_LPSPI_Busy = MAKE_STATUS(kStatusGroup_LPSPI, 0) , kStatus_LPSPI_Error = MAKE_STATUS(kStatusGroup_LPSPI, 1) , kStatus_LPSPI_Idle = MAKE_STATUS(kStatusGroup_LPSPI, 2) , kStatus_LPSPI_OutOfRange = MAKE_STATUS(kStatusGroup_LPSPI, 3) } |
Status for the LPSPI driver. More... | |
enum | _lpspi_flags { kLPSPI_TxDataRequestFlag = LPSPI_SR_TDF_MASK , kLPSPI_RxDataReadyFlag = LPSPI_SR_RDF_MASK , kLPSPI_WordCompleteFlag = LPSPI_SR_WCF_MASK , kLPSPI_FrameCompleteFlag = LPSPI_SR_FCF_MASK , kLPSPI_TransferCompleteFlag = LPSPI_SR_TCF_MASK , kLPSPI_TransmitErrorFlag = LPSPI_SR_TEF_MASK , kLPSPI_ReceiveErrorFlag = LPSPI_SR_REF_MASK , kLPSPI_DataMatchFlag = LPSPI_SR_DMF_MASK , kLPSPI_ModuleBusyFlag = LPSPI_SR_MBF_MASK , kLPSPI_AllStatusFlag } |
LPSPI status flags in SPIx_SR register. More... | |
enum | _lpspi_interrupt_enable { kLPSPI_TxInterruptEnable = LPSPI_IER_TDIE_MASK , kLPSPI_RxInterruptEnable = LPSPI_IER_RDIE_MASK , kLPSPI_WordCompleteInterruptEnable = LPSPI_IER_WCIE_MASK , kLPSPI_FrameCompleteInterruptEnable = LPSPI_IER_FCIE_MASK , kLPSPI_TransferCompleteInterruptEnable = LPSPI_IER_TCIE_MASK , kLPSPI_TransmitErrorInterruptEnable = LPSPI_IER_TEIE_MASK , kLPSPI_ReceiveErrorInterruptEnable = LPSPI_IER_REIE_MASK , kLPSPI_DataMatchInterruptEnable = LPSPI_IER_DMIE_MASK , kLPSPI_AllInterruptEnable } |
LPSPI interrupt source. More... | |
enum | _lpspi_dma_enable { kLPSPI_TxDmaEnable = LPSPI_DER_TDDE_MASK , kLPSPI_RxDmaEnable = LPSPI_DER_RDDE_MASK } |
LPSPI DMA source. More... | |
enum | _lpspi_master_slave_mode { kLPSPI_Master = 1U , kLPSPI_Slave = 0U } |
LPSPI master or slave mode configuration. More... | |
enum | _lpspi_which_pcs_config { kLPSPI_Pcs0 = 0U , kLPSPI_Pcs1 = 1U , kLPSPI_Pcs2 = 2U , kLPSPI_Pcs3 = 3U } |
LPSPI Peripheral Chip Select (PCS) configuration (which PCS to configure). More... | |
enum | _lpspi_pcs_polarity_config { kLPSPI_PcsActiveHigh = 1U , kLPSPI_PcsActiveLow = 0U } |
LPSPI Peripheral Chip Select (PCS) Polarity configuration. More... | |
enum | _lpspi_pcs_polarity { kLPSPI_Pcs0ActiveLow = 1U << 0 , kLPSPI_Pcs1ActiveLow = 1U << 1 , kLPSPI_Pcs2ActiveLow = 1U << 2 , kLPSPI_Pcs3ActiveLow = 1U << 3 , kLPSPI_PcsAllActiveLow = 0xFU } |
LPSPI Peripheral Chip Select (PCS) Polarity. More... | |
enum | _lpspi_clock_polarity { kLPSPI_ClockPolarityActiveHigh = 0U , kLPSPI_ClockPolarityActiveLow = 1U } |
LPSPI clock polarity configuration. More... | |
enum | _lpspi_clock_phase { kLPSPI_ClockPhaseFirstEdge = 0U , kLPSPI_ClockPhaseSecondEdge = 1U } |
LPSPI clock phase configuration. More... | |
enum | _lpspi_shift_direction { kLPSPI_MsbFirst = 0U , kLPSPI_LsbFirst = 1U } |
LPSPI data shifter direction options. More... | |
enum | _lpspi_host_request_select { kLPSPI_HostReqExtPin = 0U , kLPSPI_HostReqInternalTrigger = 1U } |
LPSPI Host Request select configuration. More... | |
enum | _lpspi_match_config { kLPSI_MatchDisabled = 0x0U , kLPSI_1stWordEqualsM0orM1 = 0x2U , kLPSI_AnyWordEqualsM0orM1 = 0x3U , kLPSI_1stWordEqualsM0and2ndWordEqualsM1 = 0x4U , kLPSI_AnyWordEqualsM0andNxtWordEqualsM1 = 0x5U , kLPSI_1stWordAndM1EqualsM0andM1 = 0x6U , kLPSI_AnyWordAndM1EqualsM0andM1 = 0x7U } |
LPSPI Match configuration options. More... | |
enum | _lpspi_pin_config { kLPSPI_SdiInSdoOut = 0U , kLPSPI_SdiInSdiOut = 1U , kLPSPI_SdoInSdoOut = 2U , kLPSPI_SdoInSdiOut = 3U } |
LPSPI pin (SDO and SDI) configuration. More... | |
enum | _lpspi_data_out_config { kLpspiDataOutRetained = 0U , kLpspiDataOutTristate = 1U } |
LPSPI data output configuration. More... | |
enum | _lpspi_transfer_width { kLPSPI_SingleBitXfer = 0U , kLPSPI_TwoBitXfer = 1U , kLPSPI_FourBitXfer = 2U } |
LPSPI transfer width configuration. More... | |
enum | _lpspi_delay_type { kLPSPI_PcsToSck = 1U , kLPSPI_LastSckToPcs , kLPSPI_BetweenTransfer } |
LPSPI delay type selection. More... | |
enum | _lpspi_transfer_config_flag_for_master { kLPSPI_MasterPcs0 = 0U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcs1 = 1U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcs2 = 2U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcs3 = 3U << LPSPI_MASTER_PCS_SHIFT , kLPSPI_MasterPcsContinuous = 1U << 20 , kLPSPI_MasterByteSwap } |
Use this enumeration for LPSPI master transfer configFlags. More... | |
enum | _lpspi_transfer_config_flag_for_slave { kLPSPI_SlavePcs0 = 0U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlavePcs1 = 1U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlavePcs2 = 2U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlavePcs3 = 3U << LPSPI_SLAVE_PCS_SHIFT , kLPSPI_SlaveByteSwap } |
Use this enumeration for LPSPI slave transfer configFlags. More... | |
enum | _lpspi_transfer_state { kLPSPI_Idle = 0x0U , kLPSPI_Busy , kLPSPI_Error } |
LPSPI transfer state, which is used for LPSPI transactional API state machine. More... | |
typedef enum _lpspi_master_slave_mode | lpspi_master_slave_mode_t |
LPSPI master or slave mode configuration. | |
typedef enum _lpspi_which_pcs_config | lpspi_which_pcs_t |
LPSPI Peripheral Chip Select (PCS) configuration (which PCS to configure). | |
typedef enum _lpspi_pcs_polarity_config | lpspi_pcs_polarity_config_t |
LPSPI Peripheral Chip Select (PCS) Polarity configuration. | |
typedef enum _lpspi_clock_polarity | lpspi_clock_polarity_t |
LPSPI clock polarity configuration. | |
typedef enum _lpspi_clock_phase | lpspi_clock_phase_t |
LPSPI clock phase configuration. | |
typedef enum _lpspi_shift_direction | lpspi_shift_direction_t |
LPSPI data shifter direction options. | |
typedef enum _lpspi_host_request_select | lpspi_host_request_select_t |
LPSPI Host Request select configuration. | |
typedef enum _lpspi_match_config | lpspi_match_config_t |
LPSPI Match configuration options. | |
typedef enum _lpspi_pin_config | lpspi_pin_config_t |
LPSPI pin (SDO and SDI) configuration. | |
typedef enum _lpspi_data_out_config | lpspi_data_out_config_t |
LPSPI data output configuration. | |
typedef enum _lpspi_transfer_width | lpspi_transfer_width_t |
LPSPI transfer width configuration. | |
typedef enum _lpspi_delay_type | lpspi_delay_type_t |
LPSPI delay type selection. | |
typedef struct _lpspi_master_config | lpspi_master_config_t |
LPSPI master configuration structure. | |
typedef struct _lpspi_slave_config | lpspi_slave_config_t |
LPSPI slave configuration structure. | |
typedef struct _lpspi_master_handle | lpspi_master_handle_t |
Forward declaration of the _lpspi_master_handle typedefs. | |
typedef struct _lpspi_slave_handle | lpspi_slave_handle_t |
Forward declaration of the _lpspi_slave_handle typedefs. | |
typedef void(* | lpspi_master_transfer_callback_t) (LPSPI_Type *base, lpspi_master_handle_t *handle, status_t status, void *userData) |
Master completion callback function pointer type. | |
typedef void(* | lpspi_slave_transfer_callback_t) (LPSPI_Type *base, lpspi_slave_handle_t *handle, status_t status, void *userData) |
Slave completion callback function pointer type. | |
typedef struct _lpspi_transfer | lpspi_transfer_t |
LPSPI master/slave transfer structure. | |
volatile uint8_t | g_lpspiDummyData [] |
Global variable for dummy data value setting. | |