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: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
Wolfram Sang 2015-05-14 14:40:04 +02:00 коммит произвёл Wolfram Sang
Родитель 1fb2ad9565
Коммит 976cf2056c
1 изменённых файлов: 15 добавлений и 10 удалений

Просмотреть файл

@ -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
---------------- ----------------