xref: /linux/drivers/usb/gadget/function/u_hid.h (revision 7c66e12136c2fa421ae75497e02728f252108a1b)
1 /*
2  * u_hid.h
3  *
4  * Utility definitions for the hid function
5  *
6  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7  *		http://www.samsung.com
8  *
9  * Author: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License version 2 as
13  * published by the Free Software Foundation.
14  */
15 
16 #ifndef U_HID_H
17 #define U_HID_H
18 
19 #include <linux/usb/composite.h>
20 
21 struct f_hid_opts {
22 	struct usb_function_instance	func_inst;
23 	int				minor;
24 	unsigned char			subclass;
25 	unsigned char			protocol;
26 	unsigned short			report_length;
27 	unsigned short			report_desc_length;
28 	unsigned char			*report_desc;
29 	bool				report_desc_alloc;
30 
31 	/*
32 	 * Protect the data form concurrent access by read/write
33 	 * and create symlink/remove symlink.
34 	 */
35 	 struct mutex			lock;
36 	 int				refcnt;
37 };
38 
39 int ghid_setup(struct usb_gadget *g, int count);
40 void ghid_cleanup(void);
41 
42 #endif /* U_HID_H */
43