i2c: mux: pca954x: allow management of device idle state via sysfs
authorRobert Shearman <robert.shearman@att.com>
Thu, 28 Feb 2019 11:43:43 +0000 (11:43 +0000)
committerPeter Rosin <peda@axentia.se>
Sun, 21 Apr 2019 21:44:37 +0000 (23:44 +0200)
commitf1fb64b04bf414ab04e31ac107bb28137105c5fd
tree6557ff556070c3185c10de61e2e58118ca8e014d
parent590085f0f25a169772180f57f56deb92b18ea302
i2c: mux: pca954x: allow management of device idle state via sysfs

The behaviour, by default, to not deselect after each transfer is
unsafe when there is a device with an address that conflicts with
another device on another mux on the same parent bus, and it
may not be convenient to use devicetree to set the deselect mux,
e.g. when running on x86_64 when ACPI is used to discover most of the
device hierarchy.

Therefore, provide the ability to set the idle state behaviour using a
new sysfs file, idle_state as a complement to the method of
instantiating the device via sysfs. The possible behaviours are
disconnect, i.e. to deselect all channels from the mux, as-is (the
default), i.e. leave the last channel selected, and set a
predetermined channel.

The current behaviour of leaving the channel as-is after each
transaction is preserved.

Signed-off-by: Robert Shearman <robert.shearman@att.com>
Signed-off-by: Peter Rosin <peda@axentia.se>
Documentation/ABI/testing/sysfs-bus-i2c-devices-pca954x [new file with mode: 0644]
drivers/i2c/muxes/i2c-mux-pca954x.c