gpio: of_get_named_gpio_flags() return -EPROBE_DEFER if GPIO not yet available

of_get_named_gpio_flags() and of_get_named_gpio() return -EPROBE_DEFER if the
respective GPIO is not (yet) available. This is useful if driver's probe()
functions try to get a GPIO whose controller isn't probed yet. Thus, the driver
can be probed again later on.

The function still returns -EINVAL on other errors (parse error or node doesn't
exist). This way, the case of an optional/intentionally missing GPIO is handled
appropriately.

Change-Id: Icf8026b9af2192a287d8609df1054ad4d1a14658
Signed-off-by: Roland Stigge <stigge@antcom.de>
Acked-by: Alexandre Pereira da Silva <aletes.xgr@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[stepanm@codeaurora.org: backported to 3.4]
Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
This commit is contained in:
Roland Stigge
2012-09-06 16:44:52 -07:00
committed by Stepan Moskovchenko
parent 89f11eb907
commit bc841ce96f
+1 -1
View File
@@ -49,7 +49,7 @@ int of_get_named_gpio_flags(struct device_node *np, const char *propname,
if (!gc) {
pr_debug("%s: gpio controller %s isn't registered\n",
np->full_name, gpiospec.np->full_name);
ret = -ENODEV;
ret = -EPROBE_DEFER;
goto err1;
}