/* 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