devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] i2c: designware: Improve support of multi-messages transfer
@ 2025-10-17 14:59 Benoît Monin
  2025-10-17 14:59 ` [PATCH 1/3] dt-bindings: i2c: dw: Add Mobileye I2C controllers Benoît Monin
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Benoît Monin @ 2025-10-17 14:59 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Jarkko Nikula, Mika Westerberg, Andy Shevchenko, Jan Dabros,
	Sebastian Andrzej Siewior, Clark Williams, Steven Rostedt
  Cc: Thomas Petazzoni, Gregory CLEMENT, Théo Lebrun,
	Tawfik Bayouk, Vladimir Kondratiev, Dmitry Guzman, linux-i2c,
	devicetree, linux-kernel, linux-rt-devel, Benoît Monin

Extend what can be done when transferring multiple messages in a single
call to .xfer().

Allow changing the target address by waiting for a STOP then looping
in i2c_dw_xfer() instead of erroring out when a change of address is
detected. The loop then re-run i2c_dw_xfer_init() which changes the
target address and restart the transfer for the rest of the messages.

Handle controllers that lack the ability to emit a RESTART when two
consecutive messages have the same address and direction, by waiting
for a STOP and restarting the rest of the transfer.

The i2c controllers found in the EyeQ6Lplus and EyeQ7H SoC from
Mobileye lack such capability, so compatible strings are added because
this cannot be detected at runtime.

Signed-off-by: Benoît Monin <benoit.monin@bootlin.com>
---
Benoît Monin (3):
      dt-bindings: i2c: dw: Add Mobileye I2C controllers
      i2c: designware: Enable transfer with different target addresses
      i2c: designware: Support of controller with IC_EMPTYFIFO_HOLD_MASTER disabled

 .../bindings/i2c/snps,designware-i2c.yaml          |  2 +
 drivers/i2c/busses/i2c-designware-core.h           |  1 +
 drivers/i2c/busses/i2c-designware-master.c         | 97 ++++++++++++++--------
 drivers/i2c/busses/i2c-designware-platdrv.c        |  6 +-
 4 files changed, 68 insertions(+), 38 deletions(-)
---
base-commit: 3a8660878839faadb4f1a6dd72c3179c1df56787
change-id: 20251014-i2c-dw-da315f758296

Best regards,
-- 
Benoît Monin, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


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

end of thread, other threads:[~2025-10-22  8:58 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-17 14:59 [PATCH 0/3] i2c: designware: Improve support of multi-messages transfer Benoît Monin
2025-10-17 14:59 ` [PATCH 1/3] dt-bindings: i2c: dw: Add Mobileye I2C controllers Benoît Monin
2025-10-18 15:55   ` Krzysztof Kozlowski
2025-10-17 14:59 ` [PATCH 2/3] i2c: designware: Enable transfer with different target addresses Benoît Monin
2025-10-20  9:38   ` Hans Verkuil
2025-10-20 15:00     ` Benoît Monin
2025-10-20 19:52       ` Wolfram Sang
2025-10-22  8:36         ` Benoît Monin
2025-10-22  8:58           ` Wolfram Sang
2025-10-17 14:59 ` [PATCH 3/3] i2c: designware: Support of controller with IC_EMPTYFIFO_HOLD_MASTER disabled Benoît Monin
2025-10-18 15:55   ` Krzysztof Kozlowski
2025-10-18 19:57   ` Andy Shevchenko
2025-10-21 15:40   ` Mika Westerberg
2025-10-18 19:49 ` [PATCH 0/3] i2c: designware: Improve support of multi-messages transfer Andy Shevchenko

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).