[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <b151531d-c9fc-cafa-4e46-e213a9892247@microchip.com>
Date: Tue, 7 Feb 2023 17:56:16 +0000
From: <Ryan.Wanner@...rochip.com>
To: <linux-i2c@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-gpio@...r.kernel.org>
CC: <alexandre.belloni@...tlin.com>, <Ludovic.Desroches@...rochip.com>,
<linus.walleij@...aro.org>, <Nicolas.Ferre@...rochip.com>,
<Claudiu.Beznea@...rochip.com>
Subject: I2c GPIO Recovery with pinctrl strict mode
Hello,
I came across an issue working on i2c and pinctrl strict mode, with
at91-i2c and at91-pio4 pinctrl driver. I understand that for i2c
recovery the pins under i2c change states into gpio mode for the
recovery then back to their default state when recovery is complete.
With strict mode my goal is to change ownership from the default i2c
into gpio ownership then back to i2c ownership to continue normal
operation.
My main issue is the process of freeing ownership of a pin(s) having
another driver, in this case gpio, to take ownership then free that
ownership back to the default state, in this case it would be back to
i2c.
I have tried calling pinmux_disable_setting() and then claiming the
gpios then enabling them for recovery then disabling them again. This
causes lots of warnings and some cases the full ownership is not
transferred.
It seems that what I am attempting to achieve is not doable currently.
Is this the case or am I missing some extra things needing to prepare
for this action?
Thanks,
Ryan
Powered by blists - more mailing lists