aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Figa <t.figa@samsung.com>2014-07-02 11:41:00 -0400
committerLinus Walleij <linus.walleij@linaro.org>2014-07-11 08:08:37 -0400
commit6c6ce620e08f8764fd9884094afb274e6e85a47a (patch)
tree38f074ef1c669974368774aca64bc2ea1027a16d
parent18c28caa17d7127e0391e100a919d9f6c156e974 (diff)
pinctrl: samsung: Handle GPIO request and free using pinctrl helpers
This patch adds .request() and .free() operations to gpio_chip of pinctrl-samsung driver, which call pinctrl request and free helpers to request and free pinctrl pin along with GPIO pin. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--drivers/pinctrl/pinctrl-samsung.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c
index 5740f93d658c..a09d8209ac2c 100644
--- a/drivers/pinctrl/pinctrl-samsung.c
+++ b/drivers/pinctrl/pinctrl-samsung.c
@@ -771,7 +771,8 @@ static int samsung_pinctrl_register(struct platform_device *pdev,
771 pin_bank = &drvdata->ctrl->pin_banks[bank]; 771 pin_bank = &drvdata->ctrl->pin_banks[bank];
772 pin_bank->grange.name = pin_bank->name; 772 pin_bank->grange.name = pin_bank->name;
773 pin_bank->grange.id = bank; 773 pin_bank->grange.id = bank;
774 pin_bank->grange.pin_base = pin_bank->pin_base; 774 pin_bank->grange.pin_base = drvdata->ctrl->base
775 + pin_bank->pin_base;
775 pin_bank->grange.base = pin_bank->gpio_chip.base; 776 pin_bank->grange.base = pin_bank->gpio_chip.base;
776 pin_bank->grange.npins = pin_bank->gpio_chip.ngpio; 777 pin_bank->grange.npins = pin_bank->gpio_chip.ngpio;
777 pin_bank->grange.gc = &pin_bank->gpio_chip; 778 pin_bank->grange.gc = &pin_bank->gpio_chip;
@@ -781,7 +782,19 @@ static int samsung_pinctrl_register(struct platform_device *pdev,
781 return 0; 782 return 0;
782} 783}
783 784
785static int samsung_gpio_request(struct gpio_chip *chip, unsigned offset)
786{
787 return pinctrl_request_gpio(chip->base + offset);
788}
789
790static void samsung_gpio_free(struct gpio_chip *chip, unsigned offset)
791{
792 pinctrl_free_gpio(chip->base + offset);
793}
794
784static const struct gpio_chip samsung_gpiolib_chip = { 795static const struct gpio_chip samsung_gpiolib_chip = {
796 .request = samsung_gpio_request,
797 .free = samsung_gpio_free,
785 .set = samsung_gpio_set, 798 .set = samsung_gpio_set,
786 .get = samsung_gpio_get, 799 .get = samsung_gpio_get,
787 .direction_input = samsung_gpio_direction_input, 800 .direction_input = samsung_gpio_direction_input,