Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 269407
b: refs/heads/master
c: 257af9f
h: refs/heads/master
i:
  269405: 911c2df
  269403: a7c52a6
  269399: bb157d9
  269391: 5479660
  269375: 1f9a88c
v: v3
  • Loading branch information
Linus Walleij authored and Russell King committed Aug 22, 2011
1 parent e43a3dc commit 1e8d79f
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5f3fcf9649dbb010ccac41259d04147775ec8fc2
refs/heads/master: 257af9f9725aa8a863b306659208a031135d59e7
9 changes: 1 addition & 8 deletions trunk/arch/arm/mach-ep93xx/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,7 @@
/* maximum value for irq capable line identifiers */
#define EP93XX_GPIO_LINE_MAX_IRQ EP93XX_GPIO_LINE_F(7)

/*
* Map GPIO A0..A7 (0..7) to irq 64..71,
* B0..B7 (7..15) to irq 72..79, and
* F0..F7 (16..24) to irq 80..87.
*/
#define gpio_to_irq(gpio) \
(((gpio) <= EP93XX_GPIO_LINE_MAX_IRQ) ? (64 + (gpio)) : -EINVAL)

#define gpio_to_irq __gpio_to_irq
#define irq_to_gpio(irq) ((irq) - gpio_to_irq(0))

#endif
19 changes: 18 additions & 1 deletion trunk/drivers/gpio/gpio-ep93xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,21 @@ static int ep93xx_gpio_set_debounce(struct gpio_chip *chip,
return 0;
}

/*
* Map GPIO A0..A7 (0..7) to irq 64..71,
* B0..B7 (7..15) to irq 72..79, and
* F0..F7 (16..24) to irq 80..87.
*/
static int ep93xx_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
{
int gpio = chip->base + offset;

if (gpio > EP93XX_GPIO_LINE_MAX_IRQ)
return -EINVAL;

return 64 + gpio;
}

static int ep93xx_gpio_add_bank(struct bgpio_chip *bgc, struct device *dev,
void __iomem *mmio_base, struct ep93xx_gpio_bank *bank)
{
Expand All @@ -321,8 +336,10 @@ static int ep93xx_gpio_add_bank(struct bgpio_chip *bgc, struct device *dev,
bgc->gc.label = bank->label;
bgc->gc.base = bank->base;

if (bank->has_debounce)
if (bank->has_debounce) {
bgc->gc.set_debounce = ep93xx_gpio_set_debounce;
bgc->gc.to_irq = ep93xx_gpio_to_irq;
}

return gpiochip_add(&bgc->gc);
}
Expand Down

0 comments on commit 1e8d79f

Please sign in to comment.