summaryrefslogtreecommitdiff
path: root/extra/i2c_pseudo/README
blob: 1d1ef75641e5065128cedfaea227f8a5b880a81c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
This directory contains the i2c-pseudo Linux kernel module.

The i2c-pseudo module was written with the intention of being submitted upstream
in the Linux kernel.  This copy exists because of as 2019-03 this module is not
yet in the upstream kernel, and even if/when this is included, it may take a
long time to get included in prepackaged Linux distribution kernels, especially
those based on Linux LTS branches.

See Documentation.rst or Documentation.md for more information about the module
itself.  The reStructuredText (.rst) file is
Documentation/i2c/pseudo-controller-interface.rst in the upstream patch.  The
Markdown file (.md) is generated using rst2md from
nb2plots (https://github.com/matthew-brett/nb2plots) which uses
Sphinx (https://www.sphinx-doc.org/).

When servod starts, if the i2c-pseudo module is loaded servod will automatically
create an I2C pseudo adapter for the Servo I2C bus.  That I2C adapter may then
be used in userspace through i2c-dev (/dev/i2c-<N>).  The i2c-tools package
provides command line utilities for interfacing with i2c-dev devices, and some
CrOS software can work directly with i2c-dev devices as well, such as iteflash
which is used by flash_ec when reflashing an ITE EC through a Servo.

Automated installation:
$ ./install