diff options
Diffstat (limited to 'include/linux/of_platform.h')
| -rw-r--r-- | include/linux/of_platform.h | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h index 1643d3761eb4..4e6d989c06df 100644 --- a/include/linux/of_platform.h +++ b/include/linux/of_platform.h | |||
| @@ -17,29 +17,24 @@ | |||
| 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 | 20 | #include <linux/platform_device.h> | |
| 21 | /* | ||
| 22 | * The of_platform_bus_type is a bus type used by drivers that do not | ||
| 23 | * attach to a macio or similar bus but still use OF probing | ||
| 24 | * mechanism | ||
| 25 | */ | ||
| 26 | extern struct bus_type of_platform_bus_type; | ||
| 27 | 21 | ||
| 28 | /* | 22 | /* |
| 29 | * An of_platform_driver driver is attached to a basic of_device on | 23 | * An of_platform_driver driver is attached to a basic of_device on |
| 30 | * the "platform bus" (of_platform_bus_type). | 24 | * the "platform bus" (platform_bus_type). |
| 31 | */ | 25 | */ |
| 32 | struct of_platform_driver | 26 | struct of_platform_driver |
| 33 | { | 27 | { |
| 34 | int (*probe)(struct of_device* dev, | 28 | int (*probe)(struct platform_device* dev, |
| 35 | const struct of_device_id *match); | 29 | const struct of_device_id *match); |
| 36 | int (*remove)(struct of_device* dev); | 30 | int (*remove)(struct platform_device* dev); |
| 37 | 31 | ||
| 38 | int (*suspend)(struct of_device* dev, pm_message_t state); | 32 | int (*suspend)(struct platform_device* dev, pm_message_t state); |
| 39 | int (*resume)(struct of_device* dev); | 33 | int (*resume)(struct platform_device* dev); |
| 40 | int (*shutdown)(struct of_device* dev); | 34 | int (*shutdown)(struct platform_device* dev); |
| 41 | 35 | ||
| 42 | struct device_driver driver; | 36 | struct device_driver driver; |
| 37 | struct platform_driver platform_driver; | ||
| 43 | }; | 38 | }; |
| 44 | #define to_of_platform_driver(drv) \ | 39 | #define to_of_platform_driver(drv) \ |
| 45 | container_of(drv,struct of_platform_driver, driver) | 40 | container_of(drv,struct of_platform_driver, driver) |
| @@ -49,20 +44,30 @@ extern int of_register_driver(struct of_platform_driver *drv, | |||
| 49 | extern void of_unregister_driver(struct of_platform_driver *drv); | 44 | extern void of_unregister_driver(struct of_platform_driver *drv); |
| 50 | 45 | ||
| 51 | /* Platform drivers register/unregister */ | 46 | /* Platform drivers register/unregister */ |
| 52 | static inline int of_register_platform_driver(struct of_platform_driver *drv) | 47 | extern int of_register_platform_driver(struct of_platform_driver *drv); |
| 53 | { | 48 | 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 | 49 | ||
| 61 | #include <asm/of_platform.h> | 50 | extern struct platform_device *of_device_alloc(struct device_node *np, |
| 62 | 51 | const char *bus_id, | |
| 63 | extern struct of_device *of_find_device_by_node(struct device_node *np); | 52 | struct device *parent); |
| 53 | extern struct platform_device *of_find_device_by_node(struct device_node *np); | ||
| 64 | 54 | ||
| 65 | extern int of_bus_type_init(struct bus_type *bus, const char *name); | 55 | extern int of_bus_type_init(struct bus_type *bus, const char *name); |
| 56 | |||
| 57 | #if !defined(CONFIG_SPARC) /* SPARC has its own device registration method */ | ||
| 58 | /* Platform devices and busses creation */ | ||
| 59 | extern struct platform_device *of_platform_device_create(struct device_node *np, | ||
| 60 | const char *bus_id, | ||
| 61 | struct device *parent); | ||
| 62 | |||
| 63 | /* pseudo "matches" value to not do deep probe */ | ||
| 64 | #define OF_NO_DEEP_PROBE ((struct of_device_id *)-1) | ||
| 65 | |||
| 66 | extern int of_platform_bus_probe(struct device_node *root, | ||
| 67 | const struct of_device_id *matches, | ||
| 68 | struct device *parent); | ||
| 69 | #endif /* !CONFIG_SPARC */ | ||
| 70 | |||
| 66 | #endif /* CONFIG_OF_DEVICE */ | 71 | #endif /* CONFIG_OF_DEVICE */ |
| 67 | 72 | ||
| 68 | #endif /* _LINUX_OF_PLATFORM_H */ | 73 | #endif /* _LINUX_OF_PLATFORM_H */ |
