Branch data Line data Source code
1 : : #ifndef _LINUX_OF_DEVICE_H
2 : : #define _LINUX_OF_DEVICE_H
3 : :
4 : : #include <linux/cpu.h>
5 : : #include <linux/platform_device.h>
6 : : #include <linux/of_platform.h> /* temporary until merge */
7 : :
8 : : #include <linux/of.h>
9 : : #include <linux/mod_devicetable.h>
10 : :
11 : : struct device;
12 : :
13 : : #ifdef CONFIG_OF
14 : : extern const struct of_device_id *of_match_device(
15 : : const struct of_device_id *matches, const struct device *dev);
16 : : extern void of_device_make_bus_id(struct device *dev);
17 : :
18 : : /**
19 : : * of_driver_match_device - Tell if a driver's of_match_table matches a device.
20 : : * @drv: the device_driver structure to test
21 : : * @dev: the device structure to match against
22 : : */
23 : : static inline int of_driver_match_device(struct device *dev,
24 : : const struct device_driver *drv)
25 : : {
26 : 0 : return of_match_device(drv->of_match_table, dev) != NULL;
27 : : }
28 : :
29 : : extern struct platform_device *of_dev_get(struct platform_device *dev);
30 : : extern void of_dev_put(struct platform_device *dev);
31 : :
32 : : extern int of_device_add(struct platform_device *pdev);
33 : : extern int of_device_register(struct platform_device *ofdev);
34 : : extern void of_device_unregister(struct platform_device *ofdev);
35 : :
36 : : extern ssize_t of_device_get_modalias(struct device *dev,
37 : : char *str, ssize_t len);
38 : :
39 : : extern void of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
40 : : extern int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env);
41 : :
42 : : static inline void of_device_node_put(struct device *dev)
43 : : {
44 : : of_node_put(dev->of_node);
45 : : }
46 : :
47 : : static inline struct device_node *of_cpu_device_node_get(int cpu)
48 : : {
49 : : struct device *cpu_dev;
50 : 0 : cpu_dev = get_cpu_device(cpu);
51 [ # # ]: 0 : if (!cpu_dev)
52 : : return NULL;
53 : 0 : return of_node_get(cpu_dev->of_node);
54 : : }
55 : :
56 : : #else /* CONFIG_OF */
57 : :
58 : : static inline int of_driver_match_device(struct device *dev,
59 : : struct device_driver *drv)
60 : : {
61 : : return 0;
62 : : }
63 : :
64 : : static inline void of_device_uevent(struct device *dev,
65 : : struct kobj_uevent_env *env) { }
66 : :
67 : : static inline int of_device_get_modalias(struct device *dev,
68 : : char *str, ssize_t len)
69 : : {
70 : : return -ENODEV;
71 : : }
72 : :
73 : : static inline int of_device_uevent_modalias(struct device *dev,
74 : : struct kobj_uevent_env *env)
75 : : {
76 : : return -ENODEV;
77 : : }
78 : :
79 : : static inline void of_device_node_put(struct device *dev) { }
80 : :
81 : : static inline const struct of_device_id *__of_match_device(
82 : : const struct of_device_id *matches, const struct device *dev)
83 : : {
84 : : return NULL;
85 : : }
86 : : #define of_match_device(matches, dev) \
87 : : __of_match_device(of_match_ptr(matches), (dev))
88 : :
89 : : static inline struct device_node *of_cpu_device_node_get(int cpu)
90 : : {
91 : : return NULL;
92 : : }
93 : : #endif /* CONFIG_OF */
94 : :
95 : : #endif /* _LINUX_OF_DEVICE_H */
|