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 */ 41