summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorThomas Richard <thomas.richard@bootlin.com>2025-08-11 15:25:50 +0200
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>2025-08-11 15:39:31 +0200
commitb31c68fd851e74526ad963362ea205eb97b9a710 (patch)
treeb82d68ce0e89af90f2b882fa2dbd5f5738e1d421 /include
parent6e986f8852f56cf9214ea2ec02b4b432e201d02c (diff)
gpio: aggregator: handle runtime registration of gpio_desc in gpiochip_fwd
Add request() callback to check if the GPIO descriptor was well registered in the gpiochip_fwd before using it. This is done to handle the case where GPIO descriptor is added at runtime in the forwarder. If at least one GPIO descriptor was not added before the forwarder registration, we assume the forwarder can sleep as if a GPIO is added at runtime it may sleep. Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Thomas Richard <thomas.richard@bootlin.com> Link: https://lore.kernel.org/r/20250811-aaeon-up-board-pinctrl-support-v9-7-29f0cbbdfb30@bootlin.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/gpio/forwarder.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/gpio/forwarder.h b/include/linux/gpio/forwarder.h
index e21a1b7b1905..45e0190308f0 100644
--- a/include/linux/gpio/forwarder.h
+++ b/include/linux/gpio/forwarder.h
@@ -10,10 +10,12 @@ struct gpiochip_fwd *devm_gpiochip_fwd_alloc(struct device *dev,
unsigned int ngpios);
int gpiochip_fwd_desc_add(struct gpiochip_fwd *fwd,
struct gpio_desc *desc, unsigned int offset);
+void gpiochip_fwd_desc_free(struct gpiochip_fwd *fwd, unsigned int offset);
int gpiochip_fwd_register(struct gpiochip_fwd *fwd);
struct gpio_chip *gpiochip_fwd_get_gpiochip(struct gpiochip_fwd *fwd);
+int gpiochip_fwd_gpio_request(struct gpiochip_fwd *fwd, unsigned int offset);
int gpiochip_fwd_gpio_get_direction(struct gpiochip_fwd *fwd,
unsigned int offset);
int gpiochip_fwd_gpio_direction_input(struct gpiochip_fwd *fwd,