Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19f92b23 authored by Tony Lindgren's avatar Tony Lindgren Committed by Thomas Gleixner
Browse files

irqchip: omap-intc: Fix support for dm814 and dm816



On dm81xx we have 128 interrupts like am33xx has. Let's add
compatible flags for dm814x and dm816x, and document the
existing binding.

As the dm81xx are booting in device tree only mode, we can now
also remove ti81xx_init_irq() legacy function.

Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Reviewed-by: default avatarFelipe Balbi <balbi@ti.com>
Cc: Brian Hutchinson <b.hutchman@gmail.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Link: http://lkml.kernel.org/r/1421187806-6804-2-git-send-email-tony@atomide.com


Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent cdb647a7
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
Omap2/3 intc controller

On TI omap2 and 3 the intc interrupt controller can provide
96 or 128 IRQ signals to the ARM host depending on the SoC.

Required Properties:
- compatible: should be one of
			"ti,omap2-intc"
			"ti,omap3-intc"
			"ti,dm814-intc"
			"ti,dm816-intc"
			"ti,am33xx-intc"

- interrupt-controller : Identifies the node as an interrupt controller
- #interrupt-cells : Specifies the number of cells needed to encode interrupt
		     source, should be 1 for intc
- interrupts: interrupt reference to primary interrupt controller

Please refer to interrupts.txt in this directory for details of the common
Interrupt Controllers bindings used by client devices.

Example:
	intc: interrupt-controller@48200000 {
		compatible = "ti,omap3-intc";
		interrupt-controller;
		#interrupt-cells = <1>;
		reg = <0x48200000 0x1000>;
	};
+5 −9
Original line number Diff line number Diff line
@@ -380,14 +380,6 @@ void __init omap3_init_irq(void)
	set_handle_irq(omap_intc_handle_irq);
}

void __init ti81xx_init_irq(void)
{
	omap_nr_irqs = 96;
	omap_nr_pending = 4;
	omap_init_irq(OMAP34XX_IC_BASE, NULL);
	set_handle_irq(omap_intc_handle_irq);
}

static int __init intc_of_init(struct device_node *node,
			     struct device_node *parent)
{
@@ -399,7 +391,9 @@ static int __init intc_of_init(struct device_node *node,
	if (WARN_ON(!node))
		return -ENODEV;

	if (of_device_is_compatible(node, "ti,am33xx-intc")) {
	if (of_device_is_compatible(node, "ti,dm814-intc") ||
	    of_device_is_compatible(node, "ti,dm816-intc") ||
	    of_device_is_compatible(node, "ti,am33xx-intc")) {
		omap_nr_irqs = 128;
		omap_nr_pending = 4;
	}
@@ -415,4 +409,6 @@ static int __init intc_of_init(struct device_node *node,

IRQCHIP_DECLARE(omap2_intc, "ti,omap2-intc", intc_of_init);
IRQCHIP_DECLARE(omap3_intc, "ti,omap3-intc", intc_of_init);
IRQCHIP_DECLARE(dm814x_intc, "ti,dm814-intc", intc_of_init);
IRQCHIP_DECLARE(dm816x_intc, "ti,dm816-intc", intc_of_init);
IRQCHIP_DECLARE(am33xx_intc, "ti,am33xx-intc", intc_of_init);
+0 −1
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@

void omap2_init_irq(void);
void omap3_init_irq(void);
void ti81xx_init_irq(void);

int omap_irq_pending(void);
void omap_intc_save_context(void);