Manual Reference Pages  - I2CSET (8)


i2cset - set I2C registers


See Also


i2cset [-f] [-y] i2cbus chip-address data-address value [mode] [mask]
i2cset -V


i2cset is a small helper program to set 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, i2cset 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 i2cset to silently write to the wrong register. So use at your own risk and only if you know what you’re doing.
-y Disable interactive mode. By default, i2cset 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.
There are four required options to i2cset. i2cbus indicates the number of the I2C bus to be scanned. This number should correspond to one of the busses listed by i2cdetect -l. chip-address specifies the address of the chip on that bus, and is an integer between 0x00 and 0x7F. data-address specifies the address on that chip to write to, and is an integer between 0x00 and 0xFF. value is the value to write to that location on the chip.

The mode parameter, if specified, is one of the letters b or w, corresponding to a write size of a single byte or a 16-bit word, respectively. A p can also be appended to the mode parameter to enable PEC. If the mode parameter is omitted, i2cset defaults to byte mode without PEC. The value provided must be within range for the specified data type (0x00-0xFF for bytes, 0x0000-0xFFFF for words).

The mask parameter, if specified, describes which bits of value will be actually written to data-address. Bits set to 1 in the mask are taken from value, while bits set to 0 will be read from data-address and thus preserved by the operation.


i2cset can be extremely dangerous if used improperly. It can confuse your I2C bus, cause data loss, or have more serious side effects. Writing to a serial EEPROM on a memory DIMM (chip addresses between 0x50 and 0x57) may DESTROY your memory, leaving your system unbootable! Be extremely careful using this program.


i2cdump(8), isaset(8)


Frodo Looijaard, Mark D. Studebaker, and the lm_sensors group This manual page was originally written by David Z Maze <> for the Debian GNU/Linux system. It was then reviewed by the lm_sensors team and is now part of the lm_sensors source distribution.

I2CSET (8) June 2007
blog comments powered by Disqus