1.\" $OpenBSD: iic.4,v 1.79 2011/07/04 05:38:04 jmc 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: July 4 2011 $ 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 gscsio? # i386" 31.Cd "iic* at ichiic? # amd64 i386" 32.Cd "iic* at iopiic? # armish" 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.Sh DESCRIPTION 40.Tn I2C 41is a two-wire bus developed by Philips used for connecting 42integrated circuits. 43It is commonly used for connecting devices such as EEPROMs, 44temperature sensors, fan controllers, real-time clocks, tuners, 45and other types of integrated circuits. 46.Pp 47The 48.Nm 49driver provides a uniform programming interface layer between 50.Tn I2C 51master controllers and various 52.Tn I2C 53slave devices. 54Each 55.Tn I2C 56master controller attaches an 57.Nm 58framework; several slave devices can then be attached to the 59.Nm 60bus. 61.Pp 62All 63.Tn I2C 64slave devices are uniquely identified by the address on the bus. 65The master accesses a particular slave device using its address. 66Devices are found on the bus using a sophisticated scanning routine 67which attempts to identify commonly available devices. 68On other machines (such as sparc64 and macppc) where the machine ROM 69supplies a list of I2C devices, that list is used instead. 70.Pp 71System Management Bus (SMBus) protocol is also supported by emulating 72it with the 73.Tn I2C 74commands. 75.Sh SUPPORTED MASTERS 76.Bl -tag -width 13n -compact 77.It Xr alipm 4 78Acer Labs M7101 SMBus controller 79.It Xr amdiic 4 80AMD-8111 SMBus controller 81.It Xr amdpm 4 82AMD-756/766/768/8111 Power Management and SMBus controller 83.It Xr gpioiic 4 84GPIO I2C controller 85.It Xr gscsio 4 86National Semiconductor Geode SC1100 I2C controller 87.It Xr ichiic 4 88Intel ICH SMBus controller 89.It Xr kiic 4 90Apple Kauai I2C controller 91.It Xr nviic 4 92NVIDIA nForce2/3/4 SMBus controller 93.It Xr pcfiic 4 94Phillips PCF8584 I2C controller 95.It Xr piic 4 96Apple via-pmu I2C controller 97.It Xr piixpm 4 98Intel PIIX SMBus controller 99.It Xr smu 4 100Apple System Management Unit 101.It Xr viapm 4 102VIA SMBus controller 103.El 104.Sh SUPPORTED SLAVES 105.Bl -tag -width 13n -compact 106.It Xr adc 4 107Analog Devices AD7416/AD7417/7418 temperature sensor 108.It Xr adl 4 109Andigilog aSC7621 temperature, voltage, and fan sensor 110.It Xr admcts 4 111Analog Devices ADM1026 temperature and voltage sensor 112.It Xr admlc 4 113Analog Devices ADM1024 temperature and voltage sensor 114.It Xr admtemp 4 115Analog Devices ADM1021 temperature sensor 116.It Xr admtm 4 117Analog Devices ADM1025 temperature and voltage sensor 118.It Xr admtmp 4 119Analog Devices ADM1030 temperature sensor 120.It Xr admtt 4 121Analog Devices ADM1031 temperature sensor 122.It Xr adt 4 123Analog Devices ADT7460 temperature, voltage, and fan sensor 124.It Xr adtfsm 4 125Analog Devices ADT7462 temperature, voltage, and fan sensor 126.It Xr andl 4 127Andigilog aSC7611 temperature, voltage, and fan sensor 128.It Xr asbtm 4 129Asus ASB 100 temperature sensor 130.It Xr asms 4 131Apple sudden motion sensor 132.It Xr ecadc 4 133environmental monitoring subsystem temperature sensor 134.It Xr fcu 4 135Apple Fan Control Unit sensor device 136.It Xr fintek 4 137Fintek F75375 temperature sensor 138.It Xr glenv 4 139Genesys Logic GL518SM temperature, voltage, and fan sensor 140.It Xr lisa 4 141STMicroelectronics LIS331DL MEMS motion sensor 142.It Xr lm 4 143National Semiconductor LM78/79/81 temperature, voltage, and fan sensor 144.It Xr lmenv 4 145National Semiconductor LM87 temperature, voltage, and fan sensor 146.It Xr lmn 4 147National Semiconductor LM93 temperature, voltage, and fan sensor 148.It Xr lmtemp 4 149National Semiconductor LM75/LM76/LM77 temperature sensor 150.It Xr maxds 4 151Maxim DS1624/DS1631/DS1721 temperature sensor 152.It Xr maxtmp 4 153Maxim MAX6642/MAX6690 temperature sensor 154.It Xr mfokclock 4 155M41T8x Real Time Clock 156.It Xr nvt 4 157Nuvoton W83795G/ADG temperature, voltage, and fan sensor 158.It Xr pcagpio 4 159Philips PCA955[4567] GPIO controller 160.It Xr pcaled 4 161Philips PCA9532/9552 GPIO LED dimmer 162.It Xr pcfadc 4 163Philips PCF8591 temperature sensor 164.It Xr ricohrtc 4 165Ricoh RS5C372 Real Time Clock 166.It Xr sdtemp 4 167SO-DIMM (JC-42.4) temperature sensor 168.It Xr spdmem 4 169Serial Presence Detect memory 170.It Xr stsec 4 171ST7 embedded controller 172.It Xr tda 4 173Philips TDA8444 fan controller 174.It Xr thmc 4 175TI THMC50, Analog ADM1022/1028 temperature sensor 176.It Xr tsl 4 177TAOS TSL2560/61 light sensor 178.It Xr wbenv 4 179Winbond W83L784R/W83L785R/W83L785TS-L temperature, voltage, and fan sensor 180.It Xr wbng 4 181Winbond W83793G temperature, voltage, and fan sensor 182.El 183.Sh SEE ALSO 184.Xr intro 4 , 185.Xr iic 9 186.Sh HISTORY 187The 188.Tn I2C 189framework first appeared in 190.Nx 2.0 . 191.Ox 192support was added in 193.Ox 3.6 . 194I2C bus scanning was added in 195.Ox 3.9 . 196.Sh AUTHORS 197The 198.Tn I2C 199framework was written by 200Steve C. Woodford and Jason R. Thorpe for 201.Nx 202and then ported to 203.Ox 204by 205.An Alexander Yurchenko Aq grange@openbsd.org . 206