1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_OF_DEVICE_H
3 #define _LINUX_OF_DEVICE_H
5 #include <linux/device/driver.h>
9 struct kobj_uevent_env
;
12 extern const struct of_device_id
*of_match_device(
13 const struct of_device_id
*matches
, const struct device
*dev
);
16 * of_driver_match_device - Tell if a driver's of_match_table matches a device.
17 * @drv: the device_driver structure to test
18 * @dev: the device structure to match against
20 static inline int of_driver_match_device(struct device
*dev
,
21 const struct device_driver
*drv
)
23 return of_match_device(drv
->of_match_table
, dev
) != NULL
;
26 extern ssize_t
of_device_modalias(struct device
*dev
, char *str
, ssize_t len
);
28 extern void of_device_uevent(const struct device
*dev
, struct kobj_uevent_env
*env
);
29 extern int of_device_uevent_modalias(const struct device
*dev
, struct kobj_uevent_env
*env
);
31 int of_dma_configure_id(struct device
*dev
,
32 struct device_node
*np
,
33 bool force_dma
, const u32
*id
);
34 static inline int of_dma_configure(struct device
*dev
,
35 struct device_node
*np
,
38 return of_dma_configure_id(dev
, np
, force_dma
, NULL
);
41 void of_device_make_bus_id(struct device
*dev
);
45 static inline int of_driver_match_device(struct device
*dev
,
46 const struct device_driver
*drv
)
51 static inline void of_device_uevent(const struct device
*dev
,
52 struct kobj_uevent_env
*env
) { }
54 static inline int of_device_modalias(struct device
*dev
,
55 char *str
, ssize_t len
)
60 static inline int of_device_uevent_modalias(const struct device
*dev
,
61 struct kobj_uevent_env
*env
)
66 static inline const struct of_device_id
*of_match_device(
67 const struct of_device_id
*matches
, const struct device
*dev
)
72 static inline int of_dma_configure_id(struct device
*dev
,
73 struct device_node
*np
,
79 static inline int of_dma_configure(struct device
*dev
,
80 struct device_node
*np
,
86 static inline void of_device_make_bus_id(struct device
*dev
) {}
88 #endif /* CONFIG_OF */
90 #endif /* _LINUX_OF_DEVICE_H */