Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 108d23e3 authored by Timur Tabi's avatar Timur Tabi Committed by Linus Walleij
Browse files

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: default avatarTimur Tabi <timur@codeaurora.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent b2dc4110
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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