aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-sparc64
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-sparc64')
-rw-r--r--include/asm-sparc64/of_device.h5
-rw-r--r--include/asm-sparc64/pbm.h3
-rw-r--r--include/asm-sparc64/prom.h8
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
35extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name); 36extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name);
36extern void of_iounmap(void __iomem *base, unsigned long size); 37extern void of_iounmap(void __iomem *base, unsigned long size);
37 38
39extern struct of_device *of_find_device_by_node(struct device_node *);
40
38extern const struct of_device_id *of_match_device( 41extern 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 {
226struct pcidev_cookie { 226struct 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
37struct of_irq_controller;
37struct device_node { 38struct 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
61struct 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 */