Man Linux: Main Page and Category List


       i2cset - set I2C registers


       i2cset [-f] [-y] [-m mask] [-r] i2cbus chip-address data-address [value
       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.

       -m mask
              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. Please note
              that this parameter assumes that the read and  write  operations
              for  the  specified  mode are symmetrical for the device you are
              accessing. This may or may not be the case, as neither  I2C  nor
              SMBus guarantees this.

       -r     Read  back  the  value  right  after writing it, and compare the
              result with the value written.  This  used  to  be  the  default
              behavior. The same limitations apply as those of option -m.

       There are three required options to i2cset. 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. chip-address specifies the
       address of the chip on that bus, and is an  integer  between  0x03  and
       0x77.  data-address specifies the address on that chip to write to, and
       is an integer between 0x00 and 0xFF.

       The value parameter, if specified,  is  the  value  to  write  to  that
       location  on  the chip. If this parameter is omited, then a short write
       is issued. For most chips, it simply sets an internal  pointer  to  the
       target location, but doesn’t actually write to that location. For a few
       chips though, in particular simple ones with a  single  register,  this
       short write is an actual write.

       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).


       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 Jean Delvare

       This  manual  page   was   originally   written   by   David   Z   Maze
       <> for the Debian GNU/Linux system.

                                 November 2008