Lines Matching +full:slave +full:- +full:kernel
1 .. SPDX-License-Identifier: GPL-2.0
11 -----------
13 An I2C Address Translator (ATR) is a device with an I2C slave parent
16 with a modified slave address. The address used on the parent bus is
18 slave address of the child bus. Address translation is done by the
21 An ATR looks similar to an i2c-mux except:
22 - the address on the parent and child busses can be different
23 - there is normally no need to select the child port; the alias used on the
27 The kernel i2c-atr provides a helper to implement an ATR within a driver.
40 Slave X @ 0x10
41 .-----. |
42 .-----. | |---+---- B
43 | CPU |--A--| ATR |
44 `-----' | |---+---- C
45 `-----' |
46 Slave Y @ 0x10
68 - Slave X driver requests a transaction (on adapter B), slave address 0x10
69 - ATR driver finds slave X is on bus B and has alias 0x20, rewrites
71 - Physical I2C transaction on bus A, slave address 0x20
72 - ATR chip detects transaction on address 0x20, finds it in table,
75 - Slave X chip (on bus B) detects transaction at its own physical
77 - ATR chip stops clock stretching and forwards reply on bus A,
79 - ATR driver receives the reply, rewrites messages with address 0x10
81 - Slave X driver gets back the msgs[], with reply and address 0x10
94 -------------------------------------
96 .. kernel-doc:: include/linux/i2c-atr.h