linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] pca954x: Add DT bindings and driver changes for reset after timeout
@ 2024-09-13 10:36 Wojciech Siudy (Nokia)
  2024-09-13 17:53 ` Conor Dooley
  0 siblings, 1 reply; 2+ messages in thread
From: Wojciech Siudy (Nokia) @ 2024-09-13 10:36 UTC (permalink / raw)
  To: linux-i2c@vger.kernel.org, devicetree@vger.kernel.org
  Cc: Peter Rosin, Andi Shyti, laurent.pinchart@ideasonboard.com

From: Wojciech Siudy <wojciech.siudy@nokia.com>

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           | 51 +++++++++++++++----
 2 files changed, 48 insertions(+), 11 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-09-13 17:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-13 10:36 [PATCH v4 0/2] pca954x: Add DT bindings and driver changes for reset after timeout Wojciech Siudy (Nokia)
2024-09-13 17:53 ` Conor Dooley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).