xref: /netbsd-src/share/man/man4/iic.4 (revision 946379e7b37692fc43f68eb0d1c10daa0a7f3b6c)
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