[PATCH v3 0/2] pca954x: Add DT bindings and driver changes for reset after timeout

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux