blob: 1594bfa312ebfc7e9b890498e068f3d98bbe7f8c [file] [log] [blame]
Greg Kroah-Hartman5fd54ac2017-11-03 11:28:30 +01001// SPDX-License-Identifier: GPL-2.0
Andrzej Pietrasiewiczcb382532014-11-06 11:11:59 +01002/*
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 *
Andrzej Pietrasiewicz1b4a3b52018-12-13 14:24:57 +010010 * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
Andrzej Pietrasiewiczcb382532014-11-06 11:11:59 +010011 */
12
13#ifndef U_HID_H
14#define U_HID_H
15
16#include <linux/usb/composite.h>
17
18struct f_hid_opts {
19 struct usb_function_instance func_inst;
20 int minor;
21 unsigned char subclass;
22 unsigned char protocol;
23 unsigned short report_length;
24 unsigned short report_desc_length;
25 unsigned char *report_desc;
26 bool report_desc_alloc;
Andrzej Pietrasiewicz21a94762014-11-06 11:12:03 +010027
28 /*
29 * Protect the data form concurrent access by read/write
30 * and create symlink/remove symlink.
31 */
32 struct mutex lock;
33 int refcnt;
Andrzej Pietrasiewiczcb382532014-11-06 11:11:59 +010034};
35
36int ghid_setup(struct usb_gadget *g, int count);
37void ghid_cleanup(void);
38
39#endif /* U_HID_H */