From: Robert Shearman <robert.shearman@xxxxxxx> 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 pca954x 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. Changes in v3: - remove use of platform data to simplify the idle state by not having per-channel idle states. - correct some comments - fix a style issue regarding use of READ_ONCE Changes in v2: - change from exposing deselect mask to idle state with more options and less implementation specific - fix style issues - don't fail the create of the mux device if the device attribute file in sysfs failed to create Robert Shearman (3): i2c: mux: pca954x: remove support for unused platform data i2c: mux: pca9541: remove support for unused platform data i2c: mux: pca954x: allow management of device idle state via sysfs .../ABI/testing/sysfs-bus-i2c-devices-pca954x | 20 ++++ drivers/i2c/muxes/i2c-mux-pca9541.c | 4 - drivers/i2c/muxes/i2c-mux-pca954x.c | 99 ++++++++++++++----- include/linux/platform_data/pca954x.h | 48 --------- 4 files changed, 97 insertions(+), 74 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-i2c-devices-pca954x delete mode 100644 include/linux/platform_data/pca954x.h -- 2.20.1