iic(4)
- NetBSD Manual Pages
IIC(4) NetBSD Kernel Interfaces Manual IIC(4)
NAME
iic -- Inter IC (I2C) bus
SYNOPSIS
iic* at alipm? # alpha amd64 i386 sparc64
iic* at amdpm? # amd64 i386
iic* at armadillo9iic? # evbarm
iic0 at at91twi? # evbarm
iic0 at ausmbus0 # evbmips
iic* at awiniic? # evbarm
iic* at bcmi2c? # evbarm
iic* at coram? # amd64 i386
iic* at cuda? # macppc
iic* at cxdtv? # amd64 i386
iic* at diic? # acorn32 evbppc
iic* at dwiic? # amd64 i386
iic* at exyoi2c? # evbarm
iic* at g2i2c? # evbarm
iic0 at gpiic? # evbppc
iic* at gpioiic? # amd64 i386
iic* at gttwsi? # evbarm evbppc
iic* at gxiic? # evbarm
iic* at i2cbus? # evbarm
iic* at ichsmb? # amd64 i386
iic* at imcsmb? # amd64 i386
iic* at imxi2c? # evbarm
iic0 at iomdiic? # acorn32
iic0 at iopiic? # evbarm iyonix
iic* at ismt? # amd64 i386
iic* at jziic? # evbmips
iic* at ki2c? # macppc
iic* at nbpiic? # hpcarm
iic* at nfsmb? # amd64 i386
iic* at ociic? # sandpoint
iic* at omapiic? # evbarm
iic* at pcfiic? # sparc64
iic* at piixpm? # amd64 i386
iic* at pmu? # macppc
iic* at ri2c? # evbmips
iic* at rtciic? # mmeye
iic0 at slugiic0 # evbarm
iic* at tegrai2c? # evbarm
iic* at tiiic? # evbarm
iic* at tsciic? # alpha
iic* at viapcib? # i386
iic* at voyager0 # evbmips
iic0 at ziic? # evbmips zaurus
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
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.
System Management Bus (SMBus) protocol is also supported by emulating it
with the I2C commands.
IOCTLS
The following ioctl(2) calls apply to IIC devices. They are defined in
the header file <dev/i2c/i2c_io.h>:
I2C_IOCTL_EXEC (i2c_ioctl_exec_t)
User ioctl to execute an i2c operation.
typedef enum {
I2C_OP_READ,
I2C_OP_READ_WITH_STOP,
I2C_OP_WRITE,
I2C_OP_WRITE_WITH_STOP,
I2C_OP_READ_BLOCK,
I2C_OP_WRITE_BLOCK
} i2c_op_t;
typedef struct i2c_ioctl_exec {
i2c_op_t iie_op; /* operation to perform */
i2c_addr_t iie_addr; /* address of device */
const void *iie_cmd; /* pointer to command */
size_t iie_cmdlen; /* length of command */
void *iie_buf; /* pointer to data buffer */
size_t iie_buflen; /* length of data buffer */
} i2c_ioctl_exec_t;
SUPPORTED MASTERS
A wide list of I2C masters are supported, among them are:
acpismbus(4) ACPI SMBus Control Method Interface
alipm(4) Acer Labs M7101 SMBus controller
amdpm(4) AMD768 Power Management Controller and AMD8111
System Management Controller
coram(4) Digital video driver for Conexant CX23885 based
cards
cuda(4) Support for CUDA microcontrollers found in many
Power Macintosh and compatible computers
cxdtv(4) Digital video driver for Conexant CX2388x based
cards
gpioiic(4) GPIO I2C controller
ichsmb(4) Intel Chipset internal SMBus controller
ismt(4) Intel Chipset internal SMBus 2.0 controller
with DMA
nfsmb(4) NVIDIA nForce 2/3/4 SMBus controller and SMBus
driver
piixpm(4) Intel PIIX and compatible Power Management con-
troller
SUPPORTED SLAVES
A wide list of slaves are supported, among them:
adm1026hm(4) Analog Devices ADM1026 complete thermal system man-
agement controller
admtemp(4) Analog Devices ADM1021 temperature sensor
aht20temp(4) Aosong AHT20 humidity/temperature sensors
am2315temp(4) Aosong AM2315 humidity/temperature sensors
bmx280thp(4) Bosch BMP280/BME280 humidity/temperature/pressure
sensors
ddc(4) VESA Display Data Channel V2 devices
dbcool(4) dbCool(tm) family of environmental monitors and fan
controllers
g760a(4) Global Mixed-mode Technology Inc. G760a fan speed
controller
hythygtemp(4) IST-AG HYT-221/271/939 humidity/temperature sensors
ibmhawk(4) Temperature, voltage, and fan sensors present on IBM
eServers
ims(4) I2C mice and touch panels
lm(4) National Semiconductor LM78, LM79, and compatible
hardware monitors
lmenv(4) National Semiconductor LM81, LM87, and compatible
hardware monitors
lmtemp(4) National Semiconductor LM75, LM77, and compatible
hardware monitors
mcp980x(4) Microchip 9800/1/2/3 I2C temperature sensor
mpl115a(4) Freescale MPL115A2 absolute pressure sensor
pcf8563rtc(4) NXP PCF8563 real-time clock
rs5c372rtc(4) RICOH RS5C372A and RS5C372B real-time clock
s390rtc(4) Seiko Instruments S-35390 real-time clock
scmdi2c(4) I2C frontend for the Sparkfun Serial Controlled
Motor Driver.
sdtemp(4) JEDEC JC-42.4 compatible memory module temperature
sensors
seeprom(4) 24-series I2C EEPROM driver
sgp40mox(4) Sensirion SGP40 MOx gas sensors
sgsmix(4) SGS 7433 Basic Audio Processor found in some Apple
machines
sht3xtemp(4) Sensirion SHT30/SHT31/SHT35 temperature/humidity
sensors
sht4xtemp(4) Sensirion SHT40/SHT41/SHT45 temperature/humidity
sensors
si70xxtemp(4) Silicon Labs SI7013/SI7020/SI7021 humidity/tempera-
ture sensors
smscmon(4) Standard Microsystems Corporation LPC47M192 and
LPC47M997 sensors
spdmem(4) Generic Memory Module Serial Presence Detect
ssdfb(4) OLED/PLED framebuffer modules
tea5767radio(4)
Philips/NXP TEA5767 FM stereo radio
tps65217pmic(4)
Texas Instruments TPS65217 Power Management IC
tsllux(4) Taos TSL256x Light-to-Digital Converter
FILES
/dev/iicu I2C device unit u file.
SEE ALSO
dtviic(4), intro(4), i2cscan(8), iic(9)
HISTORY
The I2C framework first appeared in NetBSD 2.0. OpenBSD support was
added in OpenBSD 3.6. This manpage first appeared in NetBSD 6.0, it was
ported from OpenBSD.
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>.
NetBSD 10.99 November 6, 2021 NetBSD 10.99
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.