From: Wojciech Siudy <wojciech.siudy@xxxxxxxxx> The pca954x mux might not respond under certain cicumstances, like device behind it holding SDA after recovery loop or some internal issue in mux itself. Those situations are indicated by ETIMEDOUT returned from I2C transaction attempting selecting or deselecting the channel. According to device documentation the reset pulse restores I2C subsystem of the mux and deselects the channel. Since the mux switches using transistors, the failure of line behind mux that is currently conneted prevents sending commands to mux itself, so external reset signal is required. The following series of patches implements the reset functionality if it was selected in devicetree, beceuse the reset line might not be dedivated in some applications and such reset pulse would break other chips. Wojciech Siudy (2): dt-bindings: i2c: pca954x: Add timeout reset property pca954x: Reset if channel select fails .../bindings/i2c/i2c-mux-pca954x.yaml | 8 ++++ drivers/i2c/muxes/i2c-mux-pca954x.c | 48 ++++++++++++++----- 2 files changed, 45 insertions(+), 11 deletions(-) -- 2.34.1