• Home
  • Raw
  • Download

Lines Matching +full:back +full:- +full:to +full:- +full:back

1 .. SPDX-License-Identifier: GPL-2.0
11 -----------
15 forwards transactions from upstream to the appropriate downstream port
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.
30 devices on the child bus ends up in invoking the driver code to select
32 and picking one for each new device is up to the driver implementer. The
33 ATR maintains a table of currently assigned alias and uses it to modify
34 all I2C transactions directed to devices on the child buses.
41 .-----. |
42 .-----. | |---+---- B
43 | CPU |--A--| ATR |
44 `-----' | |---+---- C
45 `-----' |
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
70 messages with address 0x20, forwards to adapter A
71 - Physical I2C transaction on bus A, slave address 0x20
72 - ATR chip detects transaction on address 0x20, finds it in table,
73 propagates transaction on bus B with address translated to 0x10,
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,
78 with address translated back to 0x20
79 - ATR driver receives the reply, rewrites messages with address 0x10
81 - Slave X driver gets back the msgs[], with reply and address 0x10
91 the chip and put the alias back in the pool for later usage
94 -------------------------------------
96 .. kernel-doc:: include/linux/i2c-atr.h