GPIO set config argument value difference in pinconf and gpiolib

From: Ryan.Wanner
Date: Mon May 15 2023 - 04:26:20 EST


Hello,

I have a question about gpiochip_generic_config function. I noticed when
calling this function the pin configuration is incorrect for
push-pull/open-drain in pinctrl-at91-pio4. I traced this down to a
argument value that is incorrect, this is extracted from the config
using pinconf_to_config_argument. The pinctrl driver processes this
config argument value correctly but when gpiolib calls this function
that value is not passed causing the argument to be 0 in the function
atmel_conf_pin_config_group_set. I see this same structure in other
pinctrl drivers as well.

It seems that gpio_set_config is called which hard codes 0 into
gpio_set_config_with_arugment function call making the argument 0 when
passed into the pinctrl set config function. It seems that the correct
way would to mimic the gpio_set_bias function handling of this argument
value. Doing a small local test seems to confirm my suggestion.

Best,
Ryan Wanner