summary refs log tree commit diff
path: root/include/asm-sparc64/ebus.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-sparc64/ebus.h')
-rw-r--r--include/asm-sparc64/ebus.h20
1 files changed, 9 insertions, 11 deletions
diff --git a/include/asm-sparc64/ebus.h b/include/asm-sparc64/ebus.h
index 7a408a030f52..a4afe9d5703a 100644
--- a/include/asm-sparc64/ebus.h
+++ b/include/asm-sparc64/ebus.h
@@ -10,13 +10,14 @@
 
 #include <asm/pbm.h>
 #include <asm/oplib.h>
+#include <asm/prom.h>
+#include <asm/of_device.h>
 
 struct linux_ebus_child {
 	struct linux_ebus_child		*next;
 	struct linux_ebus_device	*parent;
 	struct linux_ebus		*bus;
-	int				 prom_node;
-	char				 prom_name[64];
+	struct device_node		*prom_node;
 	struct resource			 resource[PROMREG_MAX];
 	int				 num_addrs;
 	unsigned int			 irqs[PROMINTR_MAX];
@@ -24,32 +25,29 @@ struct linux_ebus_child {
 };
 
 struct linux_ebus_device {
+	struct of_device		ofdev;
 	struct linux_ebus_device	*next;
 	struct linux_ebus_child		*children;
 	struct linux_ebus		*bus;
-	int				 prom_node;
-	char				 prom_name[64];
+	struct device_node		*prom_node;
 	struct resource			 resource[PROMREG_MAX];
 	int				 num_addrs;
 	unsigned int			 irqs[PROMINTR_MAX];
 	int				 num_irqs;
 };
+#define to_ebus_device(d) container_of(d, struct linux_ebus_device, ofdev.dev)
 
 struct linux_ebus {
+	struct of_device		ofdev;
 	struct linux_ebus		*next;
 	struct linux_ebus_device	*devices;
 	struct pci_pbm_info		*parent;
 	struct pci_dev			*self;
 	int				 index;
 	int				 is_rio;
-	int				 prom_node;
-	char				 prom_name[64];
-	struct linux_prom_ebus_ranges	 ebus_ranges[PROMREG_MAX];
-	int				 num_ebus_ranges;
-	struct linux_prom_ebus_intmap	 ebus_intmap[PROMREG_MAX];
-	int				 num_ebus_intmap;
-	struct linux_prom_ebus_intmask	 ebus_intmask;
+	struct device_node		*prom_node;
 };
+#define to_ebus(d) container_of(d, struct linux_ebus, ofdev.dev)
 
 struct ebus_dma_info {
 	spinlock_t	lock;