aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/i2c/slave-interface
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-06-25 21:42:39 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-06-25 21:42:39 -0400
commit24867481b8c0a3bc3ab53b634e3cc03680ac3ac6 (patch)
tree87a0f018c5e0fb61275b5a48977108ad1a33aa8b /Documentation/i2c/slave-interface
parent9390bd0d14b4585f7ac2df15ff5f52af182251e1 (diff)
parenta294aba164389a3d2c40dfcf5f3989a3bbfe38a2 (diff)
Merge branch 'i2c/for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang: "Highlights: - new drivers for Mediatek I2C, APM X-Gene, Broadcom Settop - major updates to at91, davinci - bugfixes to the mux infrastructure when dealing with the new quirk mechanism - more users for the bus recovery feature - further improvements to the slave framework Plus the usual bunch of smaller driver and core improvements and fixes. There is one patch removing old code from an ARM platform. This has been acked by the sh_mobile maintainer Simon Horman" * 'i2c/for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (48 commits) i2c: busses: i2c-bcm2835: limits cdiv to allowed values i2c: sh_mobile: use proper type for timeout i2c: sh_mobile: use adapter default for timeout i2c: rcar: use proper type for timeout i2c: rcar: use adapter default for timeout i2c: designware: Make sure the device is suspended before disabling runtime PM i2c: tegra: apply size limit quirk i2c: tegra: don't advertise SMBUS_QUICK i2c: octeon: remove unused signal handling i2c: davinci: Optimize SCL generation i2c: mux: pca954x: Use __i2c_transfer because of quirks i2c: mux: Use __i2c_transfer() instead of calling parent's master_xfer() i2c: use parent adapter quirks in mux i2c: bcm2835: clear reserved bits in S-Register ARM: shmobile: r8a7740: remove I2C errata handling i2c: sh_mobile: add errata workaround i2c: at91: fix code checker warnings i2c: busses: xgene-slimpro: fix incorrect __init declation for probe i2c: davinci: Avoid sending to own address i2c: davinci: Refactor i2c_davinci_wait_bus_not_busy() ...
Diffstat (limited to 'Documentation/i2c/slave-interface')
-rw-r--r--Documentation/i2c/slave-interface25
1 files changed, 15 insertions, 10 deletions
diff --git a/Documentation/i2c/slave-interface b/Documentation/i2c/slave-interface
index b228ca54bcf4..2dee4e2d62df 100644
--- a/Documentation/i2c/slave-interface
+++ b/Documentation/i2c/slave-interface
@@ -3,16 +3,16 @@ Linux I2C slave interface description
3 3
4by Wolfram Sang <wsa@sang-engineering.com> in 2014-15 4by Wolfram Sang <wsa@sang-engineering.com> in 2014-15
5 5
6Linux can also be an I2C slave in case I2C controllers have slave support. 6Linux can also be an I2C slave if the I2C controller in use has slave
7Besides this HW requirement, one also needs a software backend providing the 7functionality. For that to work, one needs slave support in the bus driver plus
8actual functionality. An example for this is the slave-eeprom driver, which 8a hardware independent software backend providing the actual functionality. An
9acts as a dual memory driver. While another I2C master on the bus can access it 9example for the latter is the slave-eeprom driver, which acts as a dual memory
10like a regular EEPROM, the Linux I2C slave can access the content via sysfs and 10driver. While another I2C master on the bus can access it like a regular
11retrieve/provide information as needed. The software backend driver and the I2C 11EEPROM, the Linux I2C slave can access the content via sysfs and handle data as
12bus driver communicate via events. Here is a small graph visualizing the data 12needed. The backend driver and the I2C bus driver communicate via events. Here
13flow and the means by which data is transported. The dotted line marks only one 13is a small graph visualizing the data flow and the means by which data is
14example. The backend could also use e.g. a character device, be in-kernel 14transported. The dotted line marks only one example. The backend could also
15only, or something completely different: 15use a character device, be in-kernel only, or something completely different:
16 16
17 17
18 e.g. sysfs I2C slave events I/O registers 18 e.g. sysfs I2C slave events I/O registers
@@ -43,6 +43,11 @@ behaviour and setup.
43Developer manual 43Developer manual
44================ 44================
45 45
46First, the events which are used by the bus driver and the backend will be
47described in detail. After that, some implementation hints for extending bus
48drivers and writing backends will be given.
49
50
46I2C slave events 51I2C slave events
47---------------- 52----------------
48 53