Lines Matching +full:flow +full:- +full:controlled

5 Usually, I2C devices are controlled by a kernel driver. But it is also
7 the /dev interface. You need to load module i2c-dev for this.
10 examine /sys/class/i2c-dev/ to see what number corresponds to which adapter.
11 Alternatively, you can run "i2cdetect -l" to obtain a formatted list of all
13 the i2c-tools package.
17 explained above. They should be called "i2c-%d" (i2c-0, i2c-1, ...,
18 i2c-10, ...). All 256 minor device numbers are reserved for I2C.
27 #include <linux/i2c-dev.h>
31 inspect /sys/class/i2c-dev/ or run "i2cdetect -l" to decide this.
41 snprintf(filename, 19, "/dev/i2c-%d", adapter_nr);
93 the means of read() and write() calls. In particular, so-called combined
96 user-space programs.
99 '-O' or some variation when you compile your program!
151 You can do SMBus level transactions (see documentation file smbus-protocol.rst
168 All these transactions return -1 on failure; you can read errno to see
175 which is provided by the i2c-tools project. See:
176 https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git/.
182 For the interested, here's the code flow which happens inside the kernel
185 1) Your program opens /dev/i2c-N and calls ioctl() on it, as described in
188 2) These open() and ioctl() calls are handled by the i2c-dev kernel
189 driver: see i2c-dev.c:i2cdev_open() and i2c-dev.c:i2cdev_ioctl(),
190 respectively. You can think of i2c-dev as a generic I2C chip driver
191 that can be programmed from user-space.
194 i2c-dev directly. Examples include I2C_SLAVE (set the address of the
198 4) Other ioctl() calls are converted to in-kernel function calls by
199 i2c-dev. Examples include I2C_FUNCS, which queries the I2C adapter
201 performs an SMBus transaction using i2c-core-smbus.c:i2c_smbus_xfer().
203 The i2c-dev driver is responsible for checking all the parameters that
204 come from user-space for validity. After this point, there is no
205 difference between these calls that came from user-space through i2c-dev
208 anything special to support access from user-space.
213 i2c_adapter.algo->functionality(), while
214 i2c-core-smbus.c:i2c_smbus_xfer() calls either
215 adapter.algo->smbus_xfer() if it is implemented, or if not,
216 i2c-core-smbus.c:i2c_smbus_xfer_emulated() which in turn calls
217 i2c_adapter.algo->master_xfer().
220 up the call chain, with almost no processing done, except by i2c-dev to