1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
---|---|
2 | /* comedi_usb.h |
3 | * header file for USB Comedi drivers |
4 | * |
5 | * COMEDI - Linux Control and Measurement Device Interface |
6 | * Copyright (C) 1997-2000 David A. Schleef <ds@schleef.org> |
7 | */ |
8 | |
9 | #ifndef _COMEDI_USB_H |
10 | #define _COMEDI_USB_H |
11 | |
12 | #include <linux/usb.h> |
13 | #include <linux/comedi/comedidev.h> |
14 | |
15 | struct usb_interface *comedi_to_usb_interface(struct comedi_device *dev); |
16 | struct usb_device *comedi_to_usb_dev(struct comedi_device *dev); |
17 | |
18 | int comedi_usb_auto_config(struct usb_interface *intf, |
19 | struct comedi_driver *driver, unsigned long context); |
20 | void comedi_usb_auto_unconfig(struct usb_interface *intf); |
21 | |
22 | int comedi_usb_driver_register(struct comedi_driver *comedi_driver, |
23 | struct usb_driver *usb_driver); |
24 | void comedi_usb_driver_unregister(struct comedi_driver *comedi_driver, |
25 | struct usb_driver *usb_driver); |
26 | |
27 | /** |
28 | * module_comedi_usb_driver() - Helper macro for registering a comedi USB driver |
29 | * @__comedi_driver: comedi_driver struct |
30 | * @__usb_driver: usb_driver struct |
31 | * |
32 | * Helper macro for comedi USB drivers which do not do anything special |
33 | * in module init/exit. This eliminates a lot of boilerplate. Each |
34 | * module may only use this macro once, and calling it replaces |
35 | * module_init() and module_exit() |
36 | */ |
37 | #define module_comedi_usb_driver(__comedi_driver, __usb_driver) \ |
38 | module_driver(__comedi_driver, comedi_usb_driver_register, \ |
39 | comedi_usb_driver_unregister, &(__usb_driver)) |
40 | |
41 | #endif /* _COMEDI_USB_H */ |
42 |