| /* Copyright 2016 The ChromiumOS Authors |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| * |
| * USB HID definitions. |
| */ |
| |
| #ifndef __CROS_EC_USB_HID_TOUCHPAD_H |
| #define __CROS_EC_USB_HID_TOUCHPAD_H |
| |
| #include "common.h" |
| |
| #define USB_HID_TOUCHPAD_TIMESTAMP_UNIT 100 /* usec */ |
| |
| #define REPORT_ID_TOUCHPAD 0x01 |
| #define REPORT_ID_DEVICE_CAPS 0x0A |
| #define REPORT_ID_DEVICE_CERT 0x0B |
| |
| #define MAX_FINGERS 5 |
| |
| struct usb_hid_touchpad_report { |
| uint8_t id; /* 0x01 */ |
| struct { |
| uint16_t confidence : 1; |
| uint16_t tip : 1; |
| uint16_t inrange : 1; |
| uint16_t id : 4; |
| uint16_t pressure : 9; |
| uint16_t width : 12; |
| uint16_t height : 12; |
| uint16_t x : 12; |
| uint16_t y : 12; |
| } __packed finger[MAX_FINGERS]; |
| uint8_t count : 7; |
| uint8_t button : 1; |
| uint16_t timestamp; |
| } __packed; |
| |
| /* class implementation interfaces */ |
| void set_touchpad_report(struct usb_hid_touchpad_report *report); |
| |
| #endif |