Re: [PATCH v8] i2c: riic: Implement bus recovery

From: Wolfram Sang
Date: Thu Apr 17 2025 - 04:32:22 EST


On Mon, Apr 07, 2025 at 01:18:59PM +0100, Prabhakar wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
>
> Implement bus recovery by reinitializing the hardware to reset the bus
> state and generating 9 clock cycles (and a stop condition) to release
> the SDA line.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
> Tested-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
> Reviewed-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
> Reviewed-by: Fabrizio Castro <fabrizio.castro.jz@xxxxxxxxxxx>
> Reviewed-by: Andy Shevchenko <andy@xxxxxxxxxx>

As I wrote in the other thread: I took your generic_scl approach and
replaced bus_free() with get_sda(). Works fine here with my G3S:

# echo 0x1a > /sys/kernel/debug/i2c/i2c-2/incomplete_address_phase ; i2cget -f -y 0 0x1a 3
0x0c

And I see 9 pulses in the scope. Can you try this with your setup
please?

Attachment: signature.asc
Description: PGP signature