IIC(4)                    OpenBSD Programmer's Manual                   IIC(4)

NAME
     iic - Inter IC (I2C) bus

SYNOPSIS
     iic* at kiic?                  # macppc
     iic* at piic?                  # macppc
     iic* at smu?                   # macppc
     iic* at alipm?                 # alpha i386 sparc64
     iic* at amdiic?                # amd64 i386
     iic* at amdpm?                 # i386
     iic* at gscsio?                # i386
     iic* at ichiic?                # amd64 i386
     iic* at iopiic?                # armish
     iic* at nviic?                 # amd64 i386
     iic* at pcfiic?                # sparc64
     iic* at piixpm?                # amd64 i386
     iic* at viapm?                 # amd64 i386
     iic* at gpioiic?               # i386
     iic* at gdiumiic?              # loongson

DESCRIPTION
     I2C is a two-wire bus developed by Philips used for connecting integrated
     circuits.  It is commonly used for connecting devices such as EEPROMs,
     temperature sensors, fan controllers, real-time clocks, tuners, and other
     types of integrated circuits.

     The iic driver provides a uniform programming interface layer between I2C
     master controllers and various I2C slave devices.  Each I2C master con-
     troller attaches an iic framework; several slave devices can then be at-
     tached to the iic bus.

     All I2C slave devices are uniquely identified by the address on the bus.
     The master accesses a particular slave device using its address.  Devices
     are found on the bus using a sophisticated scanning routine which at-
     tempts to identify commonly available devices.  On other machines (such
     as sparc64 and macppc) where the machine ROM supplies a list of I2C de-
     vices, that list is used instead.

     System Management Bus (SMBus) protocol is also supported by emulating it
     with the I2C commands.

SUPPORTED MASTERS
     alipm(4)       Acer Labs M7101 SMBus controller
     amdiic(4)      AMD-8111 SMBus controller
     amdpm(4)       AMD-756/766/768/8111 Power Management and SMBus controller
     gpioiic(4)     GPIO I2C controller
     gscsio(4)      National Semiconductor Geode SC1100 I2C controller
     ichiic(4)      Intel ICH SMBus controller
     kiic(4)        Apple Kauai I2C controller
     nviic(4)       NVIDIA nForce2/3/4 SMBus controller
     pcfiic(4)      Phillips PCF8584 I2C controller
     piic(4)        Apple via-pmu I2C controller
     piixpm(4)      Intel PIIX SMBus controller
     smu(4)         Apple System Management Unit
     viapm(4)       VIA SMBus controller

SUPPORTED SLAVES
     adc(4)         Analog Devices AD7416/AD7417/7418 temperature sensor
     adl(4)         Andigilog aSC7621 temperature, voltage, and fan sensor
     admcts(4)      Analog Devices ADM1026 temperature and voltage sensor
     admlc(4)       Analog Devices ADM1024 temperature and voltage sensor
     admtemp(4)     Analog Devices ADM1021 temperature sensor
     admtm(4)       Analog Devices ADM1025 temperature and voltage sensor
     admtmp(4)      Analog Devices ADM1030 temperature sensor
     admtt(4)       Analog Devices ADM1031 temperature sensor
     adt(4)         Analog Devices ADT7460 temperature, voltage, and fan sen-
                    sor
     adtfsm(4)      Analog Devices ADT7462 temperature, voltage, and fan sen-
                    sor
     andl(4)        Andigilog aSC7611 temperature, voltage, and fan sensor
     asbtm(4)       Asus ASB 100 temperature sensor
     asms(4)        Apple sudden motion sensor
     ecadc(4)       environmental monitoring subsystem temperature sensor
     fcu(4)         Apple Fan Control Unit sensor device
     fintek(4)      Fintek F75375 temperature sensor
     glenv(4)       Genesys Logic GL518SM temperature, voltage, and fan sensor
     lisa(4)        STMicroelectronics LIS331DL MEMS motion sensor
     lm(4)          National Semiconductor LM78/79/81 temperature, voltage,
                    and fan sensor
     lmenv(4)       National Semiconductor LM87 temperature, voltage, and fan
                    sensor
     lmn(4)         National Semiconductor LM93 temperature, voltage, and fan
                    sensor
     lmtemp(4)      National Semiconductor LM75/LM76/LM77 temperature sensor
     maxds(4)       Maxim DS1624/DS1631/DS1721 temperature sensor
     maxtmp(4)      Maxim MAX6642/MAX6690 temperature sensor
     mfokclock(4)   M41T8x Real Time Clock
     pcagpio(4)     Philips PCA955[4567] GPIO controller
     pcaled(4)      Philips PCA9532/9552 GPIO LED dimmer
     pcfadc(4)      Philips PCF8591 temperature sensor
     ricohrtc(4)    Ricoh RS5C372 Real Time Clock
     sdtemp(4)      SO-DIMM (JC-42.4) temperature sensor
     spdmem(4)      Serial Presence Detect memory
     stsec(4)       ST7 embedded controller
     tda(4)         Philips TDA8444 fan controller
     thmc(4)        TI THMC50, Analog ADM1022/1028 temperature sensor
     tsl(4)         TAOS TSL2560/61 light sensor
     wbenv(4)       Winbond W83L784R/W83L785R/W83L785TS-L temperature, volt-
                    age, and fan sensor
     wbng(4)        Winbond W83793G temperature, voltage, and fan sensor

SEE ALSO
     intro(4), iic(9)

HISTORY
     The I2C framework first appeared in NetBSD 2.0.  OpenBSD support was
     added in OpenBSD 3.6.  I2C bus scanning was added in OpenBSD 3.9.

AUTHORS
     The I2C framework was written by Steve C. Woodford and Jason R. Thorpe
     for NetBSD and then ported to OpenBSD by Alexander Yurchenko
     <grange@openbsd.org>.

OpenBSD 4.7                    February 26, 2010                             2
