1.\" $OpenBSD: iic.4,v 1.88 2016/09/01 10:04:51 jcs Exp $ 2.\" 3.\" Copyright (c) 2004, 2006 Alexander Yurchenko <grange@openbsd.org> 4.\" 5.\" Permission to use, copy, modify, and distribute this software for any 6.\" purpose with or without fee is hereby granted, provided that the above 7.\" copyright notice and this permission notice appear in all copies. 8.\" 9.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" 17.Dd $Mdocdate: September 1 2016 $ 18.Dt IIC 4 19.Os 20.Sh NAME 21.Nm iic 22.Nd Inter IC (I2C) bus 23.Sh SYNOPSIS 24.Cd "iic* at kiic? # macppc" 25.Cd "iic* at piic? # macppc" 26.Cd "iic* at smu? # macppc" 27.Cd "iic* at alipm? # alpha i386 sparc64 " 28.Cd "iic* at amdiic? # amd64 i386" 29.Cd "iic* at amdpm? # i386" 30.Cd "iic* at glxpcib? # i386" 31.Cd "iic* at gscsio? # i386" 32.Cd "iic* at ichiic? # amd64 i386" 33.Cd "iic* at nviic? # amd64 i386" 34.Cd "iic* at pcfiic? # sparc64" 35.Cd "iic* at piixpm? # amd64 i386" 36.Cd "iic* at viapm? # amd64 i386" 37.Cd "iic* at gpioiic? # i386" 38.Cd "iic* at gdiumiic? # loongson" 39.Cd "iic* at tsciic? # alpha" 40.Cd "iic* at dwiic? # amd64" 41.Sh DESCRIPTION 42.Tn I2C 43is a two-wire bus developed by Philips used for connecting 44integrated circuits. 45It is commonly used for connecting devices such as EEPROMs, 46temperature sensors, fan controllers, real-time clocks, tuners, 47and other types of integrated circuits. 48.Pp 49The 50.Nm 51driver provides a uniform programming interface layer between 52.Tn I2C 53master controllers and various 54.Tn I2C 55slave devices. 56Each 57.Tn I2C 58master controller attaches an 59.Nm 60framework; several slave devices can then be attached to the 61.Nm 62bus. 63.Pp 64All 65.Tn I2C 66slave devices are uniquely identified by the address on the bus. 67The master accesses a particular slave device using its address. 68Devices are found on the bus using a sophisticated scanning routine 69which attempts to identify commonly available devices. 70On other machines (such as sparc64 and macppc) where the machine ROM 71supplies a list of I2C devices, that list is used instead. 72.Pp 73System Management Bus (SMBus) protocol is also supported by emulating 74it with the 75.Tn I2C 76commands. 77.Sh SUPPORTED MASTERS 78.Bl -tag -width 13n -compact 79.It Xr alipm 4 80Acer Labs M7101 SMBus controller 81.It Xr amdiic 4 82AMD-8111 SMBus controller 83.It Xr amdpm 4 84AMD-756/766/768/8111 Power Management and SMBus controller 85.It Xr dwiic 4 86Synopsys DesignWare I2C controller 87.It Xr glxpcib 4 88AMD CS5536 PCI-ISA bridge with timecounter, watchdog timer, and GPIO 89.It Xr gpioiic 4 90GPIO I2C controller 91.It Xr gscsio 4 92National Semiconductor Geode SC1100 I2C controller 93.It Xr ichiic 4 94Intel ICH SMBus controller 95.It Xr kiic 4 96Apple Kauai I2C controller 97.It Xr nviic 4 98NVIDIA nForce2/3/4 SMBus controller 99.It Xr pcfiic 4 100Phillips PCF8584 I2C controller 101.It Xr piic 4 102Apple via-pmu I2C controller 103.It Xr piixpm 4 104Intel PIIX SMBus controller 105.It Xr smu 4 106Apple System Management Unit 107.It Xr tsciic 4 108DECchip 21272 and 21274 Core Logic chipset I2C controller 109.It Xr viapm 4 110VIA SMBus controller 111.El 112.Sh SUPPORTED SLAVES 113.Bl -tag -width 13n -compact 114.It Xr adc 4 115Analog Devices AD7416/AD7417/7418 temperature sensor 116.It Xr adl 4 117Andigilog aSC7621 temperature, voltage, and fan sensor 118.It Xr admcts 4 119Analog Devices ADM1026 temperature and voltage sensor 120.It Xr admlc 4 121Analog Devices ADM1024 temperature and voltage sensor 122.It Xr admtemp 4 123Analog Devices ADM1021 temperature sensor 124.It Xr admtm 4 125Analog Devices ADM1025 temperature and voltage sensor 126.It Xr admtmp 4 127Analog Devices ADM1030 temperature sensor 128.It Xr admtt 4 129Analog Devices ADM1031 temperature sensor 130.It Xr adt 4 131Analog Devices ADT7460 temperature, voltage, and fan sensor 132.It Xr adtfsm 4 133Analog Devices ADT7462 temperature, voltage, and fan sensor 134.It Xr andl 4 135Andigilog aSC7611 temperature, voltage, and fan sensor 136.It Xr asbtm 4 137Asus ASB 100 temperature sensor 138.It Xr asms 4 139Apple sudden motion sensor 140.It Xr ecadc 4 141environmental monitoring subsystem temperature sensor 142.It Xr fcu 4 143Apple Fan Control Unit sensor device 144.It Xr fintek 4 145Fintek F75375 temperature sensor 146.It Xr glenv 4 147Genesys Logic GL518SM temperature, voltage, and fan sensor 148.It Xr iatp 4 149Atmel maXTouch touchpad and touchscreen 150.It Xr ihidev 4 151HID over I2C support 152.It Xr lisa 4 153STMicroelectronics LIS331DL MEMS motion sensor 154.It Xr lm 4 155National Semiconductor LM78/79/81 temperature, voltage, and fan sensor 156.It Xr lmenv 4 157National Semiconductor LM87 temperature, voltage, and fan sensor 158.It Xr lmn 4 159National Semiconductor LM93 temperature, voltage, and fan sensor 160.It Xr lmtemp 4 161National Semiconductor LM75/LM76/LM77 temperature sensor 162.It Xr maxds 4 163Maxim DS1624/DS1631/DS1721 temperature sensor 164.It Xr maxtmp 4 165Maxim MAX6642/MAX6690 temperature sensor 166.It Xr mfokclock 4 167M41T8x Real Time Clock 168.It Xr nvt 4 169Nuvoton W83795G/ADG temperature, voltage, and fan sensor 170.It Xr pcagpio 4 171Philips PCA955[4567] GPIO controller 172.It Xr pcaled 4 173Philips PCA9532/9552 GPIO LED dimmer 174.It Xr pcfadc 4 175Philips PCF8591 temperature sensor 176.It Xr pcfrtc 4 177NXP PCF8523 Real Time Clock 178.It Xr ricohrtc 4 179Ricoh RS5C372 Real Time Clock 180.It Xr sdtemp 4 181SO-DIMM (JC-42.4) temperature sensor 182.It Xr spdmem 4 183Serial Presence Detect memory 184.It Xr stsec 4 185ST7 embedded controller 186.It Xr tda 4 187Philips TDA8444 fan controller 188.It Xr thmc 4 189TI THMC50, Analog ADM1022/1028 temperature sensor 190.It Xr tsl 4 191TAOS TSL2560/61 light sensor 192.It Xr wbenv 4 193Winbond W83L784R/W83L785R/W83L785TS-L temperature, voltage, and fan sensor 194.It Xr wbng 4 195Winbond W83793G temperature, voltage, and fan sensor 196.El 197.Sh SEE ALSO 198.Xr intro 4 , 199.Xr iic 9 200.Sh HISTORY 201The 202.Tn I2C 203framework first appeared in 204.Nx 2.0 . 205.Ox 206support was added in 207.Ox 3.6 . 208I2C bus scanning was added in 209.Ox 3.9 . 210.Sh AUTHORS 211The 212.Tn I2C 213framework was written by 214Steve C. Woodford and Jason R. Thorpe for 215.Nx 216and then ported to 217.Ox 218by 219.An Alexander Yurchenko Aq Mt grange@openbsd.org . 220