diff options
author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2010-06-08 09:48:17 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2010-07-05 18:14:30 -0400 |
commit | 391c970c0dd1100e3b9e1681f7d0f20aac35455a (patch) | |
tree | 05a42941269f77b22de6b640953df61f2da5d13c /include/linux/of_gpio.h | |
parent | 594fa265e084073443390c5b93d5410fd28e9bcd (diff) |
of/gpio: add default of_xlate function if device has a node pointer
Implement generic OF gpio hooks and thus make device-enabled GPIO chips
(i.e. the ones that have gpio_chip->dev specified) automatically attach
to the OpenFirmware subsystem. Which means that now we can handle I2C and
SPI GPIO chips almost* transparently.
* "Almost" because some chips still require platform data, and for these
chips OF-glue is still needed, though with this change the glue will
be much smaller.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Bill Gatliff <bgat@billgatliff.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Jean Delvare <khali@linux-fr.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
CC: linux-kernel@vger.kernel.org
CC: devicetree-discuss@lists.ozlabs.org
Diffstat (limited to 'include/linux/of_gpio.h')
-rw-r--r-- | include/linux/of_gpio.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h index 1020587efed1..6598c04dab01 100644 --- a/include/linux/of_gpio.h +++ b/include/linux/of_gpio.h | |||
@@ -52,9 +52,9 @@ extern unsigned int of_gpio_count(struct device_node *np); | |||
52 | 52 | ||
53 | extern int of_mm_gpiochip_add(struct device_node *np, | 53 | extern int of_mm_gpiochip_add(struct device_node *np, |
54 | struct of_mm_gpio_chip *mm_gc); | 54 | struct of_mm_gpio_chip *mm_gc); |
55 | extern int of_gpio_simple_xlate(struct gpio_chip *gc, struct device_node *np, | ||
56 | const void *gpio_spec, u32 *flags); | ||
57 | 55 | ||
56 | extern void of_gpiochip_add(struct gpio_chip *gc); | ||
57 | extern void of_gpiochip_remove(struct gpio_chip *gc); | ||
58 | extern struct gpio_chip *of_node_to_gpiochip(struct device_node *np); | 58 | extern struct gpio_chip *of_node_to_gpiochip(struct device_node *np); |
59 | 59 | ||
60 | #else /* CONFIG_OF_GPIO */ | 60 | #else /* CONFIG_OF_GPIO */ |
@@ -71,6 +71,9 @@ static inline unsigned int of_gpio_count(struct device_node *np) | |||
71 | return 0; | 71 | return 0; |
72 | } | 72 | } |
73 | 73 | ||
74 | static inline void of_gpiochip_add(struct gpio_chip *gc) { } | ||
75 | static inline void of_gpiochip_remove(struct gpio_chip *gc) { } | ||
76 | |||
74 | #endif /* CONFIG_OF_GPIO */ | 77 | #endif /* CONFIG_OF_GPIO */ |
75 | 78 | ||
76 | /** | 79 | /** |