i2cdump - examine I2C registers
i2cdump [-f] [-r first-last] [-y] i2cbus address [mode [bank
i2cdump is a small helper program to examine registers visible through
the I2C bus.
-V Display the version and exit.
-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.
Limit the range of registers being accessed. This option is only
available with modes b, w, c and W. For mode W, first must be
even and last must be odd.
-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.
At least two options must be provided to i2cdump. i2cbus indicates the
number or name of the I2C bus to be scanned. This number should
correspond to one of the busses listed by i2cdetect -l. address
indicates the address to be scanned on that bus, and is an integer
between 0x03 and 0x77.
The mode parameter, if specified, is one of the letters b, w, s, or i,
corresponding to a read size of a single byte, a 16-bit word, an SMBus
block, an I2C block, respectively. The c 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 W mode is also
special, it is similar to w except that a read command will only be
issued on even register addresses; this is again mainly useful for
A p can also be appended to the mode parameter (except for i and W) to
enable PEC. If the mode parameter is omitted, i2cdump defaults to byte
access without PEC.
The bank and bankreg parameters are useful on the W83781D and similar
chips (at the time of writing, all Winbond and Asus chips). bank is an
integer between 0 and 7, and bankreg is an integer between 0x00 and
0xFF (default value: 0x4E). The W83781D data sheet has more information
on bank selection.
i2cdump can be dangerous if used improperly. Most notably, the c 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.
i2cset(8), i2cdetect(8), isadump(8)
Frodo Looijaard, Mark D. Studebaker and Jean Delvare
This manual page was originally written by David Z Maze
<firstname.lastname@example.org> for the Debian GNU/Linux system.