diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-24 10:37:38 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-24 10:37:38 -0400 |
commit | 62a11ae3405b6da2535d28e5facc2de5af4a7e62 (patch) | |
tree | 6b68f0e74fe08c0e87488ec0653d59c653e46745 /include | |
parent | cedfb2db7b2d6b2c780999536aa1e2650fadee36 (diff) | |
parent | cf9b59e9d3e008591d1f54830f570982bb307a0d (diff) |
Merge branch 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6
* 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
of: change of_match_device to work with struct device
of: Remove duplicate fields from of_platform_driver
drivercore: Add of_match_table to the common device drivers
arch/microblaze: Move dma_mask from of_device into pdev_archdata
arch/powerpc: Move dma_mask from of_device into pdev_archdata
of: eliminate of_device->node and dev_archdata->{of,prom}_node
of: Always use 'struct device.of_node' to get device node pointer.
i2c/of: Allow device node to be passed via i2c_board_info
driver-core: Add device node pointer to struct device
of: protect contents of of_platform.h and of_device.h
of/flattree: Make unflatten_device_tree() safe to call from any arch
of/flattree: make of_fdt.h safe to unconditionally include.
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/device.h | 8 | ||||
-rw-r--r-- | include/linux/i2c.h | 4 | ||||
-rw-r--r-- | include/linux/of_device.h | 4 | ||||
-rw-r--r-- | include/linux/of_fdt.h | 4 | ||||
-rw-r--r-- | include/linux/of_platform.h | 6 |
5 files changed, 21 insertions, 5 deletions
diff --git a/include/linux/device.h b/include/linux/device.h index 7bb9f426f3e6..0713e10571dd 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -33,6 +33,7 @@ struct class; | |||
33 | struct class_private; | 33 | struct class_private; |
34 | struct bus_type; | 34 | struct bus_type; |
35 | struct bus_type_private; | 35 | struct bus_type_private; |
36 | struct device_node; | ||
36 | 37 | ||
37 | struct bus_attribute { | 38 | struct bus_attribute { |
38 | struct attribute attr; | 39 | struct attribute attr; |
@@ -127,6 +128,10 @@ struct device_driver { | |||
127 | 128 | ||
128 | bool suppress_bind_attrs; /* disables bind/unbind via sysfs */ | 129 | bool suppress_bind_attrs; /* disables bind/unbind via sysfs */ |
129 | 130 | ||
131 | #if defined(CONFIG_OF) | ||
132 | const struct of_device_id *of_match_table; | ||
133 | #endif | ||
134 | |||
130 | int (*probe) (struct device *dev); | 135 | int (*probe) (struct device *dev); |
131 | int (*remove) (struct device *dev); | 136 | int (*remove) (struct device *dev); |
132 | void (*shutdown) (struct device *dev); | 137 | void (*shutdown) (struct device *dev); |
@@ -435,6 +440,9 @@ struct device { | |||
435 | override */ | 440 | override */ |
436 | /* arch specific additions */ | 441 | /* arch specific additions */ |
437 | struct dev_archdata archdata; | 442 | struct dev_archdata archdata; |
443 | #ifdef CONFIG_OF | ||
444 | struct device_node *of_node; | ||
445 | #endif | ||
438 | 446 | ||
439 | dev_t devt; /* dev_t, creates the sysfs "dev" */ | 447 | dev_t devt; /* dev_t, creates the sysfs "dev" */ |
440 | 448 | ||
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 6ed1d59bfb1e..21067b418536 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -34,6 +34,7 @@ | |||
34 | #include <linux/device.h> /* for struct device */ | 34 | #include <linux/device.h> /* for struct device */ |
35 | #include <linux/sched.h> /* for completion */ | 35 | #include <linux/sched.h> /* for completion */ |
36 | #include <linux/mutex.h> | 36 | #include <linux/mutex.h> |
37 | #include <linux/of.h> /* for struct device_node */ | ||
37 | 38 | ||
38 | extern struct bus_type i2c_bus_type; | 39 | extern struct bus_type i2c_bus_type; |
39 | 40 | ||
@@ -251,6 +252,9 @@ struct i2c_board_info { | |||
251 | unsigned short addr; | 252 | unsigned short addr; |
252 | void *platform_data; | 253 | void *platform_data; |
253 | struct dev_archdata *archdata; | 254 | struct dev_archdata *archdata; |
255 | #ifdef CONFIG_OF | ||
256 | struct device_node *of_node; | ||
257 | #endif | ||
254 | int irq; | 258 | int irq; |
255 | }; | 259 | }; |
256 | 260 | ||
diff --git a/include/linux/of_device.h b/include/linux/of_device.h index d3a74e00a3e1..11651facc5f1 100644 --- a/include/linux/of_device.h +++ b/include/linux/of_device.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef _LINUX_OF_DEVICE_H | 1 | #ifndef _LINUX_OF_DEVICE_H |
2 | #define _LINUX_OF_DEVICE_H | 2 | #define _LINUX_OF_DEVICE_H |
3 | 3 | ||
4 | #ifdef CONFIG_OF_DEVICE | ||
4 | #include <linux/device.h> | 5 | #include <linux/device.h> |
5 | #include <linux/of.h> | 6 | #include <linux/of.h> |
6 | #include <linux/mod_devicetable.h> | 7 | #include <linux/mod_devicetable.h> |
@@ -10,7 +11,7 @@ | |||
10 | #define to_of_device(d) container_of(d, struct of_device, dev) | 11 | #define to_of_device(d) container_of(d, struct of_device, dev) |
11 | 12 | ||
12 | extern const struct of_device_id *of_match_device( | 13 | extern const struct of_device_id *of_match_device( |
13 | const struct of_device_id *matches, const struct of_device *dev); | 14 | const struct of_device_id *matches, const struct device *dev); |
14 | 15 | ||
15 | extern struct of_device *of_dev_get(struct of_device *dev); | 16 | extern struct of_device *of_dev_get(struct of_device *dev); |
16 | extern void of_dev_put(struct of_device *dev); | 17 | extern void of_dev_put(struct of_device *dev); |
@@ -26,5 +27,6 @@ static inline void of_device_free(struct of_device *dev) | |||
26 | 27 | ||
27 | extern ssize_t of_device_get_modalias(struct of_device *ofdev, | 28 | extern ssize_t of_device_get_modalias(struct of_device *ofdev, |
28 | char *str, ssize_t len); | 29 | char *str, ssize_t len); |
30 | #endif /* CONFIG_OF_DEVICE */ | ||
29 | 31 | ||
30 | #endif /* _LINUX_OF_DEVICE_H */ | 32 | #endif /* _LINUX_OF_DEVICE_H */ |
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h index a1ca92ccb0ff..71e1a916d3fa 100644 --- a/include/linux/of_fdt.h +++ b/include/linux/of_fdt.h | |||
@@ -57,6 +57,7 @@ struct boot_param_header { | |||
57 | __be32 dt_struct_size; /* size of the DT structure block */ | 57 | __be32 dt_struct_size; /* size of the DT structure block */ |
58 | }; | 58 | }; |
59 | 59 | ||
60 | #if defined(CONFIG_OF_FLATTREE) | ||
60 | /* TBD: Temporary export of fdt globals - remove when code fully merged */ | 61 | /* TBD: Temporary export of fdt globals - remove when code fully merged */ |
61 | extern int __initdata dt_root_addr_cells; | 62 | extern int __initdata dt_root_addr_cells; |
62 | extern int __initdata dt_root_size_cells; | 63 | extern int __initdata dt_root_size_cells; |
@@ -98,6 +99,9 @@ extern int early_init_dt_scan_root(unsigned long node, const char *uname, | |||
98 | /* Other Prototypes */ | 99 | /* Other Prototypes */ |
99 | extern void unflatten_device_tree(void); | 100 | extern void unflatten_device_tree(void); |
100 | extern void early_init_devtree(void *); | 101 | extern void early_init_devtree(void *); |
102 | #else /* CONFIG_OF_FLATTREE */ | ||
103 | static inline void unflatten_device_tree(void) {} | ||
104 | #endif /* CONFIG_OF_FLATTREE */ | ||
101 | 105 | ||
102 | #endif /* __ASSEMBLY__ */ | 106 | #endif /* __ASSEMBLY__ */ |
103 | #endif /* _LINUX_OF_FDT_H */ | 107 | #endif /* _LINUX_OF_FDT_H */ |
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index 908406651330..1643d3761eb4 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h | |||
@@ -11,6 +11,7 @@ | |||
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #ifdef CONFIG_OF_DEVICE | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/device.h> | 16 | #include <linux/device.h> |
16 | #include <linux/mod_devicetable.h> | 17 | #include <linux/mod_devicetable.h> |
@@ -30,10 +31,6 @@ extern struct bus_type of_platform_bus_type; | |||
30 | */ | 31 | */ |
31 | struct of_platform_driver | 32 | struct of_platform_driver |
32 | { | 33 | { |
33 | const char *name; | ||
34 | const struct of_device_id *match_table; | ||
35 | struct module *owner; | ||
36 | |||
37 | int (*probe)(struct of_device* dev, | 34 | int (*probe)(struct of_device* dev, |
38 | const struct of_device_id *match); | 35 | const struct of_device_id *match); |
39 | int (*remove)(struct of_device* dev); | 36 | int (*remove)(struct of_device* dev); |
@@ -66,5 +63,6 @@ static inline void of_unregister_platform_driver(struct of_platform_driver *drv) | |||
66 | extern struct of_device *of_find_device_by_node(struct device_node *np); | 63 | extern struct of_device *of_find_device_by_node(struct device_node *np); |
67 | 64 | ||
68 | extern int of_bus_type_init(struct bus_type *bus, const char *name); | 65 | extern int of_bus_type_init(struct bus_type *bus, const char *name); |
66 | #endif /* CONFIG_OF_DEVICE */ | ||
69 | 67 | ||
70 | #endif /* _LINUX_OF_PLATFORM_H */ | 68 | #endif /* _LINUX_OF_PLATFORM_H */ |