Re: [PATCH v2] pinctrl: bcm63268: add gpio function

From: Kyle Hendry
Date: Thu Jan 02 2025 - 22:05:41 EST


On 2024-12-30 08:42, Jonas Gorski wrote:
Hi,

On Tue, Dec 24, 2024 at 11:41 AM Álvaro Fernández Rojas
<noltari@xxxxxxxxx> wrote:
From: Kyle Hendry <kylehendrydev@xxxxxxxxx>

There is no guarantee that the bootloader will leave the pin configuration
in a known default state, so pinctrl needs to be explicitly set in some
cases. This patch adds a gpio function for drivers that need it, i.e.
gpio-leds.

Signed-off-by: Kyle Hendry <kylehendrydev@xxxxxxxxx>
Signed-off-by: Álvaro Fernández Rojas <noltari@xxxxxxxxx>

bcm63268-pinctrl implements pinmux_ops::gpio_request_enable(), which
should automatically set any requested GPIO pin to the GPIO function,
so explicitly requesting the gpio function for a pin should not be
needed. Is this not enough?

Best Regards,
Jonas


I assumed that as well, but nothing I tried worked with gpio-leds.
gpiochip_generic_request() does call gpio_request_enable(), but gpio-leds
uses devm_fwnode_gpiod_get() which looks like a different code path. The
only place it seems to be configuring the gpio is in create_gpio_led()
where it needs a pinctl node in the device tree. That's just my reading
of the code, though. I haven't set up a ftrace to verify it.

Best Regards,
Kyle