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