xref: /netbsd-src/share/man/man4/iic.4 (revision d909946ca08dceb44d7d0f22ec9488679695d976)
1.\"	$NetBSD: iic.4,v 1.13 2016/07/26 11:08:59 msaitoh 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 July 26, 2016
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 acpismbus?           # amd64 i386"
33.Cd "iic* at alipm?               # alpha amd64 i386 sparc64 "
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 "iic* at awiniic?             # evbarm "
39.Cd "iic4 at awinp2wi0            # evbarm "
40.Cd "iic* at bcmi2c?              # evbarm "
41.Cd "iic* at coram?               # amd64 i386 "
42.Cd "iic0 at cuda0                # macppc "
43.Cd "iic* at cxdtv?               # amd64 i386 "
44.Cd "iic* at diic?                # acorn32 evbppc "
45.Cd "iic* at exyoiic?             # evbarm "
46.Cd "iic* at g2i2c?               # evbarm "
47.Cd "iic0 at gpiic?               # evbppc "
48.Cd "iic* at gpioiic?             # amd64 i386 "
49.Cd "iic* at gttwsi?              # evbarm evbppc "
50.Cd "iic* at gxiic?               # evbarm "
51.Cd "iic* at i2cbus?              # evbarm "
52.Cd "iic* at ichsmb?              # amd64 i386 "
53.Cd "iic* at imxi2c?              # evbarm "
54.Cd "iic0 at iociic0              # acorn26 "
55.Cd "iic0 at iomdiic?             # acorn32 "
56.Cd "iic0 at iopiic?              # evbarm iyonix "
57.Cd "iic* at ismt?                # amd64 i386 "
58.Cd "iic* at jziic?               # evbmips "
59.Cd "iic* at ki2c?                # macppc "
60.Cd "iic* at nbpiic?              # hpcarm "
61.Cd "iic* at nfsmb?               # amd64 i386 "
62.Cd "iic* at ociic?               # sandpoint "
63.Cd "iic* at omapiic?             # evbarm "
64.Cd "iic* at pcfiic?              # sparc64 "
65.Cd "iic* at piixpm?              # amd64 i386 "
66.Cd "iic* at ri2c?                # evbmips "
67.Cd "iic0 at rkiic0               # evbarm "
68.Cd "iic1 at rkiic1               # evbarm "
69.Cd "iic2 at rkiic2               # evbarm "
70.Cd "iic3 at rkiic3               # evbarm "
71.Cd "iic4 at rkiic4               # evbarm "
72.Cd "iic* at rtciic?              # mmeye "
73.Cd "iic0 at slugiic0             # evbarm "
74.Cd "iic* at tegrai2c?            # evbarm "
75.Cd "iic* at tiiic?               # evbarm "
76.Cd "iic* at tsciic?              # alpha "
77.Cd "iic* at viapcib?             # i386 "
78.Cd "iic* at voyager0             # evbmips "
79.Cd "iic0 at ziic?                # evbmips zaurus "
80.Sh DESCRIPTION
81.Tn I2C
82is a two-wire bus developed by Philips used for connecting
83integrated circuits.
84It is commonly used for connecting devices such as EEPROMs,
85temperature sensors, fan controllers, real-time clocks, tuners,
86and other types of integrated circuits.
87.Pp
88The
89.Nm
90driver provides a uniform programming interface layer between
91.Tn I2C
92master controllers and various
93.Tn I2C
94slave devices.
95Each
96.Tn I2C
97master controller attaches an
98.Nm
99framework; several slave devices can then be attached to the
100.Nm
101bus.
102.Pp
103All
104.Tn I2C
105slave devices are uniquely identified by the address on the bus.
106The master accesses a particular slave device using its address.
107.\" Devices are found on the bus using a sophisticated scanning routine
108.\" which attempts to identify commonly available devices.
109.\" On other machines (such as sparc64 and macppc) where the machine ROM
110.\" supplies a list of I2C devices, that list is used instead.
111.Pp
112System Management Bus (SMBus) protocol is also supported by emulating
113it with the
114.Tn I2C
115commands.
116.Sh SUPPORTED MASTERS
117A wide list of I2C masters are supported, among them are:
118.Pp
119.\"
120.\" Generate the following list with these (t)csh commands:
121.\" cd .../src/sys/arch
122.\" 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
123.\" cat /tmp/x
124.\"
125.Bl -tag -width 18n -compact -offset indent
126.It Xr acpismbus 4
127ACPI SMBus Control Method Interface
128.It Xr alipm 4
129Acer Labs M7101 SMBus controller
130.It Xr amdpm 4
131AMD768 Power Management Controller and AMD8111 System Management Controller
132.It Xr armadillo9iic 4
133.It Xr at91twi 4
134.It Xr ausmbus 4
135.It Xr awiniic 4
136.It Xr awinp2wi 4
137.It Xr bcmi2c 4
138.It Xr coram 4
139digital video driver for Conexant CX23885 based cards
140.It Xr cuda 4
141support for CUDA microcontrollers found in many Power Macintosh and
142compatible computers
143.It Xr cxdtv 4
144digital video driver for Conexant CX2388x based cards
145.It Xr diic 4
146.It Xr exyoiic 4
147.It Xr g2i2c 4
148.It Xr gpiic 4
149.It Xr gpioiic 4
150GPIO I2C controller
151.It Xr gttwsi 4
152.It Xr i2cbus 4
153.It Xr gxiic 4
154.It Xr ichsmb 4
155Intel Chipset internal SMBus controller
156.It Xr imxi2c 4
157.It Xr iociic 4
158.It Xr iomdiic 4
159.It Xr iopiic 4
160.It Xr ismt 4
161Intel Chipset internal SMBus 2.0 controller with DMA
162.It Xr jziic 4
163.It Xr ki2c 4
164.It Xr nbpiic 4
165.It Xr nfsmb 4
166NVIDIA nForce 2/3/4 SMBus controller and SMBus driver
167.It Xr ociic 4
168.It Xr omapiic 4
169.It Xr pcfiic 4
170.It Xr piixpm 4
171Intel PIIX and compatible Power Management controller
172.It Xr ri2c 4
173.It Xr rkiic 4
174.It Xr rtciic 4
175.It Xr slugiic 4
176.It Xr tegrai2c 4
177.It Xr tiiic 4
178.It Xr tsciic 4
179.It Xr viapcib 4
180.El
181.Sh SUPPORTED SLAVES
182A wide list of slaves are supported, among them:
183.Pp
184.\"
185.\" Create the following list with these commands:
186.\" cd .../src/sys/arch
187.\" 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
188.\" cat /tmp/x
189.\"
190.Bl -tag -width 13n -compact -offset indent
191.It Xr dbcool 4
192dbCool(tm) family of environmental monitors and fan controllers
193.It Xr dsrtc 4
194.It Xr ioexp 4
195.It Xr m41trtc 4
196.It Xr nbppcon 4
197.It Xr pcf8563rtc 4
198NXP PCF8563 real-time clock
199.It Xr r2025rtc 4
200.It Xr rs5c372rtc 4
201RICOH RS5C372A and RS5C372B real-time clock
202.It Xr s390rtc 4
203Seiko Instruments S-35390 real-time clock
204.It Xr sdtemp 4
205JEDEC JC-42.4 compatible memory module temperature sensors
206.It Xr seeprom 4
20724-series I2C EEPROM driver
208.It Xr sgsmix 4
209driver for SGS 7433 Basic Audio Processor found in some Apple machines
210.It Xr spdmem 4
211Generic Memory Module Serial Presence Detect
212.El
213.Sh SEE ALSO
214.Xr dtviic 4 ,
215.Xr intro 4 ,
216.Xr i2cscan 8 ,
217.Xr iic 9
218.Sh HISTORY
219The
220.Tn I2C
221framework first appeared in
222.Nx 2.0 .
223.Ox
224support was added in
225.Ox 3.6 .
226This manpage first appeared in
227.Nx 6.0 ,
228it was ported from
229.Ox .
230.Sh AUTHORS
231.An -nosplit
232The
233.Tn I2C
234framework was written by
235.An Steve C. Woodford
236and
237.An Jason R. Thorpe
238for
239.Nx
240and then ported to
241.Ox
242by
243.An Alexander Yurchenko Aq Mt grange@openbsd.org .
244