aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/pinctrl-abx500.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pinctrl/pinctrl-abx500.c')
-rw-r--r--drivers/pinctrl/pinctrl-abx500.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/pinctrl/pinctrl-abx500.c b/drivers/pinctrl/pinctrl-abx500.c
index 9bdfcb97ef57..a9e720ffabfb 100644
--- a/drivers/pinctrl/pinctrl-abx500.c
+++ b/drivers/pinctrl/pinctrl-abx500.c
@@ -272,6 +272,8 @@ static int abx500_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
272static int abx500_gpio_to_irq(struct gpio_chip *chip, unsigned offset) 272static int abx500_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
273{ 273{
274 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip); 274 struct abx500_pinctrl *pct = to_abx500_pinctrl(chip);
275 /* The AB8500 GPIO numbers are off by one */
276 int gpio = offset + 1;
275 int base = pct->irq_base; 277 int base = pct->irq_base;
276 int i; 278 int i;
277 279
@@ -279,8 +281,8 @@ static int abx500_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
279 struct abx500_gpio_irq_cluster *cluster = 281 struct abx500_gpio_irq_cluster *cluster =
280 &pct->irq_cluster[i]; 282 &pct->irq_cluster[i];
281 283
282 if (offset >= cluster->start && offset <= cluster->end) 284 if (gpio >= cluster->start && gpio <= cluster->end)
283 return base + offset - cluster->start; 285 return base + gpio - cluster->start;
284 286
285 /* Advance by the number of gpios in this cluster */ 287 /* Advance by the number of gpios in this cluster */
286 base += cluster->end + cluster->offset - cluster->start + 1; 288 base += cluster->end + cluster->offset - cluster->start + 1;