iic(4) - NetBSD Manual Pages

Command: Section: Arch: Collection:  
IIC(4)                  NetBSD Kernel Interfaces Manual                 IIC(4)

iic -- Inter IC (I2C) bus
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
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.
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;
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
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 am2315temp(4) Aosong AM2315 humidity/temperature 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
/dev/iicu I2C device unit u file.
dtviic(4), intro(4), i2cscan(8), iic(9)
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.
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 9.99 November 6, 2021 NetBSD 9.99
Powered by man-cgi (2021-06-01). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.