linux/include/linux/of_device.h
<<
>>
Prefs
   1#ifndef _LINUX_OF_DEVICE_H
   2#define _LINUX_OF_DEVICE_H
   3
   4#include <linux/platform_device.h>
   5#include <linux/of_platform.h> /* temporary until merge */
   6
   7#include <linux/of.h>
   8#include <linux/mod_devicetable.h>
   9
  10struct device;
  11
  12#ifdef CONFIG_OF
  13extern const struct of_device_id *of_match_device(
  14        const struct of_device_id *matches, const struct device *dev);
  15extern void of_device_make_bus_id(struct device *dev);
  16
  17/**
  18 * of_driver_match_device - Tell if a driver's of_match_table matches a device.
  19 * @drv: the device_driver structure to test
  20 * @dev: the device structure to match against
  21 */
  22static inline int of_driver_match_device(struct device *dev,
  23                                         const struct device_driver *drv)
  24{
  25        return of_match_device(drv->of_match_table, dev) != NULL;
  26}
  27
  28extern struct platform_device *of_dev_get(struct platform_device *dev);
  29extern void of_dev_put(struct platform_device *dev);
  30
  31extern int of_device_add(struct platform_device *pdev);
  32extern int of_device_register(struct platform_device *ofdev);
  33extern void of_device_unregister(struct platform_device *ofdev);
  34
  35extern ssize_t of_device_get_modalias(struct device *dev,
  36                                        char *str, ssize_t len);
  37
  38extern void of_device_uevent(struct device *dev, struct kobj_uevent_env *env);
  39extern int of_device_uevent_modalias(struct device *dev, struct kobj_uevent_env *env);
  40
  41static inline void of_device_node_put(struct device *dev)
  42{
  43        of_node_put(dev->of_node);
  44}
  45
  46#else /* CONFIG_OF */
  47
  48static inline int of_driver_match_device(struct device *dev,
  49                                         struct device_driver *drv)
  50{
  51        return 0;
  52}
  53
  54static inline void of_device_uevent(struct device *dev,
  55                        struct kobj_uevent_env *env) { }
  56
  57static inline int of_device_uevent_modalias(struct device *dev,
  58                                   struct kobj_uevent_env *env)
  59{
  60        return -ENODEV;
  61}
  62
  63static inline void of_device_node_put(struct device *dev) { }
  64
  65static inline const struct of_device_id *of_match_device(
  66                const struct of_device_id *matches, const struct device *dev)
  67{
  68        return NULL;
  69}
  70#endif /* CONFIG_OF */
  71
  72#endif /* _LINUX_OF_DEVICE_H */
  73