278 #if defined(__cplusplus)
418 uint32_t lpspi_tmp = base->
FCR;
421 base->
FCR = lpspi_tmp;
435 uint32_t lpspi_tmp = base->
FCR;
438 base->
FCR = lpspi_tmp;
462 return (
bool)(((base->
SR) >> (uint8_t)statusFlag) & 1U);
497 base->
IER |= (uint32_t)1U << (uint8_t)interruptSrc;
501 base->
IER &= ~((uint32_t)1U << (uint8_t)interruptSrc);
516 return (
bool)(((base->
IER) >> (uint8_t)interruptSrc) & 1U);
608 bool rxDataMatchOnly,
643 bool pcs3and2Enable);
668 uint32_t sourceClockInHz, uint32_t * tcrPrescaleValue);
787 return (uint32_t)base->
RDR;
868 uint32_t lpspi_tmp = base->
TCR;
871 base->
TCR = lpspi_tmp;
889 #if defined(__cplusplus)
static uint32_t LPSPI_HAL_ReadRxCount(const LPSPI_Type *base)
Reads RX COUNT form the FIFO Status Register.
#define LPSPI_TCR_PRESCALE_MASK
static void LPSPI_HAL_SetTxWatermarks(LPSPI_Type *base, uint32_t txWater)
Sets the TX FIFO watermark values.
#define LPSPI_DER_TDDE_SHIFT
#define LPSPI_SR_TEF_SHIFT
void LPSPI_HAL_GetFifoSizes(const LPSPI_Type *base, uint8_t *txFifoSize, uint8_t *rxFifoSize)
Gets the TX and RX FIFO sizes of the LPSPI module.
#define LPSPI_SR_RDF_SHIFT
lpspi_clock_phase_t clkPhase
static const uint32_t s_baudratePrescaler[]
lpspi_transfer_width_t width
status_t LPSPI_HAL_Config(LPSPI_Type *base, const lpspi_init_config_t *config, lpspi_tx_cmd_config_t *txCmdCfgSet, uint32_t *actualBaudRate)
Configures the LPSPI registers to a user defined configuration.
static void LPSPI_HAL_ClearContCBit(LPSPI_Type *base)
Clear CONTC bit form TCR Register.
lpspi_signal_polarity_t
LPSPI Signal (PCS and Host Request) Polarity configuration. Implements : lpspi_signal_polarity_t_Clas...
#define LPSPI_CCR_SCKPCS_SHIFT
#define LPSPI_FCR_RXWATER_SHIFT
#define LPSPI_FSR_TXCOUNT_SHIFT
lpspi_signal_polarity_t pcsPol
void LPSPI_HAL_SetFlushFifoCmd(LPSPI_Type *base, bool flushTxFifo, bool flushRxFifo)
Flushes the LPSPI FIFOs.
void LPSPI_HAL_GetVersionId(const LPSPI_Type *base, uint32_t *major, uint32_t *minor, uint32_t *feature)
Gets the Major, Minor and Feature ID of the LPSPI module.
status_t LPSPI_HAL_SetDelay(LPSPI_Type *base, lpspi_delay_type_t whichDelay, uint32_t delay)
Manually configures a specific LPSPI delay parameter (module must be disabled to change the delay val...
static uint32_t LPSPI_HAL_ReadData(const LPSPI_Type *base)
Reads data from the data buffer.
lpspi_which_pcs_t
LPSPI Peripheral Chip Select (PCS) configuration (which PCS to configure). Implements : lpspi_which_p...
lpspi_prescaler_t
Prescaler values for LPSPI clock source. Implements : lpspi_prescaler_t_Class.
lpspi_sck_polarity_t
LPSPI Clock Signal (SCK) Polarity configuration. Implements : lpspi_sck_polarity_t_Class.
#define LPSPI_SR_FCF_SHIFT
status_t LPSPI_HAL_SetPinConfigMode(LPSPI_Type *base, lpspi_pin_config_t pinCfg, lpspi_data_out_config_t dataOutConfig, bool pcs3and2Enable)
Configures the LPSPI SDO/SDI pin configuration mode.
static void LPSPI_HAL_SetTxDmaCmd(LPSPI_Type *base, bool enable)
Sets the LPSPI Transmit Data DMA configuration (enable or disable).
lpspi_data_out_config_t
LPSPI data output configuration. Implements : lpspi_data_out_config_t_Class.
static bool LPSPI_HAL_IsMaster(const LPSPI_Type *base)
Returns whether the LPSPI module is in master mode.
lpspi_host_request_select_t
LPSPI Host Request select configuration. Implements : lpspi_host_request_select_t_Class.
LPSPI initialization configuration structure.
#define LPSPI_FCR_TXWATER_SHIFT
#define LPSPI_CCR_PCSSCK_SHIFT
lpspi_status_flag_t
LPSPI status flags. Implements : lpspi_status_flag_t_Class.
#define LPSPI_SR_MBF_SHIFT
status_t LPSPI_HAL_SetBaudRateDivisor(LPSPI_Type *base, uint32_t divisor)
Configures the baud rate divisor manually (only the LPSPI_CCR[SCKDIV]).
#define LPSPI_FSR_RXCOUNT_MASK
status_t LPSPI_HAL_SetPcsPolarityMode(LPSPI_Type *base, lpspi_which_pcs_t whichPcs, lpspi_signal_polarity_t pcsPolarity)
Configures the desired LPSPI PCS polarity.
#define LPSPI_SR_TDF_SHIFT
static uint32_t LPSPI_HAL_ReadTxCount(const LPSPI_Type *base)
Reads TX COUNT form the FIFO Status Register.
#define LPSPI_SR_DMF_SHIFT
static void LPSPI_HAL_SetClockPrescaler(LPSPI_Type *base, lpspi_prescaler_t prescaler)
Configures the clock prescaler used for all LPSPI master logic.
status_t
Status return codes. Common error codes will be a unified enumeration (C enum) that will contain all ...
#define LPSPI_CCR_DBT_SHIFT
uint32_t LPSPI_HAL_SetBaudRate(LPSPI_Type *base, uint32_t bitsPerSec, uint32_t sourceClockInHz, uint32_t *tcrPrescaleValue)
Sets the LPSPI baud rate in bits per second.
#define LPSPI_CR_MEN_SHIFT
static void LPSPI_HAL_Enable(LPSPI_Type *base)
Enables the LPSPI module.
#define LPSPI_DER_RDDE_SHIFT
#define LPSPI_DER_RDDE_MASK
#define LPSPI_FSR_RXCOUNT_SHIFT
#define LPSPI_SR_REF_SHIFT
lpspi_transfer_width_t
LPSPI transfer width configuration. Implements : lpspi_transfer_width_t_Class.
void LPSPI_HAL_WriteDataBlocking(LPSPI_Type *base, uint32_t data)
Writes a data into the TX data buffer and waits till complete to return.
#define LPSPI_FSR_TXCOUNT_MASK
static bool LPSPI_HAL_GetIntMode(const LPSPI_Type *base, lpspi_status_flag_t interruptSrc)
Returns if the LPSPI interrupt request is enabled or disabled.
#define LPSPI_TCR_PRESCALE_SHIFT
static void LPSPI_HAL_SetRxDmaCmd(LPSPI_Type *base, bool enable)
Sets the LPSPI Receive Data DMA configuration (enable or disable).
static void LPSPI_HAL_SetIntMode(LPSPI_Type *base, lpspi_status_flag_t interruptSrc, bool enable)
Configures the LPSPI interrupts.
static lpspi_prescaler_t LPSPI_HAL_GetClockPrescaler(const LPSPI_Type *base)
Get the clock prescaler used for all LPSPI master logic.
lpspi_which_pcs_t whichPcs
void LPSPI_HAL_Init(LPSPI_Type *base)
Resets the LPSPI internal logic and registers to their default settings.
status_t LPSPI_HAL_ClearStatusFlag(LPSPI_Type *base, lpspi_status_flag_t statusFlag)
Clears the LPSPI status flag.
static void LPSPI_HAL_SetRxWatermarks(LPSPI_Type *base, uint32_t rxWater)
Sets the RX FIFO watermark values.
LPSPI Transmit Command Register configuration structure.
lpspi_master_slave_mode_t
LPSPI master or slave configuration. Implements : lpspi_master_slave_mode_t_Class.
#define LPSPI_SR_WCF_SHIFT
lpspi_pin_config_t
LPSPI pin (SDO and SDI) configuration. Implements : lpspi_pin_config_t_Class.
status_t LPSPI_HAL_SetMatchConfigMode(LPSPI_Type *base, lpspi_match_config_t matchCondition, bool rxDataMatchOnly, uint32_t match0, uint32_t match1)
Configures the LPSPI data match configuration mode.
static void LPSPI_HAL_SetContCBit(LPSPI_Type *base)
Set CONTC bit form TCR Register.
lpspi_master_slave_mode_t lpspiMode
uint32_t LPSPI_HAL_ReadDataBlocking(const LPSPI_Type *base)
Reads data from the data buffer but first waits till data is ready.
#define LPSPI_CFGR1_MASTER_SHIFT
lpspi_delay_type_t
LPSPI delay type selection Implements : lpspi_delay_type_t_Class.
static bool LPSPI_HAL_IsModuleEnabled(const LPSPI_Type *base)
Check if LPSPI module is enabled.
#define LPSPI_SR_TCF_SHIFT
#define LPSPI_DER_TDDE_MASK
lpspi_sck_polarity_t clkPolarity
void LPSPI_HAL_SetTxCommandReg(LPSPI_Type *base, const lpspi_tx_cmd_config_t *txCmdCfgSet)
Sets the Transmit Command Register (TCR) parameters.
lpspi_clock_phase_t
LPSPI clock phase configuration. Implements : lpspi_clock_phase_t_Class.
status_t LPSPI_HAL_Disable(LPSPI_Type *base)
Disables the LPSPI module.
#define LPSPI_FCR_RXWATER_MASK
status_t LPSPI_HAL_SetMasterSlaveMode(LPSPI_Type *base, lpspi_master_slave_mode_t mode)
Configures the LPSPI for master or slave.
#define LPSPI_CR_MEN_MASK
void LPSPI_HAL_SetHostRequestMode(LPSPI_Type *base, lpspi_host_request_select_t hostReqInput, lpspi_signal_polarity_t hostReqPol, bool enable)
Configures the LPSPI Host Request input.
#define LPSPI_TCR_CONTC_MASK
static bool LPSPI_HAL_GetStatusFlag(const LPSPI_Type *base, lpspi_status_flag_t statusFlag)
Gets the LPSPI status flag state.
lpspi_match_config_t
LPSPI Match configuration options. Implements : lpspi_match_config_t_Class.
static void LPSPI_HAL_WriteData(LPSPI_Type *base, uint32_t data)
Writes data into the TX data buffer.