ARM: shmobile: irqpin: add a DT property to enable masking on parent
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Wed, 19 Jun 2013 05:53:09 +0000 (07:53 +0200)
committerSimon Horman <horms+renesas@verge.net.au>
Wed, 19 Jun 2013 12:27:31 +0000 (21:27 +0900)
To disable spurious interrupts, that get triggered on certain hardware, the
irqpin driver masks them on the parent interrupt controller. To specify
such broken devices a .control_parent parameter can be provided in the
platform data. In the DT case we need a property, to do the same.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Documentation/devicetree/bindings/interrupt-controller/renesas,intc-irqpin.txt
drivers/irqchip/irq-renesas-intc-irqpin.c

index 66fcaf5b09ff3186a9d14c25829f2451a8175d9e..1f8b0c507c26cb4c0a7f3341aa1000a7df3c4dea 100644 (file)
@@ -12,3 +12,5 @@ Optional properties:
   properties
 - sense-bitfield-width: width of a single sense bitfield in the SENSE register,
   if different from the default 4 bits
+- control-parent: disable and enable interrupts on the parent interrupt
+  controller, needed for some broken implementations
index 4aca1b2bcc489dcf16d40dbc346649d1d89e42ad..82cec63a90112e184c96a2e21e612df977adf7b7 100644 (file)
@@ -348,11 +348,14 @@ static int intc_irqpin_probe(struct platform_device *pdev)
        }
 
        /* deal with driver instance configuration */
-       if (pdata)
+       if (pdata) {
                memcpy(&p->config, pdata, sizeof(*pdata));
-       else
+       } else {
                of_property_read_u32(pdev->dev.of_node, "sense-bitfield-width",
                                     &p->config.sense_bitfield_width);
+               p->config.control_parent = of_property_read_bool(pdev->dev.of_node,
+                                                                "control-parent");
+       }
        if (!p->config.sense_bitfield_width)
                p->config.sense_bitfield_width = 4; /* default to 4 bits */