Commit | Line | Data |
---|---|---|
f898f8db SR |
1 | #ifndef _LINUX_OF_DEVICE_H |
2 | #define _LINUX_OF_DEVICE_H | |
f898f8db | 3 | |
efb2e014 | 4 | #ifdef CONFIG_OF_DEVICE |
f898f8db | 5 | #include <linux/device.h> |
b505ff5e | 6 | #include <linux/platform_device.h> |
f898f8db SR |
7 | #include <linux/of.h> |
8 | #include <linux/mod_devicetable.h> | |
9 | ||
b505ff5e GL |
10 | |
11 | /* | |
12 | * The of_device *was* a kind of "base class" that was a superset of | |
13 | * struct device for use by devices attached to an OF node and probed | |
14 | * using OF properties. However, the important bit of OF-style | |
15 | * probing, namely the device node pointer, has been moved into the | |
16 | * common struct device when CONFIG_OF is set to make OF-style probing | |
17 | * available to all bus types. So now, just make of_device and | |
18 | * platform_device equivalent so that current of_platform bus users | |
19 | * can be transparently migrated over to using the platform bus. | |
20 | * | |
21 | * This line will go away once all references to of_device are removed | |
22 | * from the kernel. | |
23 | */ | |
24 | #define of_device platform_device | |
25 | ||
f898f8db SR |
26 | #include <asm/of_device.h> |
27 | ||
28 | #define to_of_device(d) container_of(d, struct of_device, dev) | |
29 | ||
f898f8db | 30 | extern const struct of_device_id *of_match_device( |
44504b2b | 31 | const struct of_device_id *matches, const struct device *dev); |
f898f8db SR |
32 | |
33 | extern struct of_device *of_dev_get(struct of_device *dev); | |
34 | extern void of_dev_put(struct of_device *dev); | |
35 | ||
36 | extern int of_device_register(struct of_device *ofdev); | |
37 | extern void of_device_unregister(struct of_device *ofdev); | |
38 | extern void of_release_dev(struct device *dev); | |
39 | ||
fec738dd JF |
40 | static inline void of_device_free(struct of_device *dev) |
41 | { | |
42 | of_release_dev(&dev->dev); | |
43 | } | |
44 | ||
09e67ca2 SR |
45 | extern ssize_t of_device_get_modalias(struct of_device *ofdev, |
46 | char *str, ssize_t len); | |
efb2e014 | 47 | #endif /* CONFIG_OF_DEVICE */ |
09e67ca2 | 48 | |
f898f8db | 49 | #endif /* _LINUX_OF_DEVICE_H */ |