diff options
| author | David S. Miller <davem@davemloft.net> | 2006-06-29 17:34:50 -0400 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2006-06-29 19:37:12 -0400 |
| commit | cf44bbc26cf1361b692ab68c884f6a0df7da2fdb (patch) | |
| tree | e16c980a25df8a31445a005d75da2c37f30a7b67 /include | |
| parent | 3ae9a3489a4e2ba665a344a9250c2af05b7b0c59 (diff) | |
[SPARC]: Beginnings of generic of_device framework.
The idea is to fully construct the device register and
interrupt values into these of_device objects, and convert
all of SBUS, EBUS, ISA drivers to use this new stuff.
Much ideas and code taken from Ben H.'s powerpc work.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-sparc/of_device.h | 14 | ||||
| -rw-r--r-- | include/asm-sparc/prom.h | 2 | ||||
| -rw-r--r-- | include/asm-sparc64/of_device.h | 14 | ||||
| -rw-r--r-- | include/asm-sparc64/prom.h | 2 |
4 files changed, 28 insertions, 4 deletions
diff --git a/include/asm-sparc/of_device.h b/include/asm-sparc/of_device.h index 4816d102f918..1b43ee5eb5e7 100644 --- a/include/asm-sparc/of_device.h +++ b/include/asm-sparc/of_device.h | |||
| @@ -4,10 +4,12 @@ | |||
| 4 | 4 | ||
| 5 | #include <linux/device.h> | 5 | #include <linux/device.h> |
| 6 | #include <linux/mod_devicetable.h> | 6 | #include <linux/mod_devicetable.h> |
| 7 | #include <asm/openprom.h> | ||
| 7 | #include <asm/prom.h> | 8 | #include <asm/prom.h> |
| 8 | 9 | ||
| 9 | extern struct bus_type ebus_bus_type; | 10 | extern struct bus_type ebus_bus_type; |
| 10 | extern struct bus_type sbus_bus_type; | 11 | extern struct bus_type sbus_bus_type; |
| 12 | extern struct bus_type of_bus_type; | ||
| 11 | 13 | ||
| 12 | /* | 14 | /* |
| 13 | * The of_device is a kind of "base class" that is a superset of | 15 | * The of_device is a kind of "base class" that is a superset of |
| @@ -16,8 +18,16 @@ extern struct bus_type sbus_bus_type; | |||
| 16 | */ | 18 | */ |
| 17 | struct of_device | 19 | struct of_device |
| 18 | { | 20 | { |
| 19 | struct device_node *node; /* OF device node */ | 21 | struct device_node *node; |
| 20 | struct device dev; /* Generic device interface */ | 22 | struct device dev; |
| 23 | struct resource resource[PROMREG_MAX]; | ||
| 24 | unsigned int irq; | ||
| 25 | |||
| 26 | void *sysdata; | ||
| 27 | |||
| 28 | int slot; | ||
| 29 | int portid; | ||
| 30 | int clock_freq; | ||
| 21 | }; | 31 | }; |
| 22 | #define to_of_device(d) container_of(d, struct of_device, dev) | 32 | #define to_of_device(d) container_of(d, struct of_device, dev) |
| 23 | 33 | ||
diff --git a/include/asm-sparc/prom.h b/include/asm-sparc/prom.h index 7032d02d3197..b4a061c5241d 100644 --- a/include/asm-sparc/prom.h +++ b/include/asm-sparc/prom.h | |||
| @@ -69,6 +69,8 @@ struct device_node { | |||
| 69 | #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) | 69 | #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) |
| 70 | #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) | 70 | #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) |
| 71 | 71 | ||
| 72 | #define OF_BAD_ADDR ((u64)-1) | ||
| 73 | |||
| 72 | static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de) | 74 | static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de) |
| 73 | { | 75 | { |
| 74 | dn->pde = de; | 76 | dn->pde = de; |
diff --git a/include/asm-sparc64/of_device.h b/include/asm-sparc64/of_device.h index 024088ef9d27..27bc08671d68 100644 --- a/include/asm-sparc64/of_device.h +++ b/include/asm-sparc64/of_device.h | |||
| @@ -4,11 +4,13 @@ | |||
| 4 | 4 | ||
| 5 | #include <linux/device.h> | 5 | #include <linux/device.h> |
| 6 | #include <linux/mod_devicetable.h> | 6 | #include <linux/mod_devicetable.h> |
| 7 | #include <asm/openprom.h> | ||
| 7 | #include <asm/prom.h> | 8 | #include <asm/prom.h> |
| 8 | 9 | ||
| 9 | extern struct bus_type isa_bus_type; | 10 | extern struct bus_type isa_bus_type; |
| 10 | extern struct bus_type ebus_bus_type; | 11 | extern struct bus_type ebus_bus_type; |
| 11 | extern struct bus_type sbus_bus_type; | 12 | extern struct bus_type sbus_bus_type; |
| 13 | extern struct bus_type of_bus_type; | ||
| 12 | 14 | ||
| 13 | /* | 15 | /* |
| 14 | * The of_device is a kind of "base class" that is a superset of | 16 | * The of_device is a kind of "base class" that is a superset of |
| @@ -17,8 +19,16 @@ extern struct bus_type sbus_bus_type; | |||
| 17 | */ | 19 | */ |
| 18 | struct of_device | 20 | struct of_device |
| 19 | { | 21 | { |
| 20 | struct device_node *node; /* OF device node */ | 22 | struct device_node *node; |
| 21 | struct device dev; /* Generic device interface */ | 23 | struct device dev; |
| 24 | struct resource resource[PROMREG_MAX]; | ||
| 25 | unsigned int irq; | ||
| 26 | |||
| 27 | void *sysdata; | ||
| 28 | |||
| 29 | int slot; | ||
| 30 | int portid; | ||
| 31 | int clock_freq; | ||
| 22 | }; | 32 | }; |
| 23 | #define to_of_device(d) container_of(d, struct of_device, dev) | 33 | #define to_of_device(d) container_of(d, struct of_device, dev) |
| 24 | 34 | ||
diff --git a/include/asm-sparc64/prom.h b/include/asm-sparc64/prom.h index 4cecfe6d135d..d2849312dea1 100644 --- a/include/asm-sparc64/prom.h +++ b/include/asm-sparc64/prom.h | |||
| @@ -69,6 +69,8 @@ struct device_node { | |||
| 69 | #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) | 69 | #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) |
| 70 | #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) | 70 | #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags) |
| 71 | 71 | ||
| 72 | #define OF_BAD_ADDR ((u64)-1) | ||
| 73 | |||
| 72 | static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de) | 74 | static inline void set_node_proc_entry(struct device_node *dn, struct proc_dir_entry *de) |
| 73 | { | 75 | { |
| 74 | dn->pde = de; | 76 | dn->pde = de; |
