mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-28 10:45:22 +00:00
Add a USB HID endpoint providing a keyboard interface. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> BRANCH=none BUG=none TEST=build for the Reston keyboard and press keys on the matrix. Change-Id: I3f4cc55acdd33286f0638dabaa9050c37698404f Reviewed-on: https://chromium-review.googlesource.com/204166 Reviewed-by: Vic Yang <victoryang@chromium.org> Tested-by: Vincent Palatin <vpalatin@chromium.org> Commit-Queue: Vincent Palatin <vpalatin@chromium.org>
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/* Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*
|
|
* USB HID definitions.
|
|
*/
|
|
|
|
#ifndef USB_HID_H
|
|
#define USB_HID_H
|
|
|
|
#define USB_HID_SUBCLASS_BOOT 1
|
|
#define USB_HID_PROTOCOL_KEYBOARD 1
|
|
#define USB_HID_PROTOCOL_MOUSE 2
|
|
|
|
/* USB HID Class requests */
|
|
#define USB_HID_REQ_GET_REPORT 0x01
|
|
#define USB_HID_REQ_GET_IDLE 0x02
|
|
#define USB_HID_REQ_GET_PROTOCOL 0x03
|
|
#define USB_HID_REQ_SET_REPORT 0x09
|
|
#define USB_HID_REQ_SET_IDLE 0x0A
|
|
#define USB_HID_REQ_SET_PROTOCOL 0x0B
|
|
|
|
/* USB HID class descriptor types */
|
|
#define USB_HID_DT_HID (USB_TYPE_CLASS | 0x01)
|
|
#define USB_HID_DT_REPORT (USB_TYPE_CLASS | 0x02)
|
|
#define USB_HID_DT_PHYSICAL (USB_TYPE_CLASS | 0x03)
|
|
|
|
struct usb_hid_class_descriptor {
|
|
uint8_t bDescriptorType;
|
|
uint16_t wDescriptorLength;
|
|
} __packed;
|
|
|
|
struct usb_hid_descriptor {
|
|
uint8_t bLength;
|
|
uint8_t bDescriptorType;
|
|
uint16_t bcdHID;
|
|
uint8_t bCountryCode;
|
|
uint8_t bNumDescriptors;
|
|
struct usb_hid_class_descriptor desc[1];
|
|
} __packed;
|
|
|
|
/* class implementation interfaces */
|
|
void set_keyboard_report(uint64_t rpt);
|
|
|
|
#endif /* USB_H */
|