diff options
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r-- | include/asm-sparc64/of_device.h | 5 | ||||
-rw-r--r-- | include/asm-sparc64/pbm.h | 3 | ||||
-rw-r--r-- | include/asm-sparc64/prom.h | 8 |
3 files changed, 14 insertions, 2 deletions
diff --git a/include/asm-sparc64/of_device.h b/include/asm-sparc64/of_device.h index 37c5856fae12..a62c7b997d66 100644 --- a/include/asm-sparc64/of_device.h +++ b/include/asm-sparc64/of_device.h | |||
@@ -22,7 +22,8 @@ struct of_device | |||
22 | struct device_node *node; | 22 | struct device_node *node; |
23 | struct device dev; | 23 | struct device dev; |
24 | struct resource resource[PROMREG_MAX]; | 24 | struct resource resource[PROMREG_MAX]; |
25 | unsigned int irq; | 25 | unsigned int irqs[PROMINTR_MAX]; |
26 | int num_irqs; | ||
26 | 27 | ||
27 | void *sysdata; | 28 | void *sysdata; |
28 | 29 | ||
@@ -35,6 +36,8 @@ struct of_device | |||
35 | extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name); | 36 | extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name); |
36 | extern void of_iounmap(void __iomem *base, unsigned long size); | 37 | extern void of_iounmap(void __iomem *base, unsigned long size); |
37 | 38 | ||
39 | extern struct of_device *of_find_device_by_node(struct device_node *); | ||
40 | |||
38 | extern const struct of_device_id *of_match_device( | 41 | extern const struct of_device_id *of_match_device( |
39 | const struct of_device_id *matches, const struct of_device *dev); | 42 | const struct of_device_id *matches, const struct of_device *dev); |
40 | 43 | ||
diff --git a/include/asm-sparc64/pbm.h b/include/asm-sparc64/pbm.h index 83b3c26cd063..dcfa7629358c 100644 --- a/include/asm-sparc64/pbm.h +++ b/include/asm-sparc64/pbm.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <asm/page.h> | 16 | #include <asm/page.h> |
17 | #include <asm/oplib.h> | 17 | #include <asm/oplib.h> |
18 | #include <asm/prom.h> | 18 | #include <asm/prom.h> |
19 | #include <asm/of_device.h> | ||
19 | #include <asm/iommu.h> | 20 | #include <asm/iommu.h> |
20 | 21 | ||
21 | /* The abstraction used here is that there are PCI controllers, | 22 | /* The abstraction used here is that there are PCI controllers, |
@@ -209,7 +210,6 @@ struct pci_controller_info { | |||
209 | 210 | ||
210 | /* Operations which are controller specific. */ | 211 | /* Operations which are controller specific. */ |
211 | void (*scan_bus)(struct pci_controller_info *); | 212 | void (*scan_bus)(struct pci_controller_info *); |
212 | unsigned int (*irq_build)(struct pci_pbm_info *, struct pci_dev *, unsigned int); | ||
213 | void (*base_address_update)(struct pci_dev *, int); | 213 | void (*base_address_update)(struct pci_dev *, int); |
214 | void (*resource_adjust)(struct pci_dev *, struct resource *, struct resource *); | 214 | void (*resource_adjust)(struct pci_dev *, struct resource *, struct resource *); |
215 | 215 | ||
@@ -226,6 +226,7 @@ struct pci_controller_info { | |||
226 | struct pcidev_cookie { | 226 | struct pcidev_cookie { |
227 | struct pci_pbm_info *pbm; | 227 | struct pci_pbm_info *pbm; |
228 | struct device_node *prom_node; | 228 | struct device_node *prom_node; |
229 | struct of_device *op; | ||
229 | struct linux_prom_pci_registers prom_regs[PROMREG_MAX]; | 230 | struct linux_prom_pci_registers prom_regs[PROMREG_MAX]; |
230 | int num_prom_regs; | 231 | int num_prom_regs; |
231 | struct linux_prom_pci_registers prom_assignments[PROMREG_MAX]; | 232 | struct linux_prom_pci_registers prom_assignments[PROMREG_MAX]; |
diff --git a/include/asm-sparc64/prom.h b/include/asm-sparc64/prom.h index aad16c2aa5e8..99671ed6625d 100644 --- a/include/asm-sparc64/prom.h +++ b/include/asm-sparc64/prom.h | |||
@@ -34,6 +34,7 @@ struct property { | |||
34 | unsigned int unique_id; | 34 | unsigned int unique_id; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | struct of_irq_controller; | ||
37 | struct device_node { | 38 | struct device_node { |
38 | char *name; | 39 | char *name; |
39 | char *type; | 40 | char *type; |
@@ -53,6 +54,13 @@ struct device_node { | |||
53 | unsigned long _flags; | 54 | unsigned long _flags; |
54 | void *data; | 55 | void *data; |
55 | unsigned int unique_id; | 56 | unsigned int unique_id; |
57 | |||
58 | struct of_irq_controller *irq_trans; | ||
59 | }; | ||
60 | |||
61 | struct of_irq_controller { | ||
62 | unsigned int (*irq_build)(struct device_node *, unsigned int, void *); | ||
63 | void *data; | ||
56 | }; | 64 | }; |
57 | 65 | ||
58 | /* flag descriptions */ | 66 | /* flag descriptions */ |