diff options
author | Thierry Reding <treding@nvidia.com> | 2014-04-23 11:28:09 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2014-04-28 15:35:10 -0400 |
commit | dd34c37aa3e81715a1ed8da61fa438072428e188 (patch) | |
tree | 6d19c8fb4f275b2bc8a798ffc05b18ca589830b5 /drivers/gpio/gpiolib.c | |
parent | 9370084e685666fe33e9d62707433fa112446b03 (diff) |
gpio: of: Allow -gpio suffix for property names
Many bindings use the -gpio suffix in property names. Support this in
addition to the -gpios suffix when requesting GPIOs using the new
descriptor-based API.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Acked-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpiolib.c')
-rw-r--r-- | drivers/gpio/gpiolib.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 51c09534676b..86eb0467fc5a 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
@@ -2600,17 +2600,23 @@ static struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id, | |||
2600 | unsigned int idx, | 2600 | unsigned int idx, |
2601 | enum gpio_lookup_flags *flags) | 2601 | enum gpio_lookup_flags *flags) |
2602 | { | 2602 | { |
2603 | static const char *suffixes[] = { "gpios", "gpio" }; | ||
2603 | char prop_name[32]; /* 32 is max size of property name */ | 2604 | char prop_name[32]; /* 32 is max size of property name */ |
2604 | enum of_gpio_flags of_flags; | 2605 | enum of_gpio_flags of_flags; |
2605 | struct gpio_desc *desc; | 2606 | struct gpio_desc *desc; |
2607 | unsigned int i; | ||
2606 | 2608 | ||
2607 | if (con_id) | 2609 | for (i = 0; i < ARRAY_SIZE(suffixes); i++) { |
2608 | snprintf(prop_name, 32, "%s-gpios", con_id); | 2610 | if (con_id) |
2609 | else | 2611 | snprintf(prop_name, 32, "%s-%s", con_id, suffixes[i]); |
2610 | snprintf(prop_name, 32, "gpios"); | 2612 | else |
2613 | snprintf(prop_name, 32, "%s", suffixes[i]); | ||
2611 | 2614 | ||
2612 | desc = of_get_named_gpiod_flags(dev->of_node, prop_name, idx, | 2615 | desc = of_get_named_gpiod_flags(dev->of_node, prop_name, idx, |
2613 | &of_flags); | 2616 | &of_flags); |
2617 | if (!IS_ERR(desc)) | ||
2618 | break; | ||
2619 | } | ||
2614 | 2620 | ||
2615 | if (IS_ERR(desc)) | 2621 | if (IS_ERR(desc)) |
2616 | return desc; | 2622 | return desc; |