12e759738SNishad Kamdar /* SPDX-License-Identifier: GPL-2.0 */ 2cb382536SAndrzej Pietrasiewicz /* 3cb382536SAndrzej Pietrasiewicz * u_hid.h 4cb382536SAndrzej Pietrasiewicz * 5cb382536SAndrzej Pietrasiewicz * Utility definitions for the hid function 6cb382536SAndrzej Pietrasiewicz * 7cb382536SAndrzej Pietrasiewicz * Copyright (c) 2014 Samsung Electronics Co., Ltd. 8cb382536SAndrzej Pietrasiewicz * http://www.samsung.com 9cb382536SAndrzej Pietrasiewicz * 101b4a3b51SAndrzej Pietrasiewicz * Author: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com> 11cb382536SAndrzej Pietrasiewicz */ 12cb382536SAndrzej Pietrasiewicz 13cb382536SAndrzej Pietrasiewicz #ifndef U_HID_H 14cb382536SAndrzej Pietrasiewicz #define U_HID_H 15cb382536SAndrzej Pietrasiewicz 16cb382536SAndrzej Pietrasiewicz #include <linux/usb/composite.h> 17cb382536SAndrzej Pietrasiewicz 18cb382536SAndrzej Pietrasiewicz struct f_hid_opts { 19cb382536SAndrzej Pietrasiewicz struct usb_function_instance func_inst; 20cb382536SAndrzej Pietrasiewicz int minor; 21cb382536SAndrzej Pietrasiewicz unsigned char subclass; 22cb382536SAndrzej Pietrasiewicz unsigned char protocol; 23*d7428bc2SMaxim Devaev unsigned char no_out_endpoint; 24cb382536SAndrzej Pietrasiewicz unsigned short report_length; 25cb382536SAndrzej Pietrasiewicz unsigned short report_desc_length; 26cb382536SAndrzej Pietrasiewicz unsigned char *report_desc; 27cb382536SAndrzej Pietrasiewicz bool report_desc_alloc; 2821a9476aSAndrzej Pietrasiewicz 2921a9476aSAndrzej Pietrasiewicz /* 3021a9476aSAndrzej Pietrasiewicz * Protect the data form concurrent access by read/write 3121a9476aSAndrzej Pietrasiewicz * and create symlink/remove symlink. 3221a9476aSAndrzej Pietrasiewicz */ 3321a9476aSAndrzej Pietrasiewicz struct mutex lock; 3421a9476aSAndrzej Pietrasiewicz int refcnt; 35cb382536SAndrzej Pietrasiewicz }; 36cb382536SAndrzej Pietrasiewicz 37cb382536SAndrzej Pietrasiewicz int ghid_setup(struct usb_gadget *g, int count); 38cb382536SAndrzej Pietrasiewicz void ghid_cleanup(void); 39cb382536SAndrzej Pietrasiewicz 40cb382536SAndrzej Pietrasiewicz #endif /* U_HID_H */ 41