Skip to content

Commit

Permalink
of/gpio: export of_gpio_simple_xlate
Browse files Browse the repository at this point in the history
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 <[email protected]>
Cc: Grant Likely <[email protected]>
Signed-off-by: Jamie Iles <[email protected]>
Signed-off-by: Grant Likely <[email protected]>
  • Loading branch information
jamieiles authored and glikely committed Jul 28, 2011
1 parent 95b6886 commit 3038bbd
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/of/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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)
Expand Down
9 changes: 9 additions & 0 deletions include/linux/of_gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand All @@ -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) { }

Expand Down

0 comments on commit 3038bbd

Please sign in to comment.