Intel® IXP400 Software

 

 

I2C Driver (IxI2cDrv)

Figure 109. I2C Driver Dependencies

 

 

Client Application

 

 

VxWorks*

I2C Adapter

Linux*

Module

 

Access-Layer Interface

 

 

I2C Driver

 

IxOSAL

(Algorithm Module )

 

 

 

Hardware Interface

 

 

I2C Interface

 

 

 

 

B4374-01

26.3.3Error Handling

The I2C driver is capable of detecting all errors that the I2C hardware is able to provide as listed below:

Arbitration loss error

Bus error

Any errors that occur during data transfer which do not fall into the arbitration loss or bus error categories will be classified as a master transfer error (IX_I2C_MASTER_XFER_ERROR).

26.3.3.1Arbitration Loss Error

This error occurs when the I2C hardware of the IXP46X network processors loses master control while it is acting as master. Arbitration loss happens when the unit as master sends a high signal but another master sends a low. The occurrence of two masters on the bus can happen when one I2C unit does not see another I2C unit’s START signal to take master of the bus and then sends it own START signal to take master of the bus. Such an occurrence can happen when an I2C unit just exited reset and has no history of previous signals. When this occurs, the I2C status register will be updated with the arbitration loss by the hardware, and if the interrupt for arbitration loss is enabled, then it will call the interrupt service routine.

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

333

Page 333
Image 333
Intel IXP400 manual Arbitration Loss Error, 2C Driver IxI2cDrv