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:
Start the mst driver (mst start or mst restart). Note: This step in not required in Windows.
Run i2c with the following command line syntax:
# 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. |
All parameters are interpreted as hexadecimal values.
Examples:
Read two bytes from address 0 of target I2C slave address 0x56:
# i2c -a 2
-d 2
/dev/mst/mtusb-1
r 0x56
0x00
0000
Write two bytes to the address above then read them:
# 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:
# 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