mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 17:14:14 +08:00
gpio: vf610: Simplify vf610_gpio_get()
Both branches of the if statement do exactly the same thing, just at different offsets. Simplify the code a bit by moving shared action code outside of the if statement. No functional change intended. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com> Cc: Chris Healy <cphealy@gmail.com> Cc: Andrew Lunn <andrew@lunn.ch> Cc: Heiner Kallweit <hkallweit1@gmail.com> Cc: Fabio Estevam <festevam@gmail.com> Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
This commit is contained in:
parent
a262555bc6
commit
4a8909d022
@ -85,17 +85,15 @@ static int vf610_gpio_get(struct gpio_chip *gc, unsigned int gpio)
|
||||
{
|
||||
struct vf610_gpio_port *port = gpiochip_get_data(gc);
|
||||
unsigned long mask = BIT(gpio);
|
||||
void __iomem *addr;
|
||||
unsigned long offset = GPIO_PDIR;
|
||||
|
||||
if (port->sdata && port->sdata->have_paddr) {
|
||||
mask &= vf610_gpio_readl(port->gpio_base + GPIO_PDDR);
|
||||
addr = mask ? port->gpio_base + GPIO_PDOR :
|
||||
port->gpio_base + GPIO_PDIR;
|
||||
return !!(vf610_gpio_readl(addr) & BIT(gpio));
|
||||
} else {
|
||||
return !!(vf610_gpio_readl(port->gpio_base + GPIO_PDIR)
|
||||
& BIT(gpio));
|
||||
if (mask)
|
||||
offset = GPIO_PDOR;
|
||||
}
|
||||
|
||||
return !!(vf610_gpio_readl(port->gpio_base + offset) & BIT(gpio));
|
||||
}
|
||||
|
||||
static void vf610_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
|
||||
|
Loading…
Reference in New Issue
Block a user