Merge tag 'usb-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
[linux-2.6-microblaze.git] / drivers / usb / gadget / function / u_hid.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * u_hid.h
4  *
5  * Utility definitions for the hid function
6  *
7  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
8  *              http://www.samsung.com
9  *
10  * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
11  */
12
13 #ifndef U_HID_H
14 #define U_HID_H
15
16 #include <linux/usb/composite.h>
17
18 struct f_hid_opts {
19         struct usb_function_instance    func_inst;
20         int                             minor;
21         unsigned char                   subclass;
22         unsigned char                   protocol;
23         unsigned char                   no_out_endpoint;
24         unsigned short                  report_length;
25         unsigned short                  report_desc_length;
26         unsigned char                   *report_desc;
27         bool                            report_desc_alloc;
28
29         /*
30          * Protect the data form concurrent access by read/write
31          * and create symlink/remove symlink.
32          */
33         struct mutex                    lock;
34         int                             refcnt;
35 };
36
37 int ghid_setup(struct usb_gadget *g, int count);
38 void ghid_cleanup(void);
39
40 #endif /* U_HID_H */