IIC(4) - Device Drivers Manual

IIC(4) - Device Drivers Manual #

IIC(4) - Device Drivers Manual

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

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

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>.

OpenBSD 7.5 - March 2, 2024