diff options
-rw-r--r-- | Documentation/devicetree/bindings/interrupt-controller/ti,omap-intc-irq.txt | 28 | ||||
-rw-r--r-- | drivers/irqchip/irq-omap-intc.c | 14 | ||||
-rw-r--r-- | include/linux/irqchip/irq-omap-intc.h | 1 |
3 files changed, 33 insertions, 10 deletions
diff --git a/Documentation/devicetree/bindings/interrupt-controller/ti,omap-intc-irq.txt b/Documentation/devicetree/bindings/interrupt-controller/ti,omap-intc-irq.txt new file mode 100644 index 000000000000..38ce5d037722 --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/ti,omap-intc-irq.txt | |||
@@ -0,0 +1,28 @@ | |||
1 | Omap2/3 intc controller | ||
2 | |||
3 | On TI omap2 and 3 the intc interrupt controller can provide | ||
4 | 96 or 128 IRQ signals to the ARM host depending on the SoC. | ||
5 | |||
6 | Required Properties: | ||
7 | - compatible: should be one of | ||
8 | "ti,omap2-intc" | ||
9 | "ti,omap3-intc" | ||
10 | "ti,dm814-intc" | ||
11 | "ti,dm816-intc" | ||
12 | "ti,am33xx-intc" | ||
13 | |||
14 | - interrupt-controller : Identifies the node as an interrupt controller | ||
15 | - #interrupt-cells : Specifies the number of cells needed to encode interrupt | ||
16 | source, should be 1 for intc | ||
17 | - interrupts: interrupt reference to primary interrupt controller | ||
18 | |||
19 | Please refer to interrupts.txt in this directory for details of the common | ||
20 | Interrupt Controllers bindings used by client devices. | ||
21 | |||
22 | Example: | ||
23 | intc: interrupt-controller@48200000 { | ||
24 | compatible = "ti,omap3-intc"; | ||
25 | interrupt-controller; | ||
26 | #interrupt-cells = <1>; | ||
27 | reg = <0x48200000 0x1000>; | ||
28 | }; | ||
diff --git a/drivers/irqchip/irq-omap-intc.c b/drivers/irqchip/irq-omap-intc.c index c03f140acbae..b444d0e48f1f 100644 --- a/drivers/irqchip/irq-omap-intc.c +++ b/drivers/irqchip/irq-omap-intc.c | |||
@@ -380,14 +380,6 @@ void __init omap3_init_irq(void) | |||
380 | set_handle_irq(omap_intc_handle_irq); | 380 | set_handle_irq(omap_intc_handle_irq); |
381 | } | 381 | } |
382 | 382 | ||
383 | void __init ti81xx_init_irq(void) | ||
384 | { | ||
385 | omap_nr_irqs = 96; | ||
386 | omap_nr_pending = 4; | ||
387 | omap_init_irq(OMAP34XX_IC_BASE, NULL); | ||
388 | set_handle_irq(omap_intc_handle_irq); | ||
389 | } | ||
390 | |||
391 | static int __init intc_of_init(struct device_node *node, | 383 | static int __init intc_of_init(struct device_node *node, |
392 | struct device_node *parent) | 384 | struct device_node *parent) |
393 | { | 385 | { |
@@ -399,7 +391,9 @@ static int __init intc_of_init(struct device_node *node, | |||
399 | if (WARN_ON(!node)) | 391 | if (WARN_ON(!node)) |
400 | return -ENODEV; | 392 | return -ENODEV; |
401 | 393 | ||
402 | if (of_device_is_compatible(node, "ti,am33xx-intc")) { | 394 | if (of_device_is_compatible(node, "ti,dm814-intc") || |
395 | of_device_is_compatible(node, "ti,dm816-intc") || | ||
396 | of_device_is_compatible(node, "ti,am33xx-intc")) { | ||
403 | omap_nr_irqs = 128; | 397 | omap_nr_irqs = 128; |
404 | omap_nr_pending = 4; | 398 | omap_nr_pending = 4; |
405 | } | 399 | } |
@@ -415,4 +409,6 @@ static int __init intc_of_init(struct device_node *node, | |||
415 | 409 | ||
416 | IRQCHIP_DECLARE(omap2_intc, "ti,omap2-intc", intc_of_init); | 410 | IRQCHIP_DECLARE(omap2_intc, "ti,omap2-intc", intc_of_init); |
417 | IRQCHIP_DECLARE(omap3_intc, "ti,omap3-intc", intc_of_init); | 411 | IRQCHIP_DECLARE(omap3_intc, "ti,omap3-intc", intc_of_init); |
412 | IRQCHIP_DECLARE(dm814x_intc, "ti,dm814-intc", intc_of_init); | ||
413 | IRQCHIP_DECLARE(dm816x_intc, "ti,dm816-intc", intc_of_init); | ||
418 | IRQCHIP_DECLARE(am33xx_intc, "ti,am33xx-intc", intc_of_init); | 414 | IRQCHIP_DECLARE(am33xx_intc, "ti,am33xx-intc", intc_of_init); |
diff --git a/include/linux/irqchip/irq-omap-intc.h b/include/linux/irqchip/irq-omap-intc.h index e06b370cfc0d..bda426ab0ab7 100644 --- a/include/linux/irqchip/irq-omap-intc.h +++ b/include/linux/irqchip/irq-omap-intc.h | |||
@@ -20,7 +20,6 @@ | |||
20 | 20 | ||
21 | void omap2_init_irq(void); | 21 | void omap2_init_irq(void); |
22 | void omap3_init_irq(void); | 22 | void omap3_init_irq(void); |
23 | void ti81xx_init_irq(void); | ||
24 | 23 | ||
25 | int omap_irq_pending(void); | 24 | int omap_irq_pending(void); |
26 | void omap_intc_save_context(void); | 25 | void omap_intc_save_context(void); |