Hi Pali, I applied the patch and it works fine on my board. Log from atsha204a_wakeup(): Waking up ATSHA204A Try 1... success
Tested-by: Paweł Anikiel <p...@semihalf.com> Regards, Paweł On Sun, Aug 7, 2022 at 9:30 PM Pali Rohár <p...@kernel.org> wrote: > > 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 > >