blob: 81d0f97da63aaa20297f9b41c2707c407de66ac5 [file] [log] [blame]
.TH I2CDETECT 8 "October 2017"
.SH NAME
i2cdetect \- detect I2C chips
.SH SYNOPSIS
.B i2cdetect
.RI [ -y ]
.RI [ -a ]
.RI [ -q | -r ]
.I i2cbus
.RI [ "first last" ]
.br
.B i2cdetect
.I -F
.I i2cbus
.br
.B i2cdetect
.I -V
.br
.B i2cdetect
.I -l
.SH DESCRIPTION
i2cdetect is a userspace program to scan an I2C bus for devices. It
outputs a table with the list of detected devices on the specified bus.
\fIi2cbus\fR indicates the number or name of the I2C bus to be scanned, and
should correspond to one of the busses listed by \fIi2cdetect -l\fR.
The optional parameters \fIfirst\fR and \fIlast\fR restrict the scanning
range (default: from 0x03 to 0x77).
.PP
As there is no standard I2C detection command, i2cdetect uses arbitrary
SMBus commands (namely SMBus quick write and SMBus receive byte) to probe
for devices. By default, the command used is the one believed to be the
safest for each address. See options \fI-q\fR and \fI-r\fR to change this
behavior.
.PP
i2cdetect can also be used to query the functionalities of an I2C bus
(see option \fB-F\fP.)
.SH WARNING
This program can confuse your I2C bus, cause data loss and worse!
.SH INTERPRETING THE OUTPUT
Each cell in the output table will contain one of the following symbols:
.IP \(bu "\w'\(bu'u+1n"
"--". The address was probed but no chip answered.
.IP \(bu
"UU". Probing was skipped, because this address is currently in use by
a driver. This strongly suggests that there is a chip at this address.
.IP \(bu
An address number in hexadecimal, e.g. "2d" or "4e". A chip
was found at this address.
.SH OPTIONS
.TP
.B "\-y"
Disable interactive mode. By default, i2cdetect will wait for a confirmation
from the user before messing with the I2C bus. When this flag is used, it
will perform the operation directly. This is mainly meant to be used in
scripts.
.TP
.B "\-a"
Force scanning of non-regular addresses. Not recommended.
.TP
.B "\-q"
Use SMBus "quick write" command for probing.
Not recommended. This is known to corrupt the Atmel AT24RF08 EEPROM
found on many IBM Thinkpad laptops.
.TP
.B "\-r"
Use SMBus "receive byte" command for probing.
Not recommended. This is known to lock SMBus on various write-only
chips (most notably clock chips at address 0x69).
.TP
.B "\-F"
Display the list of functionalities implemented by the adapter and exit.
.TP
.B "\-V"
Display the version and exit.
.TP
.B "\-l"
Output a list of installed busses.
.SH EXAMPLES
.PP
List all available I2C busses:
.nf
.RS
# i2cdetect -l
.RE
.fi
.PP
Immediately scan the standard addresses on I2C bus 9 (i2c-9), using the
default method for each address (no user confirmation):
.nf
.RS
# i2cdetect -y 9
.RE
.fi
.PP
Query the functionalities of I2C bus 1 (i2c-1):
.nf
.RS
# i2cdetect -F 1
.RE
.fi
.PP
Scan addresses 0x10 to 0x17 on the I2C bus named "SMBus I801 adapter at efa0",
using the "receive byte" method, after user confirmation:
.nf
.RS
# i2cdetect -r "SMBus I801 adapter at efa0" 0x10 0x17
.RE
.fi
.SH SEE ALSO
i2cdump(8), i2cget(8), i2cset(8), i2ctransfer(8), sensors-detect(8)
.SH AUTHOR
Frodo Looijaard, Mark D. Studebaker and Jean Delvare
This manual page was originally written by Aurelien Jarno
<aurel32@debian.org>, for the Debian GNU/Linux system.