diff options
author | Benoit Cousson <b-cousson@ti.com> | 2011-12-05 09:23:56 -0500 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2012-01-04 02:33:15 -0500 |
commit | 661db794eb8179c7bea02f159bb691a2fff4a8e0 (patch) | |
tree | 810f4b85c9089c3fd51dcb1d1f9b872c62972f6c | |
parent | 35f3da32af0e8970cc41288d4a7e3bd32399900e (diff) |
of/irq: Add interrupts-names property to name an irq resource
Add a interrupts-names property to allow the possibility to provide a name
to any interrupts entries. If the name is available, use it to name the
resource, otherwise keep the device full name.
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Rob Herring <rob.herring@calxeda.com>
[grant.likely: use "interrupt-names" and tidy documentation]
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
-rw-r--r-- | Documentation/devicetree/bindings/resource-names.txt | 4 | ||||
-rw-r--r-- | drivers/of/irq.c | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/resource-names.txt b/Documentation/devicetree/bindings/resource-names.txt index 8405b956acaa..e280fef6f265 100644 --- a/Documentation/devicetree/bindings/resource-names.txt +++ b/Documentation/devicetree/bindings/resource-names.txt | |||
@@ -32,6 +32,8 @@ l4-abe { | |||
32 | <1 0x10 0x10>, <1 0x20 0x10>; | 32 | <1 0x10 0x10>, <1 0x20 0x10>; |
33 | reg-names = "mpu", "dat", | 33 | reg-names = "mpu", "dat", |
34 | "dma", "dma_dat"; | 34 | "dma", "dma_dat"; |
35 | interrupts = <11>, <12>; | ||
36 | interrupt-names = "rx", "tx"; | ||
35 | }; | 37 | }; |
36 | 38 | ||
37 | timer { | 39 | timer { |
@@ -47,4 +49,6 @@ usb { | |||
47 | reg = <0x4a064000 0x800>, <0x4a064800 0x200>, | 49 | reg = <0x4a064000 0x800>, <0x4a064800 0x200>, |
48 | <0x4a064c00 0x200>; | 50 | <0x4a064c00 0x200>; |
49 | reg-names = "config", "ohci", "ehci"; | 51 | reg-names = "config", "ohci", "ehci"; |
52 | interrupts = <14>, <15>; | ||
53 | interrupt-names = "ohci", "ehci"; | ||
50 | }; | 54 | }; |
diff --git a/drivers/of/irq.c b/drivers/of/irq.c index 0f0cfa3bca30..9cf00602f566 100644 --- a/drivers/of/irq.c +++ b/drivers/of/irq.c | |||
@@ -341,9 +341,18 @@ int of_irq_to_resource(struct device_node *dev, int index, struct resource *r) | |||
341 | /* Only dereference the resource if both the | 341 | /* Only dereference the resource if both the |
342 | * resource and the irq are valid. */ | 342 | * resource and the irq are valid. */ |
343 | if (r && irq) { | 343 | if (r && irq) { |
344 | const char *name = NULL; | ||
345 | |||
346 | /* | ||
347 | * Get optional "interrupts-names" property to add a name | ||
348 | * to the resource. | ||
349 | */ | ||
350 | of_property_read_string_index(dev, "interrupt-names", index, | ||
351 | &name); | ||
352 | |||
344 | r->start = r->end = irq; | 353 | r->start = r->end = irq; |
345 | r->flags = IORESOURCE_IRQ; | 354 | r->flags = IORESOURCE_IRQ; |
346 | r->name = dev->full_name; | 355 | r->name = name ? name : dev->full_name; |
347 | } | 356 | } |
348 | 357 | ||
349 | return irq; | 358 | return irq; |