diff options
| author | Len Brown <len.brown@intel.com> | 2010-08-15 01:06:31 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2010-08-15 01:06:31 -0400 |
| commit | 95ee46aa8698f2000647dfb362400fadbb5807cf (patch) | |
| tree | e5a05c7297f997e191c73091934e42e3195c0e40 /include/linux/of_platform.h | |
| parent | cfa806f059801dbe7e435745eb2e187c8bfe1e7f (diff) | |
| parent | 92fa5bd9a946b6e7aab6764e7312e4e3d9bed295 (diff) | |
Merge branch 'linus' into release
Conflicts:
drivers/acpi/debug.c
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/linux/of_platform.h')
| -rw-r--r-- | include/linux/of_platform.h | 65 |
1 files changed, 39 insertions, 26 deletions
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index 1643d3761eb4..a68716ad38ce 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h | |||
| @@ -17,29 +17,32 @@ | |||
| 17 | #include <linux/mod_devicetable.h> | 17 | #include <linux/mod_devicetable.h> |
| 18 | #include <linux/pm.h> | 18 | #include <linux/pm.h> |
| 19 | #include <linux/of_device.h> | 19 | #include <linux/of_device.h> |
| 20 | #include <linux/platform_device.h> | ||
| 20 | 21 | ||
| 21 | /* | 22 | /** |
| 22 | * The of_platform_bus_type is a bus type used by drivers that do not | 23 | * of_platform_driver - Legacy of-aware driver for platform devices. |
| 23 | * attach to a macio or similar bus but still use OF probing | 24 | * |
| 24 | * mechanism | 25 | * An of_platform_driver driver is attached to a basic platform_device on |
| 25 | */ | 26 | * ether the "platform bus" (platform_bus_type), or the ibm ebus |
| 26 | extern struct bus_type of_platform_bus_type; | 27 | * (ibmebus_bus_type). |
| 27 | 28 | * | |
| 28 | /* | 29 | * of_platform_driver is being phased out when used with the platform_bus_type, |
| 29 | * An of_platform_driver driver is attached to a basic of_device on | 30 | * and regular platform_drivers should be used instead. When the transition |
| 30 | * the "platform bus" (of_platform_bus_type). | 31 | * is complete, only ibmebus will be using this structure, and the |
| 32 | * platform_driver member of this structure will be removed. | ||
| 31 | */ | 33 | */ |
| 32 | struct of_platform_driver | 34 | struct of_platform_driver |
| 33 | { | 35 | { |
| 34 | int (*probe)(struct of_device* dev, | 36 | int (*probe)(struct platform_device* dev, |
| 35 | const struct of_device_id *match); | 37 | const struct of_device_id *match); |
| 36 | int (*remove)(struct of_device* dev); | 38 | int (*remove)(struct platform_device* dev); |
| 37 | 39 | ||
| 38 | int (*suspend)(struct of_device* dev, pm_message_t state); | 40 | int (*suspend)(struct platform_device* dev, pm_message_t state); |
| 39 | int (*resume)(struct of_device* dev); | 41 | int (*resume)(struct platform_device* dev); |
| 40 | int (*shutdown)(struct of_device* dev); | 42 | int (*shutdown)(struct platform_device* dev); |
| 41 | 43 | ||
| 42 | struct device_driver driver; | 44 | struct device_driver driver; |
| 45 | struct platform_driver platform_driver; | ||
| 43 | }; | 46 | }; |
| 44 | #define to_of_platform_driver(drv) \ | 47 | #define to_of_platform_driver(drv) \ |
| 45 | container_of(drv,struct of_platform_driver, driver) | 48 | container_of(drv,struct of_platform_driver, driver) |
| @@ -49,20 +52,30 @@ extern int of_register_driver(struct of_platform_driver *drv, | |||
| 49 | extern void of_unregister_driver(struct of_platform_driver *drv); | 52 | extern void of_unregister_driver(struct of_platform_driver *drv); |
| 50 | 53 | ||
| 51 | /* Platform drivers register/unregister */ | 54 | /* Platform drivers register/unregister */ |
| 52 | static inline int of_register_platform_driver(struct of_platform_driver *drv) | 55 | extern int of_register_platform_driver(struct of_platform_driver *drv); |
| 53 | { | 56 | extern void of_unregister_platform_driver(struct of_platform_driver *drv); |
| 54 | return of_register_driver(drv, &of_platform_bus_type); | ||
| 55 | } | ||
| 56 | static inline void of_unregister_platform_driver(struct of_platform_driver *drv) | ||
| 57 | { | ||
| 58 | of_unregister_driver(drv); | ||
| 59 | } | ||
| 60 | |||
| 61 | #include <asm/of_platform.h> | ||
| 62 | 57 | ||
| 63 | extern struct of_device *of_find_device_by_node(struct device_node *np); | 58 | extern struct platform_device *of_device_alloc(struct device_node *np, |
| 59 | const char *bus_id, | ||
| 60 | struct device *parent); | ||
| 61 | extern struct platform_device *of_find_device_by_node(struct device_node *np); | ||
| 64 | 62 | ||
| 65 | extern int of_bus_type_init(struct bus_type *bus, const char *name); | 63 | extern int of_bus_type_init(struct bus_type *bus, const char *name); |
| 64 | |||
| 65 | #if !defined(CONFIG_SPARC) /* SPARC has its own device registration method */ | ||
| 66 | /* Platform devices and busses creation */ | ||
| 67 | extern struct platform_device *of_platform_device_create(struct device_node *np, | ||
| 68 | const char *bus_id, | ||
| 69 | struct device *parent); | ||
| 70 | |||
| 71 | /* pseudo "matches" value to not do deep probe */ | ||
| 72 | #define OF_NO_DEEP_PROBE ((struct of_device_id *)-1) | ||
| 73 | |||
| 74 | extern int of_platform_bus_probe(struct device_node *root, | ||
| 75 | const struct of_device_id *matches, | ||
| 76 | struct device *parent); | ||
| 77 | #endif /* !CONFIG_SPARC */ | ||
| 78 | |||
| 66 | #endif /* CONFIG_OF_DEVICE */ | 79 | #endif /* CONFIG_OF_DEVICE */ |
| 67 | 80 | ||
| 68 | #endif /* _LINUX_OF_PLATFORM_H */ | 81 | #endif /* _LINUX_OF_PLATFORM_H */ |
