提交 108d23e3 编写于 作者: T Timur Tabi 提交者: Linus Walleij

gpiolib: request the gpio before querying its direction

Before querying a GPIO to determine its direction, the GPIO should be
formally requested.  This allows the GPIO driver to block access to
unavailable GPIOs, which makes it easier for some drivers to support
sparse GPIO maps.
Signed-off-by: NTimur Tabi <timur@codeaurora.org>
Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
上级 b2dc4110
......@@ -1201,6 +1201,14 @@ int gpiochip_add_data(struct gpio_chip *chip, void *data)
struct gpio_desc *desc = &gdev->descs[i];
desc->gdev = gdev;
if (chip->request) {
status = chip->request(chip, i);
if (status < 0)
/* The GPIO is unavailable, so skip it */
continue;
}
/*
* REVISIT: most hardware initializes GPIOs as inputs
* (often with pullups enabled) so power usage is
......@@ -1226,6 +1234,9 @@ int gpiochip_add_data(struct gpio_chip *chip, void *data)
*/
set_bit(FLAG_IS_OUT, &desc->flags);
}
if (chip->free)
chip->free(chip, i);
}
#ifdef CONFIG_PINCTRL
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册