diff options
Diffstat (limited to 'include/linux/of_gpio.h')
| -rw-r--r-- | include/linux/of_gpio.h | 27 | 
1 files changed, 25 insertions, 2 deletions
diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h index b254052a49d..81733d12cbe 100644 --- a/include/linux/of_gpio.h +++ b/include/linux/of_gpio.h @@ -50,7 +50,8 @@ static inline struct of_mm_gpio_chip *to_of_mm_gpio_chip(struct gpio_chip *gc)  extern int of_get_named_gpio_flags(struct device_node *np,  		const char *list_name, int index, enum of_gpio_flags *flags); -extern unsigned int of_gpio_count(struct device_node *np); +extern unsigned int of_gpio_named_count(struct device_node *np, +					const char* propname);  extern int of_mm_gpiochip_add(struct device_node *np,  			      struct of_mm_gpio_chip *mm_gc); @@ -71,7 +72,8 @@ static inline int of_get_named_gpio_flags(struct device_node *np,  	return -ENOSYS;  } -static inline unsigned int of_gpio_count(struct device_node *np) +static inline unsigned int of_gpio_named_count(struct device_node *np, +					const char* propname)  {  	return 0;  } @@ -89,6 +91,27 @@ static inline void of_gpiochip_remove(struct gpio_chip *gc) { }  #endif /* CONFIG_OF_GPIO */  /** + * of_gpio_count - Count GPIOs for a device + * @np:		device node to count GPIOs for + * + * The function returns the count of GPIOs specified for a node. + * + * Note that the empty GPIO specifiers counts too. For example, + * + * gpios = <0 + *          &pio1 1 2 + *          0 + *          &pio2 3 4>; + * + * defines four GPIOs (so this function will return 4), two of which + * are not specified. + */ +static inline unsigned int of_gpio_count(struct device_node *np) +{ +	return of_gpio_named_count(np, "gpios"); +} + +/**   * of_get_gpio_flags() - Get a GPIO number and flags to use with GPIO API   * @np:		device node to get GPIO from   * @index:	index of the GPIO  |