Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 976cf205 authored by Wolfram Sang's avatar Wolfram Sang Committed by Wolfram Sang
Browse files

i2c: slave: docs: be more precise about the prerequsites



There was some confusion what was needed to utilize the slave support,
so let's be more precise about this. Add an introductory paragraph to
the development section while we are here.

Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent 1fb2ad95
Loading
Loading
Loading
Loading
+15 −10
Original line number Original line Diff line number Diff line
@@ -3,16 +3,16 @@ Linux I2C slave interface description


by Wolfram Sang <wsa@sang-engineering.com> in 2014-15
by Wolfram Sang <wsa@sang-engineering.com> in 2014-15


Linux can also be an I2C slave in case I2C controllers have slave support.
Linux can also be an I2C slave if the I2C controller in use has slave
Besides this HW requirement, one also needs a software backend providing the
functionality. For that to work, one needs slave support in the bus driver plus
actual functionality. An example for this is the slave-eeprom driver, which
a hardware independent software backend providing the actual functionality. An
acts as a dual memory driver. While another I2C master on the bus can access it
example for the latter is the slave-eeprom driver, which acts as a dual memory
like a regular EEPROM, the Linux I2C slave can access the content via sysfs and
driver. While another I2C master on the bus can access it like a regular
retrieve/provide information as needed. The software backend driver and the I2C
EEPROM, the Linux I2C slave can access the content via sysfs and handle data as
bus driver communicate via events. Here is a small graph visualizing the data
needed. The backend driver and the I2C bus driver communicate via events. Here
flow and the means by which data is transported. The dotted line marks only one
is a small graph visualizing the data flow and the means by which data is
example. The backend could also use e.g. a character device, be in-kernel
transported. The dotted line marks only one example. The backend could also
only, or something completely different:
use a character device, be in-kernel only, or something completely different:




              e.g. sysfs        I2C slave events        I/O registers
              e.g. sysfs        I2C slave events        I/O registers
@@ -43,6 +43,11 @@ behaviour and setup.
Developer manual
Developer manual
================
================


First, the events which are used by the bus driver and the backend will be
described in detail. After that, some implementation hints for extending bus
drivers and writing backends will be given.


I2C slave events
I2C slave events
----------------
----------------