|
@@ -23,6 +23,12 @@ don't match these function names. For some of the operations which pass a
|
|
|
single data byte, the functions using SMBus protocol operation names execute
|
|
|
a different protocol operation entirely.
|
|
|
|
|
|
+Each transaction type corresponds to a functionality flag. Before calling a
|
|
|
+transaction function, a device driver should always check (just once) for
|
|
|
+the corresponding functionality flag to ensure that the underlying I2C
|
|
|
+adapter supports the transaction in question. See
|
|
|
+<file:Documentation/i2c/functionality> for the details.
|
|
|
+
|
|
|
|
|
|
Key to symbols
|
|
|
==============
|
|
@@ -49,6 +55,8 @@ This sends a single bit to the device, at the place of the Rd/Wr bit.
|
|
|
|
|
|
A Addr Rd/Wr [A] P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_QUICK
|
|
|
+
|
|
|
|
|
|
SMBus Receive Byte: i2c_smbus_read_byte()
|
|
|
==========================================
|
|
@@ -60,6 +68,8 @@ the previous SMBus command.
|
|
|
|
|
|
S Addr Rd [A] [Data] NA P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_READ_BYTE
|
|
|
+
|
|
|
|
|
|
SMBus Send Byte: i2c_smbus_write_byte()
|
|
|
========================================
|
|
@@ -69,6 +79,8 @@ to a device. See Receive Byte for more information.
|
|
|
|
|
|
S Addr Wr [A] Data [A] P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_WRITE_BYTE
|
|
|
+
|
|
|
|
|
|
SMBus Read Byte: i2c_smbus_read_byte_data()
|
|
|
============================================
|
|
@@ -78,6 +90,8 @@ The register is specified through the Comm byte.
|
|
|
|
|
|
S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] NA P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_READ_BYTE_DATA
|
|
|
+
|
|
|
|
|
|
SMBus Read Word: i2c_smbus_read_word_data()
|
|
|
============================================
|
|
@@ -88,6 +102,8 @@ byte. But this time, the data is a complete word (16 bits).
|
|
|
|
|
|
S Addr Wr [A] Comm [A] S Addr Rd [A] [DataLow] A [DataHigh] NA P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_READ_WORD_DATA
|
|
|
+
|
|
|
Note the convenience function i2c_smbus_read_word_swapped is
|
|
|
available for reads where the two data bytes are the other way
|
|
|
around (not SMBus compliant, but very popular.)
|
|
@@ -102,6 +118,8 @@ the Read Byte operation.
|
|
|
|
|
|
S Addr Wr [A] Comm [A] Data [A] P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_WRITE_BYTE_DATA
|
|
|
+
|
|
|
|
|
|
SMBus Write Word: i2c_smbus_write_word_data()
|
|
|
==============================================
|
|
@@ -112,6 +130,8 @@ specified through the Comm byte.
|
|
|
|
|
|
S Addr Wr [A] Comm [A] DataLow [A] DataHigh [A] P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_WRITE_WORD_DATA
|
|
|
+
|
|
|
Note the convenience function i2c_smbus_write_word_swapped is
|
|
|
available for writes where the two data bytes are the other way
|
|
|
around (not SMBus compliant, but very popular.)
|
|
@@ -126,6 +146,8 @@ This command selects a device register (through the Comm byte), sends
|
|
|
S Addr Wr [A] Comm [A] DataLow [A] DataHigh [A]
|
|
|
S Addr Rd [A] [DataLow] A [DataHigh] NA P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_PROC_CALL
|
|
|
+
|
|
|
|
|
|
SMBus Block Read: i2c_smbus_read_block_data()
|
|
|
==============================================
|
|
@@ -137,6 +159,8 @@ of data is specified by the device in the Count byte.
|
|
|
S Addr Wr [A] Comm [A]
|
|
|
S Addr Rd [A] [Count] A [Data] A [Data] A ... A [Data] NA P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_READ_BLOCK_DATA
|
|
|
+
|
|
|
|
|
|
SMBus Block Write: i2c_smbus_write_block_data()
|
|
|
================================================
|
|
@@ -147,6 +171,8 @@ Comm byte. The amount of data is specified in the Count byte.
|
|
|
|
|
|
S Addr Wr [A] Comm [A] Count [A] Data [A] Data [A] ... [A] Data [A] P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_WRITE_BLOCK_DATA
|
|
|
+
|
|
|
|
|
|
SMBus Block Write - Block Read Process Call
|
|
|
===========================================
|
|
@@ -160,6 +186,8 @@ This command selects a device register (through the Comm byte), sends
|
|
|
S Addr Wr [A] Comm [A] Count [A] Data [A] ...
|
|
|
S Addr Rd [A] [Count] A [Data] ... A P
|
|
|
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_BLOCK_PROC_CALL
|
|
|
+
|
|
|
|
|
|
SMBus Host Notify
|
|
|
=================
|
|
@@ -229,15 +257,7 @@ designated register that is specified through the Comm byte.
|
|
|
S Addr Wr [A] Comm [A]
|
|
|
S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P
|
|
|
|
|
|
-
|
|
|
-I2C Block Read (2 Comm bytes)
|
|
|
-=============================
|
|
|
-
|
|
|
-This command reads a block of bytes from a device, from a
|
|
|
-designated register that is specified through the two Comm bytes.
|
|
|
-
|
|
|
-S Addr Wr [A] Comm1 [A] Comm2 [A]
|
|
|
- S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_READ_I2C_BLOCK
|
|
|
|
|
|
|
|
|
I2C Block Write: i2c_smbus_write_i2c_block_data()
|
|
@@ -249,3 +269,5 @@ Comm byte. Note that command lengths of 0, 2, or more bytes are
|
|
|
supported as they are indistinguishable from data.
|
|
|
|
|
|
S Addr Wr [A] Comm [A] Data [A] Data [A] ... [A] Data [A] P
|
|
|
+
|
|
|
+Functionality flag: I2C_FUNC_SMBUS_WRITE_I2C_BLOCK
|