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