|
@@ -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;
|