Intel® IXP400 Software
I2C Driver (IxI2cDrv)
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 335
Slave-Interrupt Mode
When the processor is acting in I2C slave mode or responding to general calls in interrupt mode,
the client callbacks for transmit and receive are responsible for providing a buffer used to interface
with the I2C Data Buffer Register (IDBR), using the ixI2cDrvSlaveOrGenCallBufReplenish()
function.
Examples of Slave Interrupt mode operations is provided in “Example Sequence Flows for Slave
Mode” on page 336.
Slave-Polling Mode
In polling mode, the client polling task can check for pending requests to respond to slave request
or general calls using the ixI2cDrvSlaveAddrAndGenCallDetectedCheck() function. The client
can then use the ixI2cDrvSlaveOrGenDataReceive() or ixI2cDrvSlaveOrGenDataTransmit()
functions to transfer data.
Support Functions
After the I2C unit has been initialized as described above, there are several supporting functions
available in the API. These include functions that set the 7-bit Slave address to which the I2C Unit
responds, scan the I2C bus for slave units, check or reset port statistics, and show the current status
of the I2C unit and driver. The API can also uninitialize the I2C unit and remove the driver from
memory.