|
@@ -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,
|