Paweł, could you please test this change if it works on your board? I was that you were fixing another wakeup issue in patch "misc: atsha204a: Increase wake delay by tWHI".
On Thursday 04 August 2022 13:03:44 Pali Rohár wrote: > The device ignores any levels or transitions on the SCL pin when the device > is idle, asleep or during waking up. > > Linux kernel driver for atsha204a (atmel-sha204a.ko) also ignores return > value from i2c wakeup send command, see: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/crypto/atmel-i2c.c?h=v5.19#n174 > > And also userspace Turris libatsha204 library ignores return value from > wakeup send command, see: > https://gitlab.nic.cz/turris/libatsha204/-/blob/v29.2/src/libatsha204/layer_ni2c.c#L75-76 > > U-Boot driver should do same thing. > > Fixes waking up ATSHA204 on Turris 1.x boards. > > Signed-off-by: Pali Rohár <p...@kernel.org> > --- > drivers/misc/atsha204a-i2c.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/misc/atsha204a-i2c.c b/drivers/misc/atsha204a-i2c.c > index 81ecb5b6177b..fa2d5948f128 100644 > --- a/drivers/misc/atsha204a-i2c.c > +++ b/drivers/misc/atsha204a-i2c.c > @@ -103,12 +103,13 @@ int atsha204a_wakeup(struct udevice *dev) > for (try = 1; try <= 10; ++try) { > debug("Try %i... ", try); > > + /* > + * The device ignores any levels or transitions on the SCL pin > + * when the device is idle, asleep or during waking up. > + * Don't check for error when waking up the device. > + */ > memset(req, 0, 4); > - res = atsha204a_send(dev, req, 4); > - if (res) { > - debug("failed on I2C send, trying again\n"); > - continue; > - } > + atsha204a_send(dev, req, 4); > > udelay(ATSHA204A_TWLO_US + ATSHA204A_TWHI_US); > > -- > 2.20.1 >