pinctrl: meson: use gpio-ranges from DT
When trying to add a gpio-hog, we enter a weird loop where the gpio-ranges is needed when gpiochip_add_data() is called but in the current implementation the ranges are added from the driver afterwards. A simple solution is to rely on the DR gpio-ranges attribute and remove the call to gpiochip_add_pin_range(). Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
5fb7edb38d
commit
c7fc5fbafa
|
@ -555,22 +555,10 @@ static int meson_gpiolib_register(struct meson_pinctrl *pc)
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(pc->dev, "can't add gpio chip %s\n",
|
dev_err(pc->dev, "can't add gpio chip %s\n",
|
||||||
pc->data->name);
|
pc->data->name);
|
||||||
goto fail;
|
return ret;
|
||||||
}
|
|
||||||
|
|
||||||
ret = gpiochip_add_pin_range(&pc->chip, dev_name(pc->dev),
|
|
||||||
0, pc->data->pin_base,
|
|
||||||
pc->chip.ngpio);
|
|
||||||
if (ret) {
|
|
||||||
dev_err(pc->dev, "can't add pin range\n");
|
|
||||||
goto fail;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
fail:
|
|
||||||
gpiochip_remove(&pc->chip);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct regmap_config meson_regmap_config = {
|
static struct regmap_config meson_regmap_config = {
|
||||||
|
|
Loading…
Reference in a new issue