Re: [PATCH RFC v1 2/2] pinctrl: meson: wire up the gpio_chip's set_config callback

From: Jerome Brunet
Date: Sat Apr 11 2020 - 13:23:35 EST



On Sat 11 Apr 2020 at 19:03, Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> wrote:

> Use gpiochip_generic_config for the gpio_chip's set_config callback so
> GPIO flags like GPIO_PULL_UP or GPIO_PULL_DOWN can be used in the board
> .dts descriptions.
> This is required for some Meson8m2 boards where GPIO_BSD_EN provides the
> "MUTE" signal and requires enabling the internal pull-up resistor.

I think your addition makes sense but, FYI, there is another solution to
your problem that should already work as it is.

If the platform requires a pull-up, you could set the pinconf 'bias-pull-up'
property in dt in the pinctrl definition passed to the device using the gpio.

There is an example of that in meson-gx-libretech-pc.dtsi with the phy
irq pin.

>
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx>
> ---
> drivers/pinctrl/meson/pinctrl-meson.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
> index 291f3078e7c7..079f8ee8d353 100644
> --- a/drivers/pinctrl/meson/pinctrl-meson.c
> +++ b/drivers/pinctrl/meson/pinctrl-meson.c
> @@ -603,6 +603,7 @@ static int meson_gpiolib_register(struct meson_pinctrl *pc)
> pc->chip.parent = pc->dev;
> pc->chip.request = gpiochip_generic_request;
> pc->chip.free = gpiochip_generic_free;
> + pc->chip.set_config = gpiochip_generic_config;
> pc->chip.get_direction = meson_gpio_get_direction;
> pc->chip.direction_input = meson_gpio_direction_input;
> pc->chip.direction_output = meson_gpio_direction_output;