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