All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfram Sang <wsa+renesas@sang-engineering.com>
To: Jie Li <lj29312931@gmail.com>
Cc: wsa@kernel.org, linusw@kernel.org, linux-i2c@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	Jie Li <jie.i.li@nokia.com>
Subject: Re: [PATCH v3 2/2] i2c: core: support recovery for single-ended GPIOs
Date: Mon, 4 May 2026 14:14:38 +0200	[thread overview]
Message-ID: <afiNrr4Llm0LWw-5@ninjato> (raw)
In-Reply-To: <20260201111812.18945-3-jie.i.li@nokia.com>

[-- Attachment #1: Type: text/plain, Size: 1239 bytes --]

Hi all,

On Sun, Feb 01, 2026 at 12:18:12PM +0100, Jie Li wrote:
> Currently, i2c_init_recovery() only assigns the set_sda/set_scl
> hooks if gpiod_get_direction() returns 0 (output).
> 
> This logic fails on certain SoC controllers where open-drain lines
> in a high-impedance state are physically reported as inputs. This
> leads to a "deadlock" where the I2C core refuses to assign the
> recovery hooks because it incorrectly assumes the pins are
> input-only, even though they are fully capable of driving the bus
> low for recovery.
> 
> Update the recovery initialization to use the new
> gpiod_is_single_ended() helper. If a GPIO is configured as
> open-drain or open-source in the firmware, it is safe to assume
> it can be used for bus recovery, even if the current hardware
> direction is reported as input.
> 
> Signed-off-by: Jie Li <jie.i.li@nokia.com>
> Reviewed-by: Linus Walleij <linusw@kernel.org>

I think this should go via the GPIO tree? If so:

Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

This probably needs a respin, though, because I will push out a patch
today which will use the new GPIO_LINE_DIRECTION_OUT macro instead of 0.

Thanks and happy hacking,

   Wolfram

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2026-05-04 12:14 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-14 14:13 [PATCH v1 0/2] i2c: add support for forced SDA recovery Jie Li
2026-01-14 14:13 ` [PATCH v1 1/2] i2c: core: add "force-set-sda" flag for open-drain SDA without "FLAG_IS_OUT" bit Jie Li
2026-01-14 14:13 ` [PATCH v1 2/2] dt-bindings: i2c: add force-set-sda property Jie Li
2026-01-16 14:14   ` Krzysztof Kozlowski
2026-01-15  9:27 ` [PATCH v1 0/2] i2c: add support for forced SDA recovery Linus Walleij
2026-01-15 13:12   ` 李杰
2026-01-16 13:59     ` Linus Walleij
2026-01-25 19:51       ` [PATCH v2 0/2] i2c: improve bus recovery for single-ended GPIOs Jie Li
2026-01-25 19:51         ` [PATCH v2 1/2] gpiolib: add gpiod_is_single_ended() helper Jie Li
2026-01-27  9:46           ` Linus Walleij
2026-01-25 19:51         ` [PATCH v2 2/2] i2c: core: support recovery for single-ended GPIOs Jie Li
2026-01-27  9:47           ` Linus Walleij
2026-02-01 11:18             ` [PATCH v3 0/2] i2c: improve bus " Jie Li
2026-02-01 11:18               ` [PATCH v3 1/2] gpiolib: add gpiod_is_single_ended() helper Jie Li
2026-02-01 11:18               ` [PATCH v3 2/2] i2c: core: support recovery for single-ended GPIOs Jie Li
2026-05-04 12:14                 ` Wolfram Sang [this message]
2026-05-09  9:12                   ` [PATCH v4 0/2] i2c: improve bus " Jie Li
2026-05-09  9:12                     ` [PATCH v4 1/2] gpiolib: add gpiod_is_single_ended() helper Jie Li
2026-05-09  9:12                     ` [PATCH v4 2/2] i2c: core: support recovery for single-ended GPIOs Jie Li
2026-05-09 10:10                       ` Wolfram Sang
2026-05-11  7:25                         ` 李杰
2026-05-11  8:19                           ` Linus Walleij
2026-05-11 10:28                             ` Bartosz Golaszewski
2026-05-11 10:33                               ` Wolfram Sang
2026-05-11 10:48                                 ` Bartosz Golaszewski
2026-05-11 11:37                                   ` [PATCH v5 0/2] i2c: improve bus " Jie Li
2026-05-11 11:37                                     ` [PATCH v5 1/2] gpiolib: add gpiod_is_single_ended() helper Jie Li
2026-05-11 11:37                                     ` [PATCH v5 2/2] i2c: core: support recovery for single-ended GPIOs Jie Li
2026-05-11 12:27                                     ` (subset) [PATCH v5 0/2] i2c: improve bus " Bartosz Golaszewski
2026-04-22 18:47               ` [PATCH v3 " 李杰

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=afiNrr4Llm0LWw-5@ninjato \
    --to=wsa+renesas@sang-engineering.com \
    --cc=jie.i.li@nokia.com \
    --cc=linusw@kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lj29312931@gmail.com \
    --cc=wsa@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.