[PATCH v1] i2c: lpi2c: implement master_xfer_atomic callback
Francesco Dolcini
francesco at dolcini.it
Fri Apr 11 05:41:29 PDT 2025
Hello,
On Fri, Apr 11, 2025 at 11:55:31AM +0000, Carlos Song wrote:
> > On Wed, Mar 19, 2025 at 03:51:14PM +0100, Francesco Dolcini wrote:
> > > From: Emanuele Ghidoli <emanuele.ghidoli at toradex.com>
> > >
> > > Rework the read and write code paths in the driver to support
> > > operation in atomic contexts. To achieve this, the driver must not
> > > rely on IRQs or perform any scheduling, e.g., via a sleep or schedule
> > > routine. Even jiffies do not advance in atomic contexts, so timeouts
> > > based on them are substituted with delays.
> > >
> > > Implement atomic, sleep-free, and IRQ-less operation. This increases
> > > complexity but is necessary for atomic I2C transfers required by some
> > > hardware configurations, e.g., to trigger reboots on an external PMIC chip.
> > >
> > > Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli at toradex.com>
> > > Signed-off-by: Francesco Dolcini <francesco.dolcini at toradex.com>
> >
> > Any comment on this?
> Looks good. Thank you for your work!
> Do you test it at some board? How can we test simply?
It was tested on Toradex SMARC iMX95, there to power-off/reset the board
we have some I2C communication required [1].
[1] https://lore.kernel.org/all/20250407114947.41421-3-francesco@dolcini.it/
Francesco
More information about the linux-arm-kernel
mailing list