Sapphire SoC DS Sapphire SoC UG Sapphire HP SoC DS Sapphire HP SoC UG RISC-V Embedded IDE UG Board Support Package
Loading...
Searching...
No Matches
i2c.c File Reference
#include "i2c/i2c.h"

Go to the source code of this file.

Overview

I2C driver implementation.

Implements the functions defined in i2c.h for controlling I2C input/output and interrupts on the EfxSapphireSoC platform.

Definition in file i2c.c.

Functions

u32 i2c_getInterruptFlag (i2c_instance_t *inst)
 Get Interrupt Flag.
u32 i2c_getFilteringHit (i2c_instance_t *inst)
 Get Filtering Hit.
u32 i2c_getFilteringStatus (i2c_instance_t *inst)
 Get Filtering Status.
u32 i2c_getSlaveStatus (i2c_instance_t *inst)
 Get Slave Status.
u32 i2c_getSlaveOverride (i2c_instance_t *inst)
 Get Slave Override.
void i2c_setSlaveOverride (i2c_instance_t *inst, u32 value)
 Write values to I2C hardware registers.
void i2c_applyConfig (i2c_instance_t *inst)
 Apply the software configuration to the hardware.
void i2c_startMaster (i2c_instance_t *inst)
 Initiate start condition for I2C master mode and sets the dropped status if necessary.
void i2c_restartMaster (i2c_instance_t *inst)
 Initiate restart condition for I2C master mode and sets the dropped status if necessary.
void i2c_recoverMaster (i2c_instance_t *inst)
 Initiate recover condition for I2C master mode and sets the dropped status if necessary.
u32 i2c_checkMasterBusy (i2c_instance_t *inst)
 Checks if the I2C master is busy.
void i2c_startMasterBlocking (i2c_instance_t *inst)
 Initiate start condition for I2C master mode and waits until the operation is complete.
void i2c_restartMasterBlocking (i2c_instance_t *inst)
 Initiate restart condition for I2C master mode and waits until the operation is complete.
void i2c_stopMaster (i2c_instance_t *inst)
 Initiate stop condition for I2C master mode and sets the dropped status if necessary.
void i2c_stopMasterBlocking (i2c_instance_t *inst)
 Initiate stop condition for I2C master mode and waits until the operation is complete.
void i2c_dropMaster (i2c_instance_t *inst)
 Drops the current I2C master operation.
void i2c_recoverMasterBlocking (i2c_instance_t *inst)
 Initiate recover condition for I2C master mode and waits until the operation is complete.
void i2c_listenAck (i2c_instance_t *inst)
 configures the I2C controller to listen for ACK signals on the receiver (RX) line.
void i2c_txByte (i2c_instance_t *inst, u8 byte)
 Transmits a byte of data over I2C.
void i2c_txAck (i2c_instance_t *inst)
 Transmits an ACK signal over I2C.
void i2c_txNack (i2c_instance_t *inst)
 Transmits an NACK signal over I2C.
void i2c_txAckWait (i2c_instance_t *inst)
 Waits until the transmission of an ACK signal is complete over the I2C bus.
void i2c_rxAckWait (i2c_instance_t *inst)
 Waits until the reception of an ACK signal is complete over the I2C bus.
void i2c_txAckBlocking (i2c_instance_t *inst)
 Sends an ACK signal over the I2C bus and waits until the transmission is complete.
void i2c_txNackBlocking (i2c_instance_t *inst)
 Sends an NACK signal over the I2C bus and waits until the transmission is complete.
u32 i2c_rxData (i2c_instance_t *inst)
 Reads data from I2C receive data register.
u32 i2c_rxNack (i2c_instance_t *inst)
 Checks if the received ACK signal is detected.
u32 i2c_rxAck (i2c_instance_t *inst)
 Reads data from I2C receive data register.
void i2c_txByteRepeat (i2c_instance_t *inst, u8 byte)
 Sends a byte over I2C bus with repeat mode enabled.
void i2c_txNackRepeat (i2c_instance_t *inst)
 Sends a NACK signal over I2C bus with repeat mode enabled.
void i2c_setFilterConfig (i2c_instance_t *inst, u32 filterId, u32 value)
 Sets the configuration for an I2C hardware filter.
void i2c_enableFilter (i2c_instance_t *inst, u32 filterId, u32 config)
 Enables and configures an I2C hardware filter.
void i2c_disableInterrupt (i2c_instance_t *inst, i2c_interrupt_t value)
 Disables specific I2C interrupts.
void i2c_enableInterrupt (i2c_instance_t *inst, i2c_interrupt_t value)
 Enables specific I2C interrupts.
void i2c_clearInterruptFlag (i2c_instance_t *inst, i2c_interrupt_t value)
 Clears specific I2C interrupt flags.
void i2c_writeData_b (i2c_instance_t *inst, u8 regAddr, u8 *data, u32 length)
 Write data with an 8-bit register address over I2C and check rx ack for each transaction.
void i2c_writeData_w (i2c_instance_t *inst, u16 regAddr, u8 *data, u32 length)
 Write data with a 16-bit register address over I2C and check rx ack for each transaction.
void i2c_readData_b (i2c_instance_t *inst, u8 regAddr, u8 *data, u32 length)
 Read data with an 8-bit register address over I2C.
void i2c_readData_w (i2c_instance_t *inst, u16 regAddr, u8 *data, u32 length)
 Read data with a 16-bit register address over I2C.
void i2c_setMux (i2c_instance_t *inst, const uint8_t cr)
 Set I2C MUX control register.
I2C (Get Functions)

Read value from I2C hardware registers.

u32 i2c_getMasterStatus (i2c_instance_t *inst)
 Get Master Status.