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 unsigned char interval; 29 bool interval_user_set; 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