Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 331
I
2
C Driver (IxI2cDrv) 26
This chapter describes the I
2
C Driver provided with Intel
®
IXP400 Software v2.0, which is for use
with the Intel
®
IXP46X Product Line of Network Processors.
26.1 What’s New
This is a new component for software release 2.0.
26.2 Introduction
The IXP46X network processors include an I
2
C hardware interface. This I
2
C driver is provided to
configure and enable I
2
C hardware and provide a mechanism for transferring data serially through
the I
2
C bus in both master and slave mode. Four methods of data transfer are supported by the
driver: single-byte read, multi-byte read, single-byte write, and multi-byte write. The driver allows
the addressing to any I
2
C Slave on the bus.
The capability to enable/disable the response to I
2
C slave address and general address calls is also
provided. Transaction records/counters between the I
2
C hardware and other devices are tracked by
the driver. The driver provides the capability to scan the bus to detect I
2
C slave devices and
supports multiple I
2
C bus masters.
The driver is implemented in what is referred to as the "Algorithm Module". This module performs
the configuration and control of data transfers. This component is supported on both VxWorks and
Linux.
The driver interface is compatible with the standard Linux I
2
C device driver, and is provided
separately from the IXP400 software access-layer. Since Linux does not allow direct user mode
access to kernel driver functions, a separate “Adapter Module” is provided to accommodate direct
access from user mode.
26.3 I
2
C Driver API Details
26.3.1 Features
The I
2
C driver allows the setting of different configurations for the I
2
C hardware, as listed below:
Mode select – fast mode (400 kbps) or normal mode (100 kbps). High Speed (3.4 Mbps) mode
is not supported by hardware.
Flow Selection - Interrupt or Polling modes
Enable/disable I
2
C unit response to general calls
Enable/disable I
2
C unit response to slave address calls