[PATCH v1 0/2] Fix Nvidia BlueField-3 GPIO access

From: Asmaa Mnebhi
Date: Wed Aug 16 2023 - 09:59:47 EST


Fix Nvidia BlueField-3 GPIO access via libgpiod gpioset tool.
gpioset tool fails to modify the GPIO value due to the following:
1) the pinctrl-mlxbf3 driver defines mlxbf3_gpio_request_enable()
to enable software to take control over a gpio. Only then can
the gpio-mlxbf3 driver modify the direction and value of the
gpio. mlxbf3_gpio_disable_free() gives control back to hardware
and is called when the "gpioset" command is invoked.
This cancels out the effort to change the GPIO value and
direction. So mlxbf3_gpio_disable_free() needs to be removed.
2) the gpio-mlxbf3 driver calls gpiochip_generic_request() which
calls mlxbf3_gpio_request_enable(). "pin_ranges" needs not to be
empty for mlxbf3_gpio_request_enable() to be invoked. So
gpio-mlxbf3 needs to populate "pin_ranges".

Asmaa Mnebhi (2):
pinctrl: mlxbf3: Remove gpio_disable_free()
gpio: mlxbf3: Support add_pin_ranges()

drivers/gpio/gpio-mlxbf3.c | 20 ++++++++++++++++++++
drivers/pinctrl/pinctrl-mlxbf3.c | 14 --------------
2 files changed, 20 insertions(+), 14 deletions(-)

--
2.30.1