Commit 03518271 authored by Rayagonda Kokatanur's avatar Rayagonda Kokatanur Committed by Linus Walleij
Browse files

pinctrl: iproc: Add 'get_direction' support

parent 547f073f
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -359,6 +359,15 @@ static int iproc_gpio_direction_output(struct gpio_chip *gc, unsigned gpio,
	return 0;
}

static int iproc_gpio_get_direction(struct gpio_chip *gc, unsigned int gpio)
{
	struct iproc_gpio *chip = gpiochip_get_data(gc);
	unsigned int offset = IPROC_GPIO_REG(gpio, IPROC_GPIO_OUT_EN_OFFSET);
	unsigned int shift = IPROC_GPIO_SHIFT(gpio);

	return !(readl(chip->base + offset) & BIT(shift));
}

static void iproc_gpio_set(struct gpio_chip *gc, unsigned gpio, int val)
{
	struct iproc_gpio *chip = gpiochip_get_data(gc);
@@ -835,6 +844,7 @@ static int iproc_gpio_probe(struct platform_device *pdev)
	gc->free = iproc_gpio_free;
	gc->direction_input = iproc_gpio_direction_input;
	gc->direction_output = iproc_gpio_direction_output;
	gc->get_direction = iproc_gpio_get_direction;
	gc->set = iproc_gpio_set;
	gc->get = iproc_gpio_get;