pinctrl/nomadik: always use the simple irqdomain

Since the simple irqdomain will fall back to a linear domain
if the first_irq provided is <= 0, just use this, just make
sure the first_irq is negative in the device tree case.

Cc: Rob Herring <rob.herring@calxeda.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
Linus Walleij 2012-10-11 16:33:44 +02:00
parent b721370266
commit 51f58c68a3

View file

@ -1281,6 +1281,7 @@ static int __devinit nmk_gpio_probe(struct platform_device *dev)
struct clk *clk;
int secondary_irq;
void __iomem *base;
int irq_start = -1;
int irq;
int ret;
@ -1384,19 +1385,11 @@ static int __devinit nmk_gpio_probe(struct platform_device *dev)
platform_set_drvdata(dev, 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;
if (!np)
irq_start = NOMADIK_GPIO_TO_IRQ(pdata->first_gpio);
nmk_chip->domain = irq_domain_add_simple(NULL,
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;