You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
4.3 KiB
131 lines
4.3 KiB
.TH I2CDUMP 8 "May 2022"
|
|
.SH NAME
|
|
i2cdump \- examine I2C registers
|
|
|
|
.SH SYNOPSIS
|
|
.B i2cdump
|
|
.RB [ -f ]
|
|
.RB [ "-r first-last" ]
|
|
.RB [ -y ]
|
|
.RB [ -a ]
|
|
.I i2cbus
|
|
.I address
|
|
.RI [ "mode " [ "bank " [ bankreg ]]]
|
|
.br
|
|
.B i2cdump
|
|
.B -V
|
|
.br
|
|
.B i2cdump
|
|
.B -h
|
|
|
|
.SH DESCRIPTION
|
|
i2cdump is a small helper program to examine registers
|
|
visible through the I2C bus.
|
|
|
|
.SH OPTIONS
|
|
.TP
|
|
.B -V
|
|
Display the version and exit.
|
|
.TP
|
|
.B -h
|
|
Display the help and exit.
|
|
.TP
|
|
.B -f
|
|
Force access to the device even if it is already busy. By default, i2cdump
|
|
will refuse to access a device which is already under the control of a
|
|
kernel driver. Using this flag is dangerous, it can seriously confuse the
|
|
kernel driver in question. It can also cause i2cdump to return invalid
|
|
results. So use at your own risk and only if you know what you're doing.
|
|
.TP
|
|
.B -r first-last
|
|
Limit the range of registers being accessed. This option is not available
|
|
with mode \fBs\fP. For mode \fBW\fP,
|
|
\fBfirst\fR must be even and \fBlast\fR must be odd.
|
|
.TP
|
|
.B -y
|
|
Disable interactive mode. By default, i2cdump 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
|
|
Allow using addresses between 0x00 - 0x07 and 0x78 - 0x7f. Not recommended.
|
|
.PP
|
|
At least two options must be provided to i2cdump. \fIi2cbus\fR indicates the
|
|
number or name of the I2C bus to be scanned. This number should correspond to one
|
|
of the busses listed by \fIi2cdetect -l\fR. \fIaddress\fR indicates the
|
|
address to be scanned on that bus, and is an integer between 0x08 and 0x77.
|
|
.PP
|
|
The \fImode\fR parameter, if specified, is one of the letters \fBb\fP, \fBw\fP,
|
|
or \fBi\fP, corresponding to a read size of a single byte, a 16-bit
|
|
word, an I2C block, respectively. The \fBc\fP mode is a
|
|
little different, it reads all bytes consecutively, and is useful for chips that
|
|
have an address auto-increment feature, such as EEPROMs. The \fBW\fP mode is
|
|
also special, it is similar to \fBw\fP except that a read command will only
|
|
be issued on even register addresses; this is again mainly useful for EEPROMs.
|
|
.PP
|
|
A \fBp\fP can also be appended to the \fImode\fR parameter (except for
|
|
\fBi\fP and \fBW\fP) to enable PEC. If the \fImode\fR parameter is omitted,
|
|
i2cdump defaults to byte access without PEC.
|
|
.PP
|
|
The \fIbank\fR and \fIbankreg\fR parameters are useful on the W83781D and
|
|
similar chips (at the time of writing, all Winbond and Asus chips).
|
|
\fIbank\fR is an integer between 0 and 7, and \fIbankreg\fR is an integer
|
|
between 0x00 and 0xFF (default value: 0x4E). The W83781D data sheet has more
|
|
information on bank selection.
|
|
|
|
.SH WARNING
|
|
i2cdump can be dangerous if used improperly. Most notably, the \fBc\fP mode
|
|
starts with WRITING a byte to the chip. On most chips it will be stored in the
|
|
address pointer register, which is OK, but some chips with a single register
|
|
or no (visible) register at all will most likely see this as a real WRITE,
|
|
resulting in possible misbehavior or corruption. Do not use i2cdump
|
|
on random addresses. Anyway, it is of little use unless you have good
|
|
knowledge of the chip you're working with and an idea of what you are looking
|
|
for.
|
|
|
|
.SH EXAMPLES
|
|
.PP
|
|
Dump the whole contents of I2C device at 7-bit address 0x50 on bus 9
|
|
(i2c-9), using the default read method (byte mode), after user confirmation:
|
|
.nf
|
|
.RS
|
|
# i2cdump 9 0x50
|
|
.RE
|
|
.fi
|
|
.PP
|
|
Immediately dump the whole contents of I2C device at 7-bit address 0x50 on
|
|
bus 9 (i2c-9), using I2C block read transactions (no user confirmation):
|
|
.nf
|
|
.RS
|
|
# i2cdump -y 9 0x50 i
|
|
.RE
|
|
.fi
|
|
If the device is an EEPROM, the output would typically be the same as output
|
|
of the previous example.
|
|
.PP
|
|
Dump registers 0x00 to 0x3f of the I2C device at 7-bit address 0x2d on
|
|
bus 1 (i2c-1), using the default read method (byte mode), after user
|
|
confirmation:
|
|
.nf
|
|
.RS
|
|
# i2cdump -r 0x00-0x3f 1 0x2d
|
|
.RE
|
|
.fi
|
|
|
|
.SH BUGS
|
|
To report bugs or send fixes, please write to the Linux I2C mailing list
|
|
<linux-i2c@vger.kernel.org> with Cc to the current maintainer:
|
|
Jean Delvare <jdelvare@suse.de>.
|
|
|
|
SMBus block mode used to be supported by this tool.
|
|
Please use \fIi2cget\fR instead.
|
|
|
|
.SH SEE ALSO
|
|
i2cdetect(8), i2cget(8), i2cset(8), i2ctransfer(8), isadump(8)
|
|
|
|
.SH AUTHOR
|
|
Frodo Looijaard, Mark D. Studebaker and Jean Delvare
|
|
|
|
This manual page was originally written by David Z Maze <dmaze@debian.org> for
|
|
the Debian GNU/Linux system.
|