1.\" $NetBSD: iic.4,v 1.12 2014/03/18 18:20:39 riastradh Exp $ 2.\" $OpenBSD: iic.4,v 1.74 2008/09/10 16:13:43 reyk Exp $ 3.\" 4.\" Copyright (c) 2004, 2006 Alexander Yurchenko <grange@openbsd.org> 5.\" Copyright (c) 2009 Hubert Feyrer <hubertf@NetBSD.org> 6.\" 7.\" Permission to use, copy, modify, and distribute this software for any 8.\" purpose with or without fee is hereby granted, provided that the above 9.\" copyright notice and this permission notice appear in all copies. 10.\" 11.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 17.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18.\" 19.Dd October 15, 2011 20.Dt IIC 4 21.Os 22.Sh NAME 23.Nm iic 24.Nd Inter IC (I2C) bus 25.Sh SYNOPSIS 26.\" 27.\" Use the following commands in (t)csh to output the list below: 28.\" cd .../src/sys/arch 29.\" grep -h '^iic.*at' */conf/* | sort -u -k +3 | sed -e 's,[ ][ ]*, ,g' -e 's, *#.*,,' | sh -c 'while read iic at ic ; do printf ".Cd \"$iic $at %-20s # %s\"\n" "$ic" "`grep \"iic.*at.*$ic\" */conf/* | sed \"s,/.*,,\" | sort -u | tr \"\012\" \ `" ; done' | uniq | tee /tmp/x 30.\" cat /tmp/x 31.\" 32.Cd "iic* at alipm? # sparc64 " 33.Cd "iic* at acpismbus? # amd64 i386" 34.Cd "iic* at amdpm? # amd64 i386 " 35.Cd "iic* at armadillo9iic? # evbarm " 36.Cd "iic0 at at91twi? # evbarm " 37.Cd "iic0 at ausmbus0 # evbmips " 38.Cd "iic0 at cuda0 # macppc " 39.Cd "iic0 at gpiic? # evbppc " 40.Cd "iic* at gpioiic? # amd64 i386 " 41.Cd "iic* at gtiic? # evbppc " 42.Cd "iic* at gxiic? # evbarm " 43.Cd "iic* at ichsmb? # amd64 i386 " 44.Cd "iic0 at iociic0 # acorn26 " 45.Cd "iic0 at iomdiic? # acorn32 " 46.Cd "iic0 at iopiic? # evbarm iyonix " 47.Cd "iic* at ki2c? # macppc " 48.Cd "iic* at nfsmb? # amd64 i386 " 49.Cd "iic* at ociic? # sandpoint " 50.Cd "iic* at piixpm? # amd64 i386 " 51.Cd "iic0 at slugiic0 # evbarm " 52.Cd "iic* at viapcib? # i386 " 53.Sh DESCRIPTION 54.Tn I2C 55is a two-wire bus developed by Philips used for connecting 56integrated circuits. 57It is commonly used for connecting devices such as EEPROMs, 58temperature sensors, fan controllers, real-time clocks, tuners, 59and other types of integrated circuits. 60.Pp 61The 62.Nm 63driver provides a uniform programming interface layer between 64.Tn I2C 65master controllers and various 66.Tn I2C 67slave devices. 68Each 69.Tn I2C 70master controller attaches an 71.Nm 72framework; several slave devices can then be attached to the 73.Nm 74bus. 75.Pp 76All 77.Tn I2C 78slave devices are uniquely identified by the address on the bus. 79The master accesses a particular slave device using its address. 80.\" Devices are found on the bus using a sophisticated scanning routine 81.\" which attempts to identify commonly available devices. 82.\" On other machines (such as sparc64 and macppc) where the machine ROM 83.\" supplies a list of I2C devices, that list is used instead. 84.Pp 85System Management Bus (SMBus) protocol is also supported by emulating 86it with the 87.Tn I2C 88commands. 89.Sh SUPPORTED MASTERS 90A wide list of I2C masters are supported, among them are: 91.Pp 92.\" 93.\" Generate the following list with these (t)csh commands: 94.\" cd .../src/sys/arch 95.\" grep -h '^iic.*at' */conf/* | awk '{print $3}' | sed 's,.$,,' | sort -u | sh -c 'while read i ; do echo .It Xr $i 4; n=`grep -h ^.Nd ../../share/man/man4/$i* | sed "s,^.Nd ,,"`; if [ -n "$n" ]; then echo $n ; else echo "" ; fi ; done' | tee /tmp/x 96.\" cat /tmp/x 97.\" 98.Bl -tag -width 18n -compact -offset indent 99.It Xr alipm 4 100Acer Labs M7101 SMBus controller 101.It Xr acpismbus 4 102ACPI SMBus Control Method Interface 103.It Xr amdpm 4 104AMD768 Power Management Controller and AMD8111 System Management Controller 105.It Xr armadillo9iic 4 106.It Xr at91twi 4 107.It Xr ausmbus 4 108.It Xr cuda 4 109support for CUDA microcontrollers found in many Power Macintosh and 110and compatible computers 111.It Xr gpiic 4 112.It Xr gtiic 4 113.It Xr gxiic 4 114.It Xr ichsmb 4 115Intel ICH SMBus controller 116.It Xr iociic 4 117.It Xr iomdiic 4 118.It Xr iopiic 4 119.It Xr ki2c 4 120.It Xr gpioiic 4 121GPIO bit-banging 122.It Xr nfsmb 4 123NVIDIA nForce 2/3/4 SMBus controller and SMBus driver 124.It Xr ociic 4 125.It Xr piixpm 4 126Intel PIIX and compatible Power Management controller 127.It Xr slugiic 4 128.It Xr viapcib 4 129.El 130.Sh SUPPORTED SLAVES 131A wide list of slaves are supported, among them: 132.Pp 133.\" 134.\" Create the following list with these commands: 135.\" cd .../src/sys/arch 136.\" grep -h '.* at iic.*' */conf/* | sed -e 's,^#,,' -e 's, .*,,' -e 's,.$,,' | sort -u | sh -c 'while read i ; do echo .It Xr $i 4 ; n=`grep ^.Nd ../../share/man/man4/$i* | sed "s,^.Nd ,,"` ; if [ -n "$n" ]; then echo $n ; else echo "" ; fi ; done' | tee /tmp/x 137.\" cat /tmp/x 138.\" 139.Bl -tag -width 13n -compact -offset indent 140.It Xr dbcool 4 141dbCool(tm) family of environmental monitors and fan controllers 142.It Xr rs5c372rtc 4 143RICOH RS5C372A and RS5C372B real-time clock 144.It Xr sgsmix 4 145driver for SGS 7433 Basic Audio Processor found in some Apple machines 146.It Xr spdmem 4 147Generic Memory Module Serial Presence Detect 148.El 149.Sh SEE ALSO 150.Xr dtviic 4 , 151.Xr intro 4 , 152.Xr i2cscan 8 , 153.Xr iic 9 154.Sh HISTORY 155The 156.Tn I2C 157framework first appeared in 158.Nx 2.0 . 159.Ox 160support was added in 161.Ox 3.6 . 162This manpage first appeared in 163.Nx 6.0 , 164it was ported from 165.Ox . 166.Sh AUTHORS 167.An -nosplit 168The 169.Tn I2C 170framework was written by 171.An Steve C. Woodford 172and 173.An Jason R. Thorpe 174for 175.Nx 176and then ported to 177.Ox 178by 179.An Alexander Yurchenko Aq Mt grange@openbsd.org . 180