pinctrl: samsung: Handle GPIO request and free using pinctrl helpers
authorTomasz Figa <t.figa@samsung.com>
Wed, 2 Jul 2014 15:41:00 +0000 (17:41 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 11 Jul 2014 12:08:37 +0000 (14:08 +0200)
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>
drivers/pinctrl/pinctrl-samsung.c

index 5740f93d658c3134213e6fd28221e11354fee1ca..a09d8209ac2c9b1d5ead3d6c04aeae41925e61aa 100644 (file)
@@ -771,7 +771,8 @@ static int samsung_pinctrl_register(struct platform_device *pdev,
                pin_bank = &drvdata->ctrl->pin_banks[bank];
                pin_bank->grange.name = pin_bank->name;
                pin_bank->grange.id = bank;
-               pin_bank->grange.pin_base = pin_bank->pin_base;
+               pin_bank->grange.pin_base = drvdata->ctrl->base
+                                               + pin_bank->pin_base;
                pin_bank->grange.base = pin_bank->gpio_chip.base;
                pin_bank->grange.npins = pin_bank->gpio_chip.ngpio;
                pin_bank->grange.gc = &pin_bank->gpio_chip;
@@ -781,7 +782,19 @@ static int samsung_pinctrl_register(struct platform_device *pdev,
        return 0;
 }
 
+static int samsung_gpio_request(struct gpio_chip *chip, unsigned offset)
+{
+       return pinctrl_request_gpio(chip->base + offset);
+}
+
+static void samsung_gpio_free(struct gpio_chip *chip, unsigned offset)
+{
+       pinctrl_free_gpio(chip->base + offset);
+}
+
 static const struct gpio_chip samsung_gpiolib_chip = {
+       .request = samsung_gpio_request,
+       .free = samsung_gpio_free,
        .set = samsung_gpio_set,
        .get = samsung_gpio_get,
        .direction_input = samsung_gpio_direction_input,