diff options
Diffstat (limited to 'Documentation/i2c/summary.rst')
-rw-r--r-- | Documentation/i2c/summary.rst | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/Documentation/i2c/summary.rst b/Documentation/i2c/summary.rst index a1e5c0715f8b..a6da1032fa06 100644 --- a/Documentation/i2c/summary.rst +++ b/Documentation/i2c/summary.rst @@ -31,15 +31,16 @@ implement all the common SMBus protocol semantics or messages. Terminology =========== -Using the terminology from the official documentation, the I2C bus connects -one or more *master* chips and one or more *slave* chips. +The I2C bus connects one or more *controller* chips and one or more *target* +chips. + .. kernel-figure:: i2c_bus.svg - :alt: Simple I2C bus with one master and 3 slaves + :alt: Simple I2C bus with one controller and 3 targets Simple I2C bus -A **master** chip is a node that starts communications with slaves. In the +A **controller** chip is a node that starts communications with targets. In the Linux kernel implementation it is called an **adapter** or bus. Adapter drivers are in the ``drivers/i2c/busses/`` subdirectory. @@ -48,8 +49,8 @@ whole class of I2C adapters. Each specific adapter driver either depends on an algorithm driver in the ``drivers/i2c/algos/`` subdirectory, or includes its own implementation. -A **slave** chip is a node that responds to communications when addressed -by the master. In Linux it is called a **client**. Client drivers are kept +A **target** chip is a node that responds to communications when addressed +by the controller. In Linux it is called a **client**. Client drivers are kept in a directory specific to the feature they provide, for example ``drivers/media/gpio/`` for GPIO expanders and ``drivers/media/i2c/`` for video-related chips. @@ -57,3 +58,13 @@ video-related chips. For the example configuration in figure, you will need a driver for your I2C adapter, and drivers for your I2C devices (usually one driver for each device). + +Outdated terminology +-------------------- + +In earlier I2C specifications, controller was named "master" and target was +named "slave". These terms have been obsoleted with v7 of the specification and +their use is also discouraged by the Linux Kernel Code of Conduct. You may +still find them in references to documentation which has not been updated. The +general attitude, however, is to use the inclusive terms: controller and +target. Work to replace the old terminology in the Linux Kernel is on-going. |