diff options
Diffstat (limited to 'include/linux/of_irq.h')
-rw-r--r-- | include/linux/of_irq.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h index 0e37c05b7dd8..5929781c104d 100644 --- a/include/linux/of_irq.h +++ b/include/linux/of_irq.h | |||
@@ -4,6 +4,8 @@ | |||
4 | #if defined(CONFIG_OF) | 4 | #if defined(CONFIG_OF) |
5 | struct of_irq; | 5 | struct of_irq; |
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <linux/errno.h> | ||
8 | #include <linux/ioport.h> | ||
7 | #include <linux/of.h> | 9 | #include <linux/of.h> |
8 | 10 | ||
9 | /* | 11 | /* |
@@ -30,11 +32,38 @@ struct of_irq { | |||
30 | u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */ | 32 | u32 specifier[OF_MAX_IRQ_SPEC]; /* Specifier copy */ |
31 | }; | 33 | }; |
32 | 34 | ||
35 | /* | ||
36 | * Workarounds only applied to 32bit powermac machines | ||
37 | */ | ||
38 | #define OF_IMAP_OLDWORLD_MAC 0x00000001 | ||
39 | #define OF_IMAP_NO_PHANDLE 0x00000002 | ||
40 | |||
41 | #if defined(CONFIG_PPC32) && defined(CONFIG_PPC_PMAC) | ||
42 | extern unsigned int of_irq_workarounds; | ||
43 | extern struct device_node *of_irq_dflt_pic; | ||
44 | extern int of_irq_map_oldworld(struct device_node *device, int index, | ||
45 | struct of_irq *out_irq); | ||
46 | #else /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ | ||
47 | #define of_irq_workarounds (0) | ||
48 | #define of_irq_dflt_pic (NULL) | ||
49 | static inline int of_irq_map_oldworld(struct device_node *device, int index, | ||
50 | struct of_irq *out_irq) | ||
51 | { | ||
52 | return -EINVAL; | ||
53 | } | ||
54 | #endif /* CONFIG_PPC32 && CONFIG_PPC_PMAC */ | ||
55 | |||
56 | |||
57 | extern int of_irq_map_raw(struct device_node *parent, const u32 *intspec, | ||
58 | u32 ointsize, const u32 *addr, | ||
59 | struct of_irq *out_irq); | ||
33 | extern int of_irq_map_one(struct device_node *device, int index, | 60 | extern int of_irq_map_one(struct device_node *device, int index, |
34 | struct of_irq *out_irq); | 61 | struct of_irq *out_irq); |
35 | extern unsigned int irq_create_of_mapping(struct device_node *controller, | 62 | extern unsigned int irq_create_of_mapping(struct device_node *controller, |
36 | const u32 *intspec, | 63 | const u32 *intspec, |
37 | unsigned int intsize); | 64 | unsigned int intsize); |
65 | extern int of_irq_to_resource(struct device_node *dev, int index, | ||
66 | struct resource *r); | ||
38 | 67 | ||
39 | #endif /* CONFIG_OF_IRQ */ | 68 | #endif /* CONFIG_OF_IRQ */ |
40 | #endif /* CONFIG_OF */ | 69 | #endif /* CONFIG_OF */ |