Appendix F. i2c Bus Support

The NVIDIA Linux kernel module now includes i2c (also called I-squared-c, Inter-IC Communications, or IIC) functionality that allows the NVIDIA Linux kernel module to export i2c ports found on board NVIDIA cards to the Linux kernel. This allows i2c devices on-board the NVIDIA graphics card, as well as devices connected to the VGA and/or DVI ports, to be accessed from kernel modules or userspace programs in a manner consistent with other i2c ports exported by the Linux kernel through the i2c framework.

You must have i2c support compiled into the kernel, or as a module, and X must be running. The i2c framework is made available by Linux 2.4, Linux 2.6 and newer Linux kernels. Linux kernel documentation covers the kernel and userspace /dev APIs, which you must use to access NVIDIA i2c ports.

NVIDIA has noted that in some distibutions, i2c support is enabled. However, the Linux kernel module i2c-core.o (Linux 2.4) or i2c-core.ko (Linux 2.6 or newer), which provides the export infrastructure, was not shipped. In this case, you will need to build the i2c support module. For directions on how to build and install your kernel's i2c support, please refer to your distribution's documentation for configuring, building, and installing the kernel and associated modules.

For further information regarding the Linux kernel i2c framework, refer to the documentation for your kernel, located at .../Documentation/i2c/ within the kernel source tree.

The following functionality is currently supported:

  I2C_FUNC_I2C
  I2C_FUNC_SMBUS_QUICK
  I2C_FUNC_SMBUS_BYTE
  I2C_FUNC_SMBUS_BYTE_DATA
  I2C_FUNC_SMBUS_WORD_DATA