Re: [PATCH] pinctrl: bcm2835: Use bcm2835 gpio_chip label for bcm2711

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

 



On Tue, Feb 15, 2022 at 01:00:47PM +0100, Stefan Wahren wrote:
> Am 15.02.22 um 06:52 schrieb Lukas Wunner:
> > Commit b1d84a3d0a26 ("pinctrl: bcm2835: Add support for all GPIOs on
> > BCM2711") used a different label for the bcm2711 gpio_chip vis-à-vis
> > the bcm2835.
> >
> > That breaks compatibility for GPIO_LOOKUP_IDX() and GPIO_HOG() clauses
> > when porting from older Raspberry Pi Compute Modules to the CM4 or CM4S.
> 
> could you explain the breakage more in detail, is it kernel or user space?

This kernel module (which is sought to be upstreamed mid-term)
requests GPIOs at runtime for a chardev:

https://github.com/RevolutionPi/piControl/blob/master/revpi_core.c#L50

That fails on BCM2711 because a different label name was used,
even though the pin-controller is otherwise compatible to BCM2835.


> A little bit off topic, but what is this CM4S? Is it special version of
> the CM4? Can you provide a link or something?

BCM2711 in a CM1/CM3-compatible form factor.  There is no public
documentation at this point besides the device-tree overlay and
what's being discussed in the forums and on GitHub:

https://github.com/raspberrypi/linux/blob/rpi-5.15.y/arch/arm/boot/dts/bcm2711-rpi-cm4s.dts
https://forums.raspberrypi.com/viewtopic.php?t=325975
https://github.com/search?q=cm4s&type=commits


> > The name change seems unwarranted given it's essentially the same
> > hardware, so use the old name instead.
> 
> I disagree at this point. The pinctrl of bcm2835 and bcm2711 are
> different. For example the bcm2835 has only 54 GPIOs while the bcm2711
> has 58.

Four additional GPIOs don't justify a different label name given the
pin-controller otherwise behaves the same.  We also had minimal
differences in pin assignment on BCM2835/6/7 and that didn't
justify a different label name either.

Thanks,

Lukas



[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