logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

i2cdetect - detect I2C chips

Author

       Frodo Looijaard, Mark D. Studebaker and Jean Delvare

       This  manual page was originally written by Aurelien Jarno <aurel32@debian.org>, for the Debian GNU/Linux
       system.

                                                    May 2022                                        I2CDETECT(8)

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

Description

       i2cdetect  is  a  userspace  program  to scan an I2C bus for devices. It outputs a table with the list of
       detected devices on the specified bus.  i2cbus indicates the number or name of the I2C bus to be scanned,
       and should correspond to one of the busses listed by i2cdetect-l.  The  optional  parameters  first  and
       last restrict the scanning range (default: from 0x08 to 0x77).

       As  there  is  no  standard  I2C detection command, i2cdetect uses arbitrary SMBus commands (namely SMBus
       quick write and SMBus receive byte) to probe for devices.  By  default,  the  command  used  is  the  one
       believed to be the safest for each address. See options -q and -r to change this behavior.

       i2cdetect can also be used to query the functionalities of an I2C bus (see option -F.)

Examples

       List all available I2C busses:
              # i2cdetect -l

       Immediately  scan  the standard addresses on I2C bus 9 (i2c-9), using the default method for each address
       (no user confirmation):
              # i2cdetect -y 9

       Query the functionalities of I2C bus 1 (i2c-1):
              # i2cdetect -F 1

       Scan addresses 0x10 to 0x17 on the I2C bus named "SMBus I801 adapter at efa0", using the  "receive  byte"
       method, after user confirmation:
              # i2cdetect -r "SMBus I801 adapter at efa0" 0x10 0x17

Interpreting The Output

       Each cell in the output table will contain one of the following symbols:

       • "--". The address was probed but no chip answered.

       • "UU". Probing was skipped, because this address is currently in use by a driver. This strongly suggests
         that there is a chip at this address.

       • An address number in hexadecimal, e.g. "2d" or "4e". A chip was found at this address.

Name

       i2cdetect - detect I2C chips

Options

-y     Disable  interactive mode. By default, i2cdetect 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.

       -a     Force scanning of non-regular addresses. Not recommended.

       -q     Use  SMBus "quick write" command for probing.  Not recommended. This is known to corrupt the Atmel
              AT24RF08 EEPROM found on many IBM Thinkpad laptops.

       -r     Use SMBus "receive byte" command for probing.  Not recommended. This is known  to  lock  SMBus  on
              various write-only chips (most notably clock chips at address 0x69).

       -F     Display the list of functionalities implemented by the adapter and exit.

       -V     Display the version and exit.

       -h     Display the help and exit.

       -l     Output a list of installed busses.

See Also

i2cdump(8), i2cget(8), i2cset(8), i2ctransfer(8), sensors-detect(8)

Synopsis

i2cdetect [-y] [-a] [-q|-r] i2cbus [firstlast]
       i2cdetect-Fi2cbusi2cdetect-Vi2cdetect-hi2cdetect-l

Warning

       This program can confuse your I2C bus, cause data loss and worse!

See Also