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