aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Hansen <hansens@google.com>2018-04-13 13:42:56 -0400
committerWolfram Sang <wsa@the-dreams.de>2018-04-18 04:09:15 -0400
commitb50cb3eaf7c8d13e427f991f7d52b485ca0fc65f (patch)
treed044ed8d69fc2a587acafdc95fb4fe131c66b3fa
parent675edea10badf5b3446275d60e1bd2105905d498 (diff)
Documentation/i2c: sync docs with current state of i2c-tools
Currently, Documentation/i2c/dev-interface describes the use of i2c_smbus_* helper routines as static inlined functions provided by linux/i2c-dev.h. Work has been done to refactor the linux/i2c-dev.h file in the i2c-tools project out into its own library. As a result, these docs have become stale. This patch corrects the discrepancy and directs the reader to the i2c-tools project for more information. Signed-off-by: Sam Hansen <hansens@google.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
-rw-r--r--Documentation/i2c/dev-interface16
1 files changed, 5 insertions, 11 deletions
diff --git a/Documentation/i2c/dev-interface b/Documentation/i2c/dev-interface
index c8737d502791..f92ee1f59914 100644
--- a/Documentation/i2c/dev-interface
+++ b/Documentation/i2c/dev-interface
@@ -23,11 +23,6 @@ First, you need to include these two headers:
23 #include <linux/i2c-dev.h> 23 #include <linux/i2c-dev.h>
24 #include <i2c/smbus.h> 24 #include <i2c/smbus.h>
25 25
26(Please note that there are two files named "i2c-dev.h" out there. One is
27distributed with the Linux kernel and the other one is included in the
28source tree of i2c-tools. They used to be different in content but since 2012
29they're identical. You should use "linux/i2c-dev.h").
30
31Now, you have to decide which adapter you want to access. You should 26Now, you have to decide which adapter you want to access. You should
32inspect /sys/class/i2c-dev/ or run "i2cdetect -l" to decide this. 27inspect /sys/class/i2c-dev/ or run "i2cdetect -l" to decide this.
33Adapter numbers are assigned somewhat dynamically, so you can not 28Adapter numbers are assigned somewhat dynamically, so you can not
@@ -140,8 +135,8 @@ ioctl(file, I2C_RDWR, struct i2c_rdwr_ioctl_data *msgset)
140 set in each message, overriding the values set with the above ioctl's. 135 set in each message, overriding the values set with the above ioctl's.
141 136
142ioctl(file, I2C_SMBUS, struct i2c_smbus_ioctl_data *args) 137ioctl(file, I2C_SMBUS, struct i2c_smbus_ioctl_data *args)
143 Not meant to be called directly; instead, use the access functions 138 If possible, use the provided i2c_smbus_* methods described below instead
144 below. 139 of issuing direct ioctls.
145 140
146You can do plain i2c transactions by using read(2) and write(2) calls. 141You can do plain i2c transactions by using read(2) and write(2) calls.
147You do not need to pass the address byte; instead, set it through 142You do not need to pass the address byte; instead, set it through
@@ -166,10 +161,9 @@ what happened. The 'write' transactions return 0 on success; the
166returns the number of values read. The block buffers need not be longer 161returns the number of values read. The block buffers need not be longer
167than 32 bytes. 162than 32 bytes.
168 163
169The above functions are all inline functions, that resolve to calls to 164The above functions are made available by linking against the libi2c library,
170the i2c_smbus_access function, that on its turn calls a specific ioctl 165which is provided by the i2c-tools project. See:
171with the data in a specific format. Read the source code if you 166https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/.
172want to know what happens behind the screens.
173 167
174 168
175Implementation details 169Implementation details