Lines Matching refs:mux

7 1. A mux may be needed on the bus to prevent address collisions.
21 i2c transfers, and all adapters with a parent are part of an "i2c-mux"
24 Depending of the particular mux driver, something happens when there is
25 an i2c transfer on one of its child adapters. The mux driver can
26 obviously operate a mux, but it can also do arbitration with an external
27 bus master or open a gate. The mux driver has two operations for this,
36 mux-locked or parent-locked muxes. As is evident from below, it can be
37 useful to know if a mux is mux-locked or if it is parent-locked. The
42 i2c-mux-gpio Normally parent-locked, mux-locked iff
44 same i2c root adapter that they mux.
45 i2c-mux-gpmux Normally parent-locked, mux-locked iff
47 i2c-mux-ltc4306 Mux-locked
48 i2c-mux-mlxcpld Parent-locked
49 i2c-mux-pca9541 Parent-locked
50 i2c-mux-pca954x Parent-locked
51 i2c-mux-pinctrl Normally parent-locked, mux-locked iff
53 by the same i2c root adapter that they mux.
54 i2c-mux-reg Parent-locked
78 stages of the transaction. This has the benefit that the mux driver
81 ML1. If you build a topology with a mux-locked mux being the parent
82 of a parent-locked mux, this might break the expectation from the
83 parent-locked mux that the root adapter is locked during the
87 mux-locked muxes that are not siblings, when there are address
92 address 0x42 behind mux-one may be interleaved with a similar
93 operation targeting device address 0x42 behind mux-two. The
95 be that mux-one and mux-two should not be selected simultaneously,
96 but mux-locked muxes do not guarantee that in all topologies.
98 ML3. A mux-locked mux cannot be used by a driver for auto-closing
103 ML4. If any non-i2c operation in the mux driver changes the i2c mux state,
106 behind the mux, when an unrelated i2c transfer is in flight during
107 the non-i2c mux-changing operation.
114 .--------. | mux- |-----| dev D1 |
116 '--------' | | mux M1 |--. .--------.
126 3. M1 calls ->select to ready the mux.
145 transfer-deselect transaction. The implication is that the mux driver
151 PL1. If you build a topology with a parent-locked mux being the child
152 of another mux, this might break a possible assumption from the
153 child mux that the root adapter is unused between its select op
154 and the actual transfer (e.g. if the child mux is auto-closing
155 and the parent mux issus i2c-transfers as part of its select).
156 This is especially the case if the parent mux is mux-locked, but
157 it may also happen if the parent mux is parent-locked.
172 '--------' | | mux M1 |--. .--------.
183 4. M1 calls ->select to ready the mux.
203 Parent-locked mux as parent of parent-locked mux
211 '--------' | | mux M1 |--. | mux M2 |--. .--------.
222 This topology is bad if M2 is an auto-closing mux and M1->select
227 Mux-locked mux as parent of mux-locked mux
233 .--------. | mux- |-----| mux- |-----| dev D1 |
235 '--------' | | mux M1 |--. | mux M2 |--. .--------.
248 Mux-locked mux as parent of parent-locked mux
254 .--------. | mux- |-----| parent- |-----| dev D1 |
256 '--------' | | mux M1 |--. | mux M2 |--. .--------.
275 mux. In that case, any interleaved accesses to D4 might close M2
282 Parent-locked mux as parent of mux-locked mux
288 .--------. | parent- |-----| mux- |-----| dev D1 |
290 '--------' | | mux M1 |--. | mux M2 |--. .--------.
299 any point, just as is expected for mux-locked muxes.
306 Two mux-locked sibling muxes
313 | mux- |--' '--------'
315 | | mux M1 |-----| dev D2 |
318 .--------. | | mux- |-----| dev D3 |
320 '--------' | | mux M2 |--. .--------.
339 | | mux M1 |-----| dev D2 |
344 '--------' | | mux M2 |--. .--------.
361 | mux- |--' '--------'
363 | | mux M1 |-----| dev D2 |
368 '--------' | | mux M2 |--. .--------.