Skip to content

Commit

Permalink
pinctrl/nomadik: use simple or linear IRQ domain
Browse files Browse the repository at this point in the history
This alters the Nomadik pinctrl driver to:

- Call irqdomain_add_linear() for the DT case so we get
  all independent from IRQ numbers in this case.
- Call irqdomain_add_simple() for the legacy case, which
  allocates the IRQ descriptors for the Nomadik pin controller
  dynamically.

Cc: Lee Jones <[email protected]>
Cc: Rob Herring <[email protected]>
Signed-off-by: Linus Walleij <[email protected]>
  • Loading branch information
linusw committed Oct 10, 2012
1 parent 2854d16 commit 6054b9c
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions drivers/pinctrl/pinctrl-nomadik.c
Original file line number Diff line number Diff line change
Expand Up @@ -1371,9 +1371,19 @@ static int __devinit nmk_gpio_probe(struct platform_device *dev)

platform_set_drvdata(dev, nmk_chip);

nmk_chip->domain = irq_domain_add_legacy(np, NMK_GPIO_PER_CHIP,
NOMADIK_GPIO_TO_IRQ(pdata->first_gpio),
0, &nmk_gpio_irq_simple_ops, nmk_chip);
if (np) {
/* The DT case will just grab a set of IRQ numbers */
nmk_chip->domain = irq_domain_add_linear(np, NMK_GPIO_PER_CHIP,
&nmk_gpio_irq_simple_ops, nmk_chip);
} else {
/* Non-DT legacy mode, use hardwired IRQ numbers */
int irq_start;

irq_start = NOMADIK_GPIO_TO_IRQ(pdata->first_gpio);
nmk_chip->domain = irq_domain_add_simple(NULL,
NMK_GPIO_PER_CHIP, irq_start,
&nmk_gpio_irq_simple_ops, nmk_chip);
}
if (!nmk_chip->domain) {
dev_err(&dev->dev, "failed to create irqdomain\n");
ret = -ENOSYS;
Expand Down

0 comments on commit 6054b9c

Please sign in to comment.