linux-headers (unknown)

(root)/
include/
linux/
hid.h
       1  /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
       2  /*
       3   *  Copyright (c) 1999 Andreas Gal
       4   *  Copyright (c) 2000-2001 Vojtech Pavlik
       5   *  Copyright (c) 2006-2007 Jiri Kosina
       6   */
       7  /*
       8   * This program is free software; you can redistribute it and/or modify
       9   * it under the terms of the GNU General Public License as published by
      10   * the Free Software Foundation; either version 2 of the License, or
      11   * (at your option) any later version.
      12   *
      13   * This program is distributed in the hope that it will be useful,
      14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
      15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      16   * GNU General Public License for more details.
      17   *
      18   * You should have received a copy of the GNU General Public License
      19   * along with this program; if not, write to the Free Software
      20   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
      21   *
      22   * Should you need to contact me, the author, you can do so either by
      23   * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
      24   * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
      25   */
      26  #ifndef __HID_H
      27  #define __HID_H
      28  
      29  
      30  
      31  /*
      32   * USB HID (Human Interface Device) interface class code
      33   */
      34  
      35  #define USB_INTERFACE_CLASS_HID		3
      36  
      37  /*
      38   * USB HID interface subclass and protocol codes
      39   */
      40  
      41  #define USB_INTERFACE_SUBCLASS_BOOT	1
      42  #define USB_INTERFACE_PROTOCOL_KEYBOARD	1
      43  #define USB_INTERFACE_PROTOCOL_MOUSE	2
      44  
      45  /*
      46   * HID report types --- Ouch! HID spec says 1 2 3!
      47   */
      48  
      49  enum hid_report_type {
      50  	HID_INPUT_REPORT		= 0,
      51  	HID_OUTPUT_REPORT		= 1,
      52  	HID_FEATURE_REPORT		= 2,
      53  
      54  	HID_REPORT_TYPES,
      55  };
      56  
      57  /*
      58   * HID class requests
      59   */
      60  
      61  enum hid_class_request {
      62  	HID_REQ_GET_REPORT		= 0x01,
      63  	HID_REQ_GET_IDLE		= 0x02,
      64  	HID_REQ_GET_PROTOCOL		= 0x03,
      65  	HID_REQ_SET_REPORT		= 0x09,
      66  	HID_REQ_SET_IDLE		= 0x0A,
      67  	HID_REQ_SET_PROTOCOL		= 0x0B,
      68  };
      69  
      70  /*
      71   * HID class descriptor types
      72   */
      73  
      74  #define HID_DT_HID			(USB_TYPE_CLASS | 0x01)
      75  #define HID_DT_REPORT			(USB_TYPE_CLASS | 0x02)
      76  #define HID_DT_PHYSICAL			(USB_TYPE_CLASS | 0x03)
      77  
      78  #define HID_MAX_DESCRIPTOR_SIZE		4096
      79  
      80  
      81  #endif /* __HID_H */