]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
pinctrl/lantiq: pinconf uses port instead of pin
authorJohn Crispin <blogic@openwrt.org>
Fri, 1 Feb 2013 12:04:55 +0000 (13:04 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 5 Feb 2013 15:17:21 +0000 (16:17 +0100)
The XWAY pinctrl driver invalidly uses the port and not the pin
number to work out the registers and bits to be set for the
opendrain and pullup/down resistors.

Signed-off-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-xway.c

index 5f0eb04c23364de9ff8a427e4ee4af9e9cd7b155..69dec9b191d921ac53529155dd4133b0ef639503 100644 (file)
@@ -441,17 +441,17 @@ static int xway_pinconf_get(struct pinctrl_dev *pctldev,
                if (port == PORT3)
                        reg = GPIO3_OD;
                else
-                       reg = GPIO_OD(port);
+                       reg = GPIO_OD(pin);
                *config = LTQ_PINCONF_PACK(param,
-                       !!gpio_getbit(info->membase[0], reg, PORT_PIN(port)));
+                       !!gpio_getbit(info->membase[0], reg, PORT_PIN(pin)));
                break;
 
        case LTQ_PINCONF_PARAM_PULL:
                if (port == PORT3)
                        reg = GPIO3_PUDEN;
                else
-                       reg = GPIO_PUDEN(port);
-               if (!gpio_getbit(info->membase[0], reg, PORT_PIN(port))) {
+                       reg = GPIO_PUDEN(pin);
+               if (!gpio_getbit(info->membase[0], reg, PORT_PIN(pin))) {
                        *config = LTQ_PINCONF_PACK(param, 0);
                        break;
                }
@@ -459,8 +459,8 @@ static int xway_pinconf_get(struct pinctrl_dev *pctldev,
                if (port == PORT3)
                        reg = GPIO3_PUDSEL;
                else
-                       reg = GPIO_PUDSEL(port);
-               if (!gpio_getbit(info->membase[0], reg, PORT_PIN(port)))
+                       reg = GPIO_PUDSEL(pin);
+               if (!gpio_getbit(info->membase[0], reg, PORT_PIN(pin)))
                        *config = LTQ_PINCONF_PACK(param, 2);
                else
                        *config = LTQ_PINCONF_PACK(param, 1);
@@ -488,29 +488,29 @@ static int xway_pinconf_set(struct pinctrl_dev *pctldev,
                if (port == PORT3)
                        reg = GPIO3_OD;
                else
-                       reg = GPIO_OD(port);
-               gpio_setbit(info->membase[0], reg, PORT_PIN(port));
+                       reg = GPIO_OD(pin);
+               gpio_setbit(info->membase[0], reg, PORT_PIN(pin));
                break;
 
        case LTQ_PINCONF_PARAM_PULL:
                if (port == PORT3)
                        reg = GPIO3_PUDEN;
                else
-                       reg = GPIO_PUDEN(port);
+                       reg = GPIO_PUDEN(pin);
                if (arg == 0) {
-                       gpio_clearbit(info->membase[0], reg, PORT_PIN(port));
+                       gpio_clearbit(info->membase[0], reg, PORT_PIN(pin));
                        break;
                }
-               gpio_setbit(info->membase[0], reg, PORT_PIN(port));
+               gpio_setbit(info->membase[0], reg, PORT_PIN(pin));
 
                if (port == PORT3)
                        reg = GPIO3_PUDSEL;
                else
-                       reg = GPIO_PUDSEL(port);
+                       reg = GPIO_PUDSEL(pin);
                if (arg == 1)
-                       gpio_clearbit(info->membase[0], reg, PORT_PIN(port));
+                       gpio_clearbit(info->membase[0], reg, PORT_PIN(pin));
                else if (arg == 2)
-                       gpio_setbit(info->membase[0], reg, PORT_PIN(port));
+                       gpio_setbit(info->membase[0], reg, PORT_PIN(pin));
                else
                        dev_err(pctldev->dev, "Invalid pull value %d\n", arg);
                break;