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

Commit f3066339 authored by Vladimir Zapolskiy's avatar Vladimir Zapolskiy Committed by Linus Walleij
Browse files

gpio: moxart: get value of output gpio from generic driver



Adding a BGPIOF_READ_OUTPUT_REG_SET initialization flag to GPIO
generic MMIO driver makes possible to remove a private get() value
function from the driver.

Signed-off-by: default avatarVladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent b19e7f51
Loading
Loading
Loading
Loading
+3 −14
Original line number Diff line number Diff line
@@ -39,17 +39,6 @@ static void moxart_gpio_free(struct gpio_chip *chip, unsigned offset)
	pinctrl_free_gpio(offset);
}

static int moxart_gpio_get(struct gpio_chip *chip, unsigned offset)
{
	struct bgpio_chip *bgc = to_bgpio_chip(chip);
	u32 ret = bgc->read_reg(bgc->reg_dir);

	if (ret & BIT(offset))
		return !!(bgc->read_reg(bgc->reg_set) & BIT(offset));
	else
		return !!(bgc->read_reg(bgc->reg_dat) & BIT(offset));
}

static int moxart_gpio_probe(struct platform_device *pdev)
{
	struct device *dev = &pdev->dev;
@@ -69,7 +58,8 @@ static int moxart_gpio_probe(struct platform_device *pdev)

	ret = bgpio_init(bgc, dev, 4, base + GPIO_DATA_IN,
			 base + GPIO_DATA_OUT, NULL,
		    base + GPIO_PIN_DIRECTION, NULL, 0);
			 base + GPIO_PIN_DIRECTION, NULL,
			 BGPIOF_READ_OUTPUT_REG_SET);
	if (ret) {
		dev_err(&pdev->dev, "bgpio_init failed\n");
		return ret;
@@ -78,7 +68,6 @@ static int moxart_gpio_probe(struct platform_device *pdev)
	bgc->gc.label = "moxart-gpio";
	bgc->gc.request = moxart_gpio_request;
	bgc->gc.free = moxart_gpio_free;
	bgc->gc.get = moxart_gpio_get;
	bgc->data = bgc->read_reg(bgc->reg_set);
	bgc->gc.base = 0;
	bgc->gc.ngpio = 32;