Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 360649
b: refs/heads/master
c: 5698c50
h: refs/heads/master
i:
  360647: 7c4ce03
v: v3
  • Loading branch information
James Hogan committed Mar 2, 2013
1 parent f6b06f8 commit fd164b8
Show file tree
Hide file tree
Showing 9 changed files with 1,360 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 63047ea36070d11f902ab7d09a5a18aea037c0f7
refs/heads/master: 5698c50d9da4ab2f57d98c64ea97675dcaf2a608
82 changes: 82 additions & 0 deletions trunk/Documentation/devicetree/bindings/metag/meta-intc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
* Meta External Trigger Controller Binding

This binding specifies what properties must be available in the device tree
representation of a Meta external trigger controller.

Required properties:

- compatible: Specifies the compatibility list for the interrupt controller.
The type shall be <string> and the value shall include "img,meta-intc".

- num-banks: Specifies the number of interrupt banks (each of which can
handle 32 interrupt sources).

- interrupt-controller: The presence of this property identifies the node
as an interupt controller. No property value shall be defined.

- #interrupt-cells: Specifies the number of cells needed to encode an
interrupt source. The type shall be a <u32> and the value shall be 2.

- #address-cells: Specifies the number of cells needed to encode an
address. The type shall be <u32> and the value shall be 0. As such,
'interrupt-map' nodes do not have to specify a parent unit address.

Optional properties:

- no-mask: The controller doesn't have any mask registers.

* Interrupt Specifier Definition

Interrupt specifiers consists of 2 cells encoded as follows:

- <1st-cell>: The interrupt-number that identifies the interrupt source.

- <2nd-cell>: The Linux interrupt flags containing level-sense information,
encoded as follows:
1 = edge triggered
4 = level-sensitive

* Examples

Example 1:

/*
* Meta external trigger block
*/
intc: intc {
// This is an interrupt controller node.
interrupt-controller;

// No address cells so that 'interrupt-map' nodes which
// reference this interrupt controller node do not need a parent
// address specifier.
#address-cells = <0>;

// Two cells to encode interrupt sources.
#interrupt-cells = <2>;

// Number of interrupt banks
num-banks = <2>;

// No HWMASKEXT is available (specify on Chorus2 and Comet ES1)
no-mask;

// Compatible with Meta hardware trigger block.
compatible = "img,meta-intc";
};

Example 2:

/*
* An interrupt generating device that is wired to a Meta external
* trigger block.
*/
uart1: uart@0x02004c00 {
// Interrupt source '5' that is level-sensitive.
// Note that there are only two cells as specified in the
// interrupt parent's '#interrupt-cells' property.
interrupts = <5 4 /* level */>;

// The interrupt controller that this device is wired to.
interrupt-parent = <&intc>;
};
2 changes: 2 additions & 0 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -5040,6 +5040,8 @@ F: arch/metag/
F: Documentation/metag/
F: Documentation/devicetree/bindings/metag/
F: drivers/clocksource/metag_generic.c
F: drivers/irqchip/irq-metag.c
F: drivers/irqchip/irq-metag-ext.c

MICROBLAZE ARCHITECTURE
M: Michal Simek <monstr@monstr.eu>
Expand Down
5 changes: 5 additions & 0 deletions trunk/arch/metag/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/irqchip/metag-ext.h>
#include <linux/irqchip/metag.h>
#include <linux/irqdomain.h>
#include <linux/ratelimit.h>

Expand Down Expand Up @@ -258,6 +260,9 @@ void __init init_IRQ(void)

irq_ctx_init(smp_processor_id());

init_internal_IRQ();
init_external_IRQ();

if (machine_desc->init_irq)
machine_desc->init_irq();
}
Expand Down
2 changes: 2 additions & 0 deletions trunk/drivers/irqchip/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
obj-$(CONFIG_ARCH_BCM2835) += irq-bcm2835.o
obj-$(CONFIG_METAG) += irq-metag-ext.o
obj-$(CONFIG_METAG_PERFCOUNTER_IRQS) += irq-metag.o
obj-$(CONFIG_ARCH_SUNXI) += irq-sunxi.o
obj-$(CONFIG_VERSATILE_FPGA_IRQ) += irq-versatile-fpga.o
obj-$(CONFIG_ARCH_SPEAR3XX) += spear-shirq.o
Loading

0 comments on commit fd164b8

Please sign in to comment.