lpi2c_driver.c File Reference
#include "lpi2c_driver.h"
#include "interrupt_manager.h"
#include "lpi2c_hw_access.h"
#include "clock_manager.h"

Go to the source code of this file.

Functions

static bool LPI2C_DRV_MasterCmdQueueEmpty (const lpi2c_master_state_t *master)
 
static void LPI2C_DRV_MasterResetQueue (lpi2c_master_state_t *master)
 
static void LPI2C_DRV_MasterQueueCmd (LPI2C_Type *baseAddr, lpi2c_master_state_t *master, lpi2c_master_command_t cmd, uint8_t data)
 
static void LPI2C_DRV_MasterSendQueuedCmd (LPI2C_Type *baseAddr, lpi2c_master_state_t *master)
 
static void LPI2C_DRV_MasterSendAddress (LPI2C_Type *baseAddr, lpi2c_master_state_t *master, bool receive)
 
static void LPI2C_DRV_MasterQueueData (LPI2C_Type *baseAddr, lpi2c_master_state_t *master)
 
static void LPI2C_DRV_MasterEndTransfer (LPI2C_Type *baseAddr, lpi2c_master_state_t *master, bool sendStop, bool resetFIFO)
 
static void LPI2C_DRV_SlaveEndTransfer (LPI2C_Type *baseAddr, lpi2c_slave_state_t *slave)
 
static void LPI2C_DRV_MasterSetOperatingMode (uint32_t instance, lpi2c_mode_t operatingMode)
 
static void LPI2C_DRV_SlaveSetOperatingMode (uint32_t instance, lpi2c_mode_t operatingMode)
 
static void LPI2C_DRV_ConfigureDmaTransfer (uint32_t instance, const lpi2c_dma_transfer_params_t *dmaTransParams)
 
static void LPI2C_DRV_MasterStartDmaTransfer (uint32_t instance)
 
static void LPI2C_DRV_SlaveStartDmaTransfer (uint32_t instance)
 
static void LPI2C_DRV_MasterCompleteDMATransfer (void *parameter, edma_chn_status_t status)
 
static status_t LPI2C_DRV_MasterWaitTransferEnd (uint32_t instance, uint32_t timeout)
 
static status_t LPI2C_DRV_SlaveWaitTransferEnd (uint32_t instance, uint32_t timeout)
 
static void LPI2C_DRV_MasterHandleTransmitDataRequest (LPI2C_Type *baseAddr, lpi2c_master_state_t *master)
 
static void LPI2C_DRV_MasterHandleReceiveDataReadyEvent (LPI2C_Type *baseAddr, lpi2c_master_state_t *master)
 
static void LPI2C_DRV_SlaveHandleAddressValidEvent (uint32_t instance, const LPI2C_Type *baseAddr, lpi2c_slave_state_t *slave)
 
static void LPI2C_DRV_SlaveHandleTransmitDataEvent (LPI2C_Type *baseAddr, lpi2c_slave_state_t *slave)
 
static void LPI2C_DRV_SlaveHandleReceiveDataEvent (const LPI2C_Type *baseAddr, lpi2c_slave_state_t *slave)
 
status_t LPI2C_DRV_MasterInit (uint32_t instance, const lpi2c_master_user_config_t *userConfigPtr, lpi2c_master_state_t *master)
 Initialize the LPI2C master mode driver. More...
 
status_t LPI2C_DRV_MasterDeinit (uint32_t instance)
 De-initialize the LPI2C master mode driver. More...
 
void LPI2C_DRV_MasterGetBaudRate (uint32_t instance, lpi2c_baud_rate_params_t *baudRate)
 Get the currently configured baud rate. More...
 
void LPI2C_DRV_MasterSetBaudRate (uint32_t instance, const lpi2c_mode_t operatingMode, const lpi2c_baud_rate_params_t baudRate)
 Set the baud rate for any subsequent I2C communication. More...
 
void LPI2C_DRV_MasterSetSlaveAddr (uint32_t instance, const uint16_t address, const bool is10bitAddr)
 Set the slave address for any subsequent I2C communication. More...
 
status_t LPI2C_DRV_MasterSendData (uint32_t instance, const uint8_t *txBuff, uint32_t txSize, bool sendStop)
 Perform a non-blocking send transaction on the I2C bus. More...
 
status_t LPI2C_DRV_MasterSendDataBlocking (uint32_t instance, const uint8_t *txBuff, uint32_t txSize, bool sendStop, uint32_t timeout)
 Perform a blocking send transaction on the I2C bus. More...
 
status_t LPI2C_DRV_MasterAbortTransferData (uint32_t instance)
 Abort a non-blocking I2C Master transmission or reception. More...
 
status_t LPI2C_DRV_MasterReceiveData (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize, bool sendStop)
 Perform a non-blocking receive transaction on the I2C bus. More...
 
status_t LPI2C_DRV_MasterReceiveDataBlocking (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize, bool sendStop, uint32_t timeout)
 Perform a blocking receive transaction on the I2C bus. More...
 
status_t LPI2C_DRV_MasterGetTransferStatus (uint32_t instance, uint32_t *bytesRemaining)
 Return the current status of the I2C master transfer. More...
 
void LPI2C_DRV_MasterIRQHandler (uint32_t instance)
 Handle master operation when I2C interrupt occurs. More...
 
status_t LPI2C_DRV_SlaveInit (uint32_t instance, const lpi2c_slave_user_config_t *userConfigPtr, lpi2c_slave_state_t *slave)
 Initialize the I2C slave mode driver. More...
 
