Re: GPIOs not correctly exported via sysfs on ATSAMA5D2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Mar 2, 2020 at 10:36 AM Russell King - ARM Linux admin
<linux@xxxxxxxxxxxxxxx> wrote:
> On Mon, Mar 02, 2020 at 09:39:59AM +0100, Uwe Kleine-König wrote:

> >  - Sometimes it is useful to make use of a GPIO and a dedicated function
> >    on the same pin in a driver (e.g. an i2c driver might need to switch
> >    to gpio to do a bus recovery). The automatic pinmuxing then has
> >    strange side effect because you have to remux the pins after
> >    requesting the GPIOs even if you didn't drive the pins as GPIO and
> >    there is a short time where the pin function isn't the dedicated
> >    one.
>
> It's worse than that for the i2c driver.  The pins are muxed to the i2c
> function when the driver binds.  When the i2c driver claims the GPIOs
> corresponding with those pins, they get switched to GPIO mode behind
> the back of pinctrl.  You then have to _explicitly_ switch pinctrl to
> GPIO mode and back to I2C mode to get them back to I2C mode.

That's especially annoying. I would consider adding a specific
consumer flag for GPIOs used this way, in additon to
GPIOD_ASIS, something like GPIOD_ASIS_NOMUX
(thinking of better names).

Since the calling site knows about this usecase we can
open code the semantics for this specifically.

Yours,
Linus Walleij




[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux