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

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

 



Hi,

Am 15.02.22 um 15:44 schrieb Lukas Wunner:

> 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.

sorry, but you cannot blame the mainline kernel for assumptions in out
of tree drivers. What happens if another driver relies on the existing
labeling?

How about detecting the platform via devicetree functions in your driver?

>
>
>> 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
Thanks a lot.
>
>>> 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.

No, the GPIO pins of BCM2835/6/7 SoC are always identical from driver
point of view, because they use the same devicetree compatible. It's the
Raspberry Pi board which connect the GPIOs differently, that was one of
the reasons for introduction of GPIO line names via devicetree.

I understand your pain, but i cannot give an Ack to this change.

Best regards

>
> 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