status_t LPI2C_DRV_SlaveDeinit (uint32_t instance)
 De-initialize the I2C slave mode driver. More...
 
status_t LPI2C_DRV_SlaveSetTxBuffer (uint32_t instance, const uint8_t *txBuff, uint32_t txSize)
 Provide a buffer for transmitting data. More...
 
status_t LPI2C_DRV_SlaveSetRxBuffer (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize)
 Provide a buffer for receiving data. More...
 
status_t LPI2C_DRV_SlaveSendData (uint32_t instance, const uint8_t *txBuff, uint32_t txSize)
 Perform a non-blocking send transaction on the I2C bus. More...
 
status_t LPI2C_DRV_SlaveSendDataBlocking (uint32_t instance, const uint8_t *txBuff, uint32_t txSize, uint32_t timeout)
 Perform a blocking send transaction on the I2C bus. More...
 
status_t LPI2C_DRV_SlaveReceiveData (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize)
 Perform a non-blocking receive transaction on the I2C bus. More...
 
status_t LPI2C_DRV_SlaveReceiveDataBlocking (uint32_t instance, uint8_t *rxBuff, uint32_t rxSize, uint32_t timeout)
 Perform a blocking receive transaction on the I2C bus. More...
 
status_t LPI2C_DRV_SlaveGetTransferStatus (uint32_t instance, uint32_t *bytesRemaining)
 Return the current status of the I2C slave transfer. More...
 
status_t LPI2C_DRV_SlaveAbortTransferData (uint32_t instance)
 Abort a non-blocking I2C Master transmission or reception. More...
 
void LPI2C_DRV_SlaveIRQHandler (uint32_t instance)
 Handle slave operation when I2C interrupt occurs. More...
 

Variables

 lpi2c_dma_transfer_params_t
 

Function Documentation

static void LPI2C_DRV_ConfigureDmaTransfer ( uint32_t  instance,
const lpi2c_dma_transfer_params_t dmaTransParams 
)
static

Definition at line 548 of file lpi2c_driver.c.

static bool LPI2C_DRV_MasterCmdQueueEmpty ( const lpi2c_master_state_t master)
inlinestatic

Definition at line 165 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterCompleteDMATransfer ( void *  parameter,
edma_chn_status_t  status 
)
static

Definition at line 697 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterEndTransfer ( LPI2C_Type baseAddr,
lpi2c_master_state_t master,
bool  sendStop,
bool  resetFIFO 
)
static

Definition at line 354 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterHandleReceiveDataReadyEvent ( LPI2C_Type baseAddr,
lpi2c_master_state_t master 
)
static

Definition at line 851 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterHandleTransmitDataRequest ( LPI2C_Type baseAddr,
lpi2c_master_state_t master 
)
static

Definition at line 802 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterQueueCmd ( LPI2C_Type baseAddr,
lpi2c_master_state_t master,
lpi2c_master_command_t  cmd,
uint8_t  data 
)
inlinestatic

Definition at line 194 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterQueueData ( LPI2C_Type baseAddr,
lpi2c_master_state_t master 
)
static

Definition at line 324 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterResetQueue ( lpi2c_master_state_t master)
inlinestatic

Definition at line 179 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterSendAddress ( LPI2C_Type baseAddr,
lpi2c_master_state_t master,
bool  receive 
)
static

Definition at line 261 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterSendQueuedCmd ( LPI2C_Type baseAddr,
lpi2c_master_state_t master 
)
inlinestatic

Definition at line 228 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterSetOperatingMode ( uint32_t  instance,
lpi2c_mode_t  operatingMode 
)
static

Definition at line 461 of file lpi2c_driver.c.

static void LPI2C_DRV_MasterStartDmaTransfer ( uint32_t  instance)
static

Definition at line 574 of file lpi2c_driver.c.

static status_t LPI2C_DRV_MasterWaitTransferEnd ( uint32_t  instance,
uint32_t  timeout 
)
static

Definition at line 742 of file lpi2c_driver.c.

static void LPI2C_DRV_SlaveEndTransfer ( LPI2C_Type baseAddr,
lpi2c_slave_state_t slave 
)
static

Definition at line 413 of file lpi2c_driver.c.

static void LPI2C_DRV_SlaveHandleAddressValidEvent ( uint32_t  instance,
const LPI2C_Type baseAddr,
lpi2c_slave_state_t slave 
)
static

Definition at line 899 of file lpi2c_driver.c.

static void LPI2C_DRV_SlaveHandleReceiveDataEvent ( const LPI2C_Type baseAddr,
lpi2c_slave_state_t slave 
)
static

Definition at line 994 of file lpi2c_driver.c.

static void LPI2C_DRV_SlaveHandleTransmitDataEvent ( LPI2C_Type baseAddr,
lpi2c_slave_state_t slave 
)
static

Definition at line 951 of file lpi2c_driver.c.

static void LPI2C_DRV_SlaveSetOperatingMode ( uint32_t  instance,
lpi2c_mode_t  operatingMode 
)
static

Definition at line 493 of file lpi2c_driver.c.

static void LPI2C_DRV_SlaveStartDmaTransfer ( uint32_t  instance)
static

Definition at line 645 of file lpi2c_driver.c.

static status_t LPI2C_DRV_SlaveWaitTransferEnd ( uint32_t  instance,
uint32_t  timeout 
)
static

Definition at line 772 of file lpi2c_driver.c.

Variable Documentation

lpi2c_dma_transfer_params_t

Definition at line 151 of file lpi2c_driver.c.