Provided by: i2c-tools_4.3-4build2_amd64 bug

NAME

       i2cset - set I2C registers

SYNOPSIS

       i2cset [-f] [-y] [-m mask] [-r] [-a] i2cbus chip-address data-address [value] ...  [mode]
       i2cset -V

DESCRIPTION

       i2cset is a small helper program to set registers visible through the I2C bus.

OPTIONS

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

       -a     Allow using addresses between 0x00 - 0x07 and 0x78 - 0x7f. Not recommended.

       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 0x08 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  omitted,  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. If the mode parameter is s or i,
       multiple values can be specified.

       The mode parameter, if specified, is one of the letters b, w, s, or i, corresponding to a write size of a
       single  byte, a 16-bit word, a SMBus block write, or an I2C block write, respectively.  For SMBus and I2C
       block writes, the write size is determined by the number of  value  parameters.   Except  for  I2C  block
       writes,  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 byte and block writes, 0x0000-0xFFFF for words).  Another possible mode is c, which
       doesn't write any value (so-called short write). You usually don't have to specify this mode,  as  it  is
       the default when no value is provided, unless you also want to enable PEC.

WARNING

       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.

EXAMPLES

       Write value 0x42 to 8-bit register 0x11 of the I2C device at 7-bit address 0x2d on bus 1  (i2c-1),  after
       user confirmation:
              # i2cset 1 0x2d 0x11 0x42

       Immediately  clear the 3 least significant bits of 8-bit register 0x11 of the I2C device at 7-bit address
       0x2d on bus 1 (i2c-1) (no user confirmation):
              # i2cset -y -m 0x07 1 0x2d 0x11 0x00

       Write value 0x5000 to 16-bit register 0x02 of the I2C device at 7-bit address  0x48  on  bus  1  (i2c-1),
       after user confirmation:
              # i2cset 1 0x48 0x02 0x5000 w

       Also see i2cget(8) for examples of combined usage of i2cset and i2cget.

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

SEE ALSO

       i2cdetect(8), i2cdump(8), i2cget(8), i2ctransfer(8), isaset(8)

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.

                                                  October 2017                                         I2CSET(8)