diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2011-07-26 11:19:06 +0200 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2011-07-28 09:32:04 +0200 |
commit | 7e71330169d8056536b299290544980bccc6b300 (patch) | |
tree | 7dab4954a7683e35bbf66adadd89b26971960311 /include | |
parent | irq: add irq_domain translation infrastructure (diff) | |
download | linux-7e71330169d8056536b299290544980bccc6b300.tar.xz linux-7e71330169d8056536b299290544980bccc6b300.zip |
dt/irq: add irq_domain_generate_simple() helper
irq_domain_generate_simple() is an easy way to generate an irq translation
domain for simple irq controllers. It assumes a flat 1:1 mapping from
hardware irq number to an offset of the first linux irq number assigned
to the controller
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/irqdomain.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index 8f2c10a784a4..e807ad687a07 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -16,6 +16,7 @@ #define _LINUX_IRQDOMAIN_H #include <linux/irq.h> +#include <linux/mod_devicetable.h> #ifdef CONFIG_IRQ_DOMAIN struct device_node; @@ -78,4 +79,13 @@ extern void irq_domain_add(struct irq_domain *domain); extern void irq_domain_del(struct irq_domain *domain); #endif /* CONFIG_IRQ_DOMAIN */ +#if defined(CONFIG_IRQ_DOMAIN) && defined(CONFIG_OF_IRQ) +extern void irq_domain_add_simple(struct device_node *controller, int irq_base); +extern void irq_domain_generate_simple(const struct of_device_id *match, + u64 phys_base, unsigned int irq_start); +#else /* CONFIG_IRQ_DOMAIN && CONFIG_OF_IRQ */ +static inline void irq_domain_generate_simple(const struct of_device_id *match, + u64 phys_base, unsigned int irq_start) { } +#endif /* CONFIG_IRQ_DOMAIN && CONFIG_OF_IRQ */ + #endif /* _LINUX_IRQDOMAIN_H */ |