| /* |
| * Derived from arch/i386/kernel/irq.c |
| * Copyright (C) 1992 Linus Torvalds |
| * Adapted from arch/i386 by Gary Thomas |
| * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org) |
| * Updated and modified by Cort Dougan <cort@fsmlabs.com> |
| * Copyright (C) 1996-2001 Cort Dougan |
| * Adapted for Power Macintosh by Paul Mackerras |
| * Copyright (C) 1996 Paul Mackerras (paulus@cs.anu.edu.au) |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation; either version |
| * 2 of the License, or (at your option) any later version. |
| * |
| * This file contains the code used to make IRQ descriptions in the |
| * device tree to actual irq numbers on an interrupt controller |
| * driver. |
| */ |
| |
| #include <linux/errno.h> |
| #include <linux/module.h> |
| #include <linux/of.h> |
| #include <linux/of_irq.h> |
| #include <linux/string.h> |
| |
| /** |
| * irq_of_parse_and_map - Parse and map an interrupt into linux virq space |
| * @device: Device node of the device whose interrupt is to be mapped |
| * @index: Index of the interrupt to map |
| * |
| * This function is a wrapper that chains of_irq_map_one() and |
| * irq_create_of_mapping() to make things easier to callers |
| */ |
| unsigned int irq_of_parse_and_map(struct device_node *dev, int index) |
| { |
| struct of_irq oirq; |
| |
| if (of_irq_map_one(dev, index, &oirq)) |
| return NO_IRQ; |
| |
| return irq_create_of_mapping(oirq.controller, oirq.specifier, |
| oirq.size); |
| } |
| EXPORT_SYMBOL_GPL(irq_of_parse_and_map); |