[PATCHv2 1/2] of/gpio: export of_gpio_simple_xlate

Grant Likely grant.likely at secretlab.ca
Fri Jul 29 08:16:46 EST 2011


On Thu, Jul 28, 2011 at 04:25:41PM +0100, Jamie Iles wrote:
> Allow GPIO drivers to use of_gpio_simple_xlate.  This is useful for the
> generic GPIO driver for example where gpio_chip is embedded in
> bgpio_chip and doesn't need of_mm_gpio_chip but has a simple 1:1 GPIO
> mapping.
> 
> Cc: Anton Vorontsov <avorontsov at ru.mvista.com>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Signed-off-by: Jamie Iles <jamie at jamieiles.com>

Applied, thanks.

g.

> ---
>  drivers/of/gpio.c       |    5 +++--
>  include/linux/of_gpio.h |    9 +++++++++
>  2 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/of/gpio.c b/drivers/of/gpio.c
> index 3007662..ef0105f 100644
> --- a/drivers/of/gpio.c
> +++ b/drivers/of/gpio.c
> @@ -127,8 +127,8 @@ EXPORT_SYMBOL(of_gpio_count);
>   * gpio chips. This function performs only one sanity check: whether gpio
>   * is less than ngpios (that is specified in the gpio_chip).
>   */
> -static int of_gpio_simple_xlate(struct gpio_chip *gc, struct device_node *np,
> -				const void *gpio_spec, u32 *flags)
> +int of_gpio_simple_xlate(struct gpio_chip *gc, struct device_node *np,
> +			 const void *gpio_spec, u32 *flags)
>  {
>  	const __be32 *gpio = gpio_spec;
>  	const u32 n = be32_to_cpup(gpio);
> @@ -152,6 +152,7 @@ static int of_gpio_simple_xlate(struct gpio_chip *gc, struct device_node *np,
>  
>  	return n;
>  }
> +EXPORT_SYMBOL(of_gpio_simple_xlate);
>  
>  /**
>   * of_mm_gpiochip_add - Add memory mapped GPIO chip (bank)
> diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h
> index aec8025..52280a2 100644
> --- a/include/linux/of_gpio.h
> +++ b/include/linux/of_gpio.h
> @@ -57,6 +57,8 @@ extern int of_mm_gpiochip_add(struct device_node *np,
>  extern void of_gpiochip_add(struct gpio_chip *gc);
>  extern void of_gpiochip_remove(struct gpio_chip *gc);
>  extern struct gpio_chip *of_node_to_gpiochip(struct device_node *np);
> +extern int of_gpio_simple_xlate(struct gpio_chip *gc, struct device_node *np,
> +				const void *gpio_spec, u32 *flags);
>  
>  #else /* CONFIG_OF_GPIO */
>  
> @@ -72,6 +74,13 @@ static inline unsigned int of_gpio_count(struct device_node *np)
>  	return 0;
>  }
>  
> +static inline int of_gpio_simple_xlate(struct gpio_chip *gc,
> +				       struct device_node *np,
> +				       const void *gpio_spec, u32 *flags)
> +{
> +	return -ENOSYS;
> +}
> +
>  static inline void of_gpiochip_add(struct gpio_chip *gc) { }
>  static inline void of_gpiochip_remove(struct gpio_chip *gc) { }
>  
> -- 
> 1.7.4.1
> 


More information about the devicetree-discuss mailing list