aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl
diff options
context:
space:
mode:
authorChristian Ruppert <christian.ruppert@abilis.com>2013-10-15 09:37:54 -0400
committerLinus Walleij <linus.walleij@linaro.org>2013-10-16 09:33:50 -0400
commit586a87e6edc936d6d3c3585af504b33b9c3f0a06 (patch)
treee3a8b9960ef9b6f9e28eaf235790889f5ddf886e /drivers/pinctrl
parentc8ce878206076b159ee9488133aa51314570da38 (diff)
pinctrl/gpio: non-linear GPIO ranges accesible from gpiolib
This patch adds the infrastructure required to register non-linear gpio ranges through gpiolib and the standard GPIO device tree bindings. Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl')
-rw-r--r--drivers/pinctrl/core.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 92f86ab30a13..5ee61a470016 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -462,6 +462,20 @@ struct pinctrl_dev *pinctrl_find_and_add_gpio_range(const char *devname,
462} 462}
463EXPORT_SYMBOL_GPL(pinctrl_find_and_add_gpio_range); 463EXPORT_SYMBOL_GPL(pinctrl_find_and_add_gpio_range);
464 464
465int pinctrl_get_group_pins(struct pinctrl_dev *pctldev, const char *pin_group,
466 const unsigned **pins, unsigned *num_pins)
467{
468 const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
469 int gs;
470
471 gs = pinctrl_get_group_selector(pctldev, pin_group);
472 if (gs < 0)
473 return gs;
474
475 return pctlops->get_group_pins(pctldev, gs, pins, num_pins);
476}
477EXPORT_SYMBOL_GPL(pinctrl_get_group_pins);
478
465/** 479/**
466 * pinctrl_find_gpio_range_from_pin() - locate the GPIO range for a pin 480 * pinctrl_find_gpio_range_from_pin() - locate the GPIO range for a pin
467 * @pctldev: the pin controller device to look in 481 * @pctldev: the pin controller device to look in