Re: am335x gpiochip numbering changed after 5.10

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

 



On Mon, Aug 8, 2022 at 1:41 PM Johannes Pointner <h4nn35.work@xxxxxxxxx> wrote:
>
> Hello,
>
> I just tried to upgrade a am335x based board from 5.10 LTS to 5.15 LTS
> and this broke an application for me because the gpiochip numbering
> changed:

Don't we have somewhere in the documentation that the GPIO chip device
name should be nothing except name. It seems to me you are relying on
the name to be part of ABI, but it's not. The ABI is the real device
behind no matter what name the associated character device has. To
prevent objection, it's the same as for network cards (old) naming
scheme when eth0 and eth1 can be swapped at boot time.

> <= 5.10:
> gpio0 == gpiochip0
> gpio1 == gpiochip32
> gpio2 == gpiochip64
> gpio3 == gpiochip96
>
> > 5.10
> gpio0 == gpiochip96
> gpio1 == gpiochip0
> gpio2 == gpiochip32
> gpio3 == gpiochip64
>
> This is the same for /dev/gpiochipX

Sure.

...

> Did I configure something wrong or do I have to adjust the devicetree
> for the board somehow?

No, you have to write the application based on `libgpiod` or so with
proper handling of the GPIO chips. Note, that if you run `gpiodetect`
you will see the device instance names for your GPIO chips (IIRC it's
called 'label' in the Linux kernel inside APIs) which should be unique
and that is what your application should rely on.



-- 
With Best Regards,
Andy Shevchenko



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux