i2c Utility

The i2c utility provides low level access to the I2C bus on any NVIDIA® switch platform, enabling the user to read or write data.

The mst driver must be started prior to running i2c tool.

To start i2c:

  1. Start the mst driver (mst start or mst restart). Note: This step in not required in Windows.

  2. Run i2c with the following command line syntax:

    Copy
    Copied!
                

    # i2c [OPTIONS] <device> <cmd> <i2c_addr> <addr> [<data>]

where:

-h

Prints this message.

-a <addr_width>

Sets address width (in bytes) to the specified value. May be 0, 1, 2 or 4. Default: 1.

-d <data_width>

Sets data width (in bytes) to the specified value. May be 1, 2 or 4s. Default is 1.

-x <data_len>

Presents each byte of data as two hexadecimal digits (such as 013C20343B). Note that this option is mutually exclusive with the "-d" option.

The remaining parameters are:

<device>

Valid mst device.

<cmd>

Command. May be "r[ead]" or "w[rite]".

<i2c_addr>

I2C slave address.

<addr>

Address (of length addr_width) inside I2C target device to read/write operation.
Note that the <addr> value is ignored if <addr_witdh> = 0.

<data>

Data (bytes of length data_width) to write to target device.

Warning

All parameters are interpreted as hexadecimal values.

Examples:

Read two bytes from address 0 of target I2C slave address 0x56:

Copy
Copied!
            

# i2c -a 2 -d 2 /dev/mst/mtusb-1 r 0x56 0x00 0000

Write two bytes to the address above then read them:

Copy
Copied!
            

# i2c -a 2 -d 2 /dev/mst/mtusb-1 w 0x56 0x00 0x1234 # i2c -a 2 -d 2 /dev/mst/mtusb-1 r 0x56 0x00 3412

Read (as separate) 16 bytes in hexadecimal format starting from address 0 of the target device above:

Copy
Copied!
            

# i2c -a 2 -x 16 /dev/mst/mtusb-1 r 0x56 0x00 12340000000000000000000000000000

The following exit values are returned:

  • 0 - successful completion

  • >0 - an error occurred

© Copyright 2023, NVIDIA. Last updated on May 23, 2023.