diff options
author | Tomasz Figa <t.figa@samsung.com> | 2014-07-02 11:41:00 -0400 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2014-07-11 08:08:37 -0400 |
commit | 6c6ce620e08f8764fd9884094afb274e6e85a47a (patch) | |
tree | 38f074ef1c669974368774aca64bc2ea1027a16d | |
parent | 18c28caa17d7127e0391e100a919d9f6c156e974 (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.c | 15 |
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 | ||
785 | static int samsung_gpio_request(struct gpio_chip *chip, unsigned offset) | ||
786 | { | ||
787 | return pinctrl_request_gpio(chip->base + offset); | ||
788 | } | ||
789 | |||
790 | static void samsung_gpio_free(struct gpio_chip *chip, unsigned offset) | ||
791 | { | ||
792 | pinctrl_free_gpio(chip->base + offset); | ||
793 | } | ||
794 | |||
784 | static const struct gpio_chip samsung_gpiolib_chip = { | 795 | static 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, |