Re: [PATCH v4 03/10] gpiolib: implement low-level, shared GPIO support

Bartosz Golaszewski
2025-11-26T15:48:07Z

On Wed, Nov 26, 2025 at 4:34 PM Cosmin Tanislav <demonsingur@gmail.com> wrote:
>
> > +
> > + count = of_count_phandle_with_args(curr, prop->name,
> > + "#gpio-cells");
>
> This call causes error messages to be printed for gpio-hog entries, like
> this one from arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi:
>

Thanks for the report.

Please trim your responses to just the relevant context though, you
included the entire huge patch.

> sdhi0-emmc-iovs-hog {
> gpio-hog;
> gpios = <RZT2H_GPIO(2, 6) GPIO_ACTIVE_HIGH>;
> output-high;
> line-name = "SD0_IOVS";
> };
>
> For gpio-hog entries, the first element is not a phandle (gpio-hog is
> already under its parent).
>
> of_count_phandle_with_args() will however try to interpret it as a
> parent either way, causing the following error to be printed.
>
> OF: /soc/pinctrl@802c0000/sdhi0-emmc-iovs-hog: could not get #gpio-cells
> for /soc/ethernet@92010000/mdio/ethernet-phy@2
>
> RZT2H_GPIO(2, 6) expands to 22, or 0x16.
>
> Coincidentally, in the decompiled dts file we have:
>
> ethernet-phy@2 {
> ...
> phandle = <0x16>;
> };
>

Yes, because behind the scenes, a phandle really is nothing more than
an integer.

> Maybe a check for gpio-hogs should be added?
>
> Something like the following before the call to
> of_count_phandle_with_args().
>
> if (strcmp(prop->name, "gpios") == 0 &&
> of_property_present(curr, "gpio-hog"))
> continue;
>

Yes, that's a good idea, thanks. Let me cook up a patch.

Bart