Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


IIC(4)                       Device Drivers 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
     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.

     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
                               controller

SUPPORTED SLAVES
     A wide list of slaves are supported, among them:

           adm1026hm(4)   Analog Devices ADM1026 complete thermal system
                          management 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/temperature 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