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 iicmux? # arm64
iic* at nviic? # amd64 i386
iic* at pcamux? # arm64
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 amliic? # arm64
iic* at apliic? # arm64
iic* at bcmbsc? # arm64 armv7
iic* at dwiic? # amd64 arm64
iic* at octiic? # octeon
iic* at imxiic? # arm64 armv7
iic* at mviic? # arm64
iic* at rkiic? # arm64 armv7
iic* at qciic? # arm64
iic* at sxitwi? # arm64 armv7
iic* at mpfiic? # riscv64
iic* at ociic? # riscv64
iic* at smtiic? # riscv64

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
amliic(4)
    Amlogic I2C controller
apliic(4)
    Apple I2C controller
bcmbsc(4)
    Broadcom Serial Control 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
imxiic(4)
    Freescale i.MX I2C controller
kiic(4)
    Apple Kauai I2C controller
mpfiic(4)
    Microchip PolarFire SoC MSS I2C controller
mviic(4)
    Marvell Armada 3700 onboard I2C controller
nviic(4)
    NVIDIA nForce2/3/4 SMBus controller
ociic(4)
    OpenCores I2C controller
octiic(4)
    OCTEON two-wire serial interface
pcfiic(4)
    Philips PCF8584 I2C controller
piic(4)
    Apple via-pmu I2C controller
piixpm(4)
    Intel PIIX SMBus controller
rkiic(4)
    Rockchip I2C controller
qciic(4)
    Qualcomm Snapdragon GENI I2C controller
rkpmic(4)
    Rockchip RK8xx Power Management IC
smtiic(4)
    SpacemiT I2C controller
smu(4)
    Apple System Management Unit
sxitwi(4)
    Allwinner Two Wire Interface controller
tsciic(4)
    DECchip 21272 and 21274 Core Logic chipset I2C controller
viapm(4)
    VIA SMBus controller

SUPPORTED SLAVES
abcrtc(4)
    Abracon AB1805 real-time clock
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
axppmic(4)
    X-Powers AXP Power Management IC
bdpmic(4)
    ROHM BD718x7 Power Management IC
bgw(4)
    Bosch motion sensor
ccpmic(4)
    Intel Crystal Cove Power Management IC
cwfg(4)
    CellWise CW201x fuel gauge
dapmic(4)
    Dialog DA9063 Power Management IC
dsxrtc(4)
    Maxim DS3231/DS3232 real-time clock
ecadc(4)
    environmental monitoring subsystem temperature sensor
escodec(4)
    Everest Semiconductor ES8316 audio codec
fanpwr(4)
    Fairchild FAN53555 voltage regulator
fcu(4)
    Apple Fan Control Unit sensor device
fintek(4)
    Fintek F75375 temperature sensor
fusbtc(4)
    Fairchild FUSB302 USB Type-C Port controller
glenv(4)
    Genesys Logic GL518SM temperature, voltage, and fan sensor
iatp(4)
    Atmel maXTouch touchpad and touchscreen
ietp(4)
    Elantech touchpad
ihidev(4)
    HID over I2C support
ipmi(4)
    Intelligent Platform Management Interface driver
islrtc(4)
    Intersil ISL1208/1218 real-time clock
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
maxrtc(4)
    Maxim DS1307/DS1339 real-time clock
maxtmp(4)
    Maxim MAX6642/MAX6690 temperature sensor
mcprtc(4)
    Microchip MCP79400 real-time clock
mfokrtc(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
pcamux(4)
    Philips PCA954[678] I2C switch/mux
pcfadc(4)
    Philips PCF8591 temperature sensor
pcfrtc(4)
    NXP PCF8523 real-time clock
pcxrtc(4)
    NXP PCF8563 real-time clock
pcyrtc(4)
    NXP PCF85063A/TP real-time clock
pijuice(4)
    PiJuice HAT UPS
ricohrtc(4)
    Ricoh RS5C372 real-time clock
rkpmic(4)
    Rockchip RK8xx Power Management IC
sdtemp(4)
    SO-DIMM (JC-42.4) temperature sensor
sncodec(4)
    Texas Instruments TAS2764 digital amplifier
spdmem(4)
    Serial Presence Detect memory
ssdfb(4)
    Solomon Systech SSD1306/SSD1309 OLED display module
stsec(4)
    ST7 embedded controller
sypwr(4)
    Silergy SY8106A voltage regulator
tascodec(4)
    Texas Instruments TAS2770 digital amplifier
tcpci(4)
    USB Type-C Port Controller Interface
tda(4)
    Philips TDA8444 fan controller
thmc(4)
    TI THMC50, Analog ADM1022/1028 temperature sensor
tipd(4)
    TI USB Type-C power delivery controller
tipmic(4)
    Intel Dollar Cove TI Power Management IC
titmp(4)
    TI TMP451 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
iicmux(4), 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>.