pinctrl/abx500: align GPIO cluster boundaries

Not quite sure how this ever worked. In ab8500_gpio_to_irq() the
GPIO for conversion is passed through as the second argument. If
GPIO13, which is a valid GPIO for IRQ functionality, was received;
it would be rejected by the following guard:

    GPIO_IRQ_CLUSTER(5, 12, 0); /* GPIO numbers start from 1 */

    if (offset >= cluster->start && offset <= cluster->end)
        /* Valid GPIO for IRQ use */

Signed-off-by: Lee Jones <lee.jones@linaro.org>
[Augmented to account for off-by-one problem]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
diff --git a/drivers/pinctrl/pinctrl-abx500.c b/drivers/pinctrl/pinctrl-abx500.c
index 9bdfcb9..a9e720f 100644
--- a/drivers/pinctrl/pinctrl-abx500.c
+++ b/drivers/pinctrl/pinctrl-abx500.c
@@ -272,6 +272,8 @@
 static int abx500_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
 {
 	struct abx500_pinctrl *pct = to_abx500_pinctrl(chip);
+	/* The AB8500 GPIO numbers are off by one */
+	int gpio = offset + 1;
 	int base = pct->irq_base;
 	int i;
 
@@ -279,8 +281,8 @@
 		struct abx500_gpio_irq_cluster *cluster =
 			&pct->irq_cluster[i];
 
-		if (offset >= cluster->start && offset <= cluster->end)
-			return base + offset - cluster->start;
+		if (gpio >= cluster->start && gpio <= cluster->end)
+			return base + gpio - cluster->start;
 
 		/* Advance by the number of gpios in this cluster */
 		base += cluster->end + cluster->offset - cluster->start + 1;