Commit | Line | Data |
---|---|---|
171580f6 VK |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* Copyright(c) 2015-17 Intel Corporation. */ | |
9251345d VK |
3 | |
4 | #ifndef __SOUNDWIRE_TYPES_H | |
5 | #define __SOUNDWIRE_TYPES_H | |
6 | ||
7 | extern struct bus_type sdw_bus_type; | |
90acca1d PLB |
8 | extern struct device_type sdw_slave_type; |
9 | extern struct device_type sdw_master_type; | |
10 | ||
11 | static inline int is_sdw_slave(const struct device *dev) | |
12 | { | |
13 | return dev->type == &sdw_slave_type; | |
14 | } | |
9251345d VK |
15 | |
16 | #define drv_to_sdw_driver(_drv) container_of(_drv, struct sdw_driver, driver) | |
17 | ||
18 | #define sdw_register_driver(drv) \ | |
19 | __sdw_register_driver(drv, THIS_MODULE) | |
20 | ||
51ed7437 | 21 | int __sdw_register_driver(struct sdw_driver *drv, struct module *owner); |
9251345d VK |
22 | void sdw_unregister_driver(struct sdw_driver *drv); |
23 | ||
90acca1d | 24 | int sdw_slave_uevent(struct device *dev, struct kobj_uevent_env *env); |
9251345d | 25 | |
2aeac95d SK |
26 | /** |
27 | * module_sdw_driver() - Helper macro for registering a Soundwire driver | |
28 | * @__sdw_driver: soundwire slave driver struct | |
29 | * | |
30 | * Helper macro for Soundwire drivers which do not do anything special in | |
31 | * module init/exit. This eliminates a lot of boilerplate. Each module may only | |
32 | * use this macro once, and calling it replaces module_init() and module_exit() | |
33 | */ | |
34 | #define module_sdw_driver(__sdw_driver) \ | |
35 | module_driver(__sdw_driver, sdw_register_driver, \ | |
36 | sdw_unregister_driver) | |
9251345d | 37 | #endif /* __SOUNDWIRE_TYPES_H */ |