Commit 5b9b2b52 authored by Mathias Kresin's avatar Mathias Kresin Committed by Linus Walleij
Browse files

gpio: stp-xway: Implement get callback



Add an implementation to get the current GPIO state.

The callback is used by the leds-gpio driver for example, in case the
current LED/GPIO state should be kept during driver load.

Signed-off-by: default avatarMathias Kresin <dev@kresin.me>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent bac5c3b8
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -90,6 +90,20 @@ struct xway_stp {
	u8 reserved;	/* mask out the hw driven bits in gpio_request */
};

/**
 * xway_stp_get() - gpio_chip->get - get gpios.
 * @gc:     Pointer to gpio_chip device structure.
 * @gpio:   GPIO signal number.
 *
 * Gets the shadow value.
 */
static int xway_stp_get(struct gpio_chip *gc, unsigned int gpio)
{
	struct xway_stp *chip = gpiochip_get_data(gc);

	return (xway_stp_r32(chip->virt, XWAY_STP_CPU0) & BIT(gpio));
}

/**
 * xway_stp_set() - gpio_chip->set - set gpios.
 * @gc:     Pointer to gpio_chip device structure.
@@ -215,6 +229,7 @@ static int xway_stp_probe(struct platform_device *pdev)
	chip->gc.parent = &pdev->dev;
	chip->gc.label = "stp-xway";
	chip->gc.direction_output = xway_stp_dir_out;
	chip->gc.get = xway_stp_get;
	chip->gc.set = xway_stp_set;
	chip->gc.request = xway_stp_request;
	chip->gc.base = -1;