| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __LINUX_GPIO_FORWARDER_H |
| #define __LINUX_GPIO_FORWARDER_H |
| |
| struct gpio_desc; |
| struct gpio_chip; |
| struct gpiochip_fwd; |
| |
| 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, void *data); |
| |
| struct gpio_chip *gpiochip_fwd_get_gpiochip(struct gpiochip_fwd *fwd); |
| |
| void *gpiochip_fwd_get_data(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, |
| unsigned int offset); |
| int gpiochip_fwd_gpio_direction_output(struct gpiochip_fwd *fwd, |
| unsigned int offset, |
| int value); |
| int gpiochip_fwd_gpio_get(struct gpiochip_fwd *fwd, unsigned int offset); |
| int gpiochip_fwd_gpio_get_multiple(struct gpiochip_fwd *fwd, |
| unsigned long *mask, |
| unsigned long *bits); |
| int gpiochip_fwd_gpio_set(struct gpiochip_fwd *fwd, unsigned int offset, |
| int value); |
| int gpiochip_fwd_gpio_set_multiple(struct gpiochip_fwd *fwd, |
| unsigned long *mask, |
| unsigned long *bits); |
| int gpiochip_fwd_gpio_set_config(struct gpiochip_fwd *fwd, unsigned int offset, |
| unsigned long config); |
| int gpiochip_fwd_gpio_to_irq(struct gpiochip_fwd *fwd, unsigned int offset); |
| |
| #endif |