blob: 1e6d4cf8329c657b74571daf23c339770d3ae7a0 [file] [log] [blame]
/* Copyright 2016 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 __CROS_EC_USB_HID_TOUCHPAD_H
#define __CROS_EC_USB_HID_TOUCHPAD_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