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 glxpcib? # 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
iic* at tsciic? # alpha
iic* at dwiic? # amd64

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 controller attaches an iic framework; several slave devices can then be attached 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 attempts to identify commonly available devices. On other machines (such as sparc64 and macppc) where the machine ROM supplies a list of I2C devices, 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
dwiic(4)
    Synopsys DesignWare I2C controller
glxpcib(4)
    AMD CS5536 PCI-ISA bridge with timecounter, watchdog timer, and GPIO
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
tsciic(4)
    DECchip 21272 and 21274 Core Logic chipset I2C controller
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 sensor
adtfsm(4)
    Analog Devices ADT7462 temperature, voltage, and fan sensor
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
ihidev(4)
    HID over I2C support
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
nvt(4)
    Nuvoton W83795G/ADG temperature, voltage, and fan sensor
pcagpio(4)
    Philips PCA955[4567] GPIO controller
pcaled(4)
    Philips PCA9532/9552 GPIO LED dimmer
pcfadc(4)
    Philips PCF8591 temperature sensor
pcfrtc(4)
    NXP PCF8523 Real Time Clock
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, voltage, 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>.