diff options
Diffstat (limited to 'include/linux/gpio/driver.h')
| -rw-r--r-- | include/linux/gpio/driver.h | 66 | 
1 files changed, 6 insertions, 60 deletions
| diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index 573e4f3243d0..e78a2373e374 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -141,73 +141,16 @@ extern const char *gpiochip_is_requested(struct gpio_chip *chip,  /* add/remove chips */  extern int gpiochip_add(struct gpio_chip *chip); -extern int __must_check gpiochip_remove(struct gpio_chip *chip); +extern int gpiochip_remove(struct gpio_chip *chip);  extern struct gpio_chip *gpiochip_find(void *data,  			      int (*match)(struct gpio_chip *chip, void *data));  /* lock/unlock as IRQ */ -int gpiod_lock_as_irq(struct gpio_desc *desc); -void gpiod_unlock_as_irq(struct gpio_desc *desc); +int gpio_lock_as_irq(struct gpio_chip *chip, unsigned int offset); +void gpio_unlock_as_irq(struct gpio_chip *chip, unsigned int offset);  struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc); -struct gpio_desc *gpiochip_get_desc(struct gpio_chip *chip, -				    u16 hwnum); - -enum gpio_lookup_flags { -	GPIO_ACTIVE_HIGH = (0 << 0), -	GPIO_ACTIVE_LOW = (1 << 0), -	GPIO_OPEN_DRAIN = (1 << 1), -	GPIO_OPEN_SOURCE = (1 << 2), -}; - -/** - * struct gpiod_lookup - lookup table - * @chip_label: name of the chip the GPIO belongs to - * @chip_hwnum: hardware number (i.e. relative to the chip) of the GPIO - * @con_id: name of the GPIO from the device's point of view - * @idx: index of the GPIO in case several GPIOs share the same name - * @flags: mask of GPIO_* values - * - * gpiod_lookup is a lookup table for associating GPIOs to specific devices and - * functions using platform data. - */ -struct gpiod_lookup { -	const char *chip_label; -	u16 chip_hwnum; -	const char *con_id; -	unsigned int idx; -	enum gpio_lookup_flags flags; -}; - -struct gpiod_lookup_table { -	struct list_head list; -	const char *dev_id; -	struct gpiod_lookup table[]; -}; - -/* - * Simple definition of a single GPIO under a con_id - */ -#define GPIO_LOOKUP(_chip_label, _chip_hwnum, _con_id, _flags) \ -	GPIO_LOOKUP_IDX(_chip_label, _chip_hwnum, _con_id, 0, _flags) - -/* - * Use this macro if you need to have several GPIOs under the same con_id. - * Each GPIO needs to use a different index and can be accessed using - * gpiod_get_index() - */ -#define GPIO_LOOKUP_IDX(_chip_label, _chip_hwnum, _con_id, _idx, _flags)  \ -{                                                                         \ -	.chip_label = _chip_label,                                        \ -	.chip_hwnum = _chip_hwnum,                                        \ -	.con_id = _con_id,                                                \ -	.idx = _idx,                                                      \ -	.flags = _flags,                                                  \ -} - -void gpiod_add_lookup_table(struct gpiod_lookup_table *table); -  #ifdef CONFIG_GPIOLIB_IRQCHIP  void gpiochip_set_chained_irqchip(struct gpio_chip *gpiochip, @@ -223,6 +166,9 @@ int gpiochip_irqchip_add(struct gpio_chip *gpiochip,  #endif /* CONFIG_GPIO_IRQCHIP */ +int gpiochip_request_own_desc(struct gpio_desc *desc, const char *label); +void gpiochip_free_own_desc(struct gpio_desc *desc); +  #else /* CONFIG_GPIOLIB */  static inline struct gpio_chip *gpiod_to_chip(const struct gpio_desc *desc) | 
