/*
* @file hv_drv_UsbApiHid.h
* @brief Porting from linux uapi_hid.h.
*
* @author HiView SoC Software Team
* @version 1.0.0
* @date 2022-06-15
*/

#ifndef __HV_DRV_USB_API_HID_H
#define __HV_DRV_USB_API_HID_H


/*
 * USB HID (Human Interface Device) interface class code
 */

#define USB_INTERFACE_CLASS_HID             3

/*
 * USB HID interface subclass and protocol codes
 */

#define USB_INTERFACE_SUBCLASS_BOOT         1
#define USB_INTERFACE_PROTOCOL_KEYBOARD     1
#define USB_INTERFACE_PROTOCOL_MOUSE        2

/*
 * HID class requests
 */

#define HID_REQ_GET_REPORT                  0x01
#define HID_REQ_GET_IDLE                    0x02
#define HID_REQ_GET_PROTOCOL                0x03
#define HID_REQ_SET_REPORT                  0x09
#define HID_REQ_SET_IDLE                    0x0A
#define HID_REQ_SET_PROTOCOL                0x0B

/*
 * HID class descriptor types
 */

#define HID_DT_HID                          (USB_TYPE_CLASS | 0x01)
#define HID_DT_REPORT                       (USB_TYPE_CLASS | 0x02)
#define HID_DT_PHYSICAL                     (USB_TYPE_CLASS | 0x03)

#define HID_MAX_DESCRIPTOR_SIZE             4096


#endif
