summaryrefslogtreecommitdiff
path: root/chip/stm32/usb_hid_touchpad.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/stm32/usb_hid_touchpad.c')
-rw-r--r--chip/stm32/usb_hid_touchpad.c65
1 files changed, 34 insertions, 31 deletions
diff --git a/chip/stm32/usb_hid_touchpad.c b/chip/stm32/usb_hid_touchpad.c
index 06082fdb1f..ebb8bd9ef4 100644
--- a/chip/stm32/usb_hid_touchpad.c
+++ b/chip/stm32/usb_hid_touchpad.c
@@ -69,23 +69,24 @@ const struct usb_endpoint_descriptor USB_EP_DESC(USB_IFACE_HID_TOUCHPAD, 81) = {
0x05, 0x0D, /* Usage Page (Digitizer) */ \
0x09, 0x22, /* Usage (Finger) */ \
0xA1, 0x02, /* Collection (Logical) */ \
+ 0x09, 0x47, /* Usage (Confidence) */ \
0x09, 0x42, /* Usage (Tip Switch) */ \
+ 0x09, 0x32, /* Usage (In Range) */ \
0x15, 0x00, /* Logical Minimum (0) */ \
0x25, 0x01, /* Logical Maximum (1) */ \
0x75, 0x01, /* Report Size (1) */ \
- 0x95, 0x01, /* Report Count (1) */ \
- 0x81, 0x02, /* Input (Data,Var,Abs) */ \
- 0x09, 0x32, /* Usage (In Range) */ \
+ 0x95, 0x03, /* Report Count (3) */ \
0x81, 0x02, /* Input (Data,Var,Abs) */ \
- 0x75, 0x04, /* Report Size (4) */ \
0x09, 0x51, /* Usage (0x51) Contact identifier */ \
+ 0x75, 0x04, /* Report Size (4) */ \
+ 0x95, 0x01, /* Report Count (1) */ \
0x25, 0x0F, /* Logical Maximum (15) */ \
0x81, 0x02, /* Input (Data,Var,Abs) */ \
0x05, 0x0D, /* Usage Page (Digitizer) */ \
/* Logical Maximum of Pressure */ \
0x26, (CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE & 0xFF), \
(CONFIG_USB_HID_TOUCHPAD_LOGICAL_MAX_PRESSURE >> 8), \
- 0x75, 0x0A, /* Report Size (10) */ \
+ 0x75, 0x09, /* Report Size (9) */ \
0x09, 0x30, /* Usage (Tip pressure) */ \
0x81, 0x02, /* Input (Data,Var,Abs) */ \
0x26, 0xFF, 0x00, /* Logical Maximum (255) */ \
@@ -123,10 +124,11 @@ const struct usb_endpoint_descriptor USB_EP_DESC(USB_IFACE_HID_TOUCHPAD, 81) = {
* Finger Usage is repeated 5 times.
*/
static const uint8_t report_desc[] = {
- 0x05, 0x0D, /* Usage Page (Digitizer) */
- 0x09, 0x05, /* Usage (Touch Pad) */
- 0xA1, 0x01, /* Collection (Application) */
- 0x85, 0x01, /* Report ID (1, Touch) */
+ /* Touchpad Collection */
+ 0x05, 0x0D, /* Usage Page (Digitizer) */
+ 0x09, 0x05, /* Usage (Touch Pad) */
+ 0xA1, 0x01, /* Collection (Application) */
+ 0x85, REPORT_ID_TOUCHPAD, /* Report ID (1, Touch) */
/* Finger 0 */
FINGER_USAGE,
/* Finger 1 */
@@ -138,32 +140,33 @@ static const uint8_t report_desc[] = {
/* Finger 4 */
FINGER_USAGE,
/* Contact count */
- 0x05, 0x0D, /* Usage Page (Digitizer) */
- 0x09, 0x54, /* Usage (Contact count) */
- 0x75, 0x07, /* Report Size (7) */
- 0x95, 0x01, /* Report Count (1) */
- 0x81, 0x02, /* Input (Data,Var,Abs) */
+ 0x05, 0x0D, /* Usage Page (Digitizer) */
+ 0x09, 0x54, /* Usage (Contact count) */
+ 0x25, MAX_FINGERS, /* Logical Maximum (MAX_FINGERS) */
+ 0x75, 0x07, /* Report Size (7) */
+ 0x95, 0x01, /* Report Count (1) */
+ 0x81, 0x02, /* Input (Data,Var,Abs) */
/* Button */
- 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
- 0x05, 0x09, /* Usage (Button) */
- 0x19, 0x01, /* Usage Minimum (0x01) */
- 0x29, 0x01, /* Usage Maximum (0x01) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x01, /* Report Count (1) */
- 0x81, 0x02, /* Input (Data,Var,Abs) */
+ 0x05, 0x01, /* Usage Page(Generic Desktop Ctrls) */
+ 0x05, 0x09, /* Usage (Button) */
+ 0x19, 0x01, /* Usage Minimum (0x01) */
+ 0x29, 0x01, /* Usage Maximum (0x01) */
+ 0x15, 0x00, /* Logical Minimum (0) */
+ 0x25, 0x01, /* Logical Maximum (1) */
+ 0x75, 0x01, /* Report Size (1) */
+ 0x95, 0x01, /* Report Count (1) */
+ 0x81, 0x02, /* Input (Data,Var,Abs) */
/* Timestamp */
- 0x05, 0x0D, /* Usage Page (Digitizer) */
- 0x55, 0x0C, /* Unit Exponent (-4) */
- 0x66, 0x01, 0x10, /* Unit (System: SI Linear, Time: Seconds) */
+ 0x05, 0x0D, /* Usage Page (Digitizer) */
+ 0x55, 0x0C, /* Unit Exponent (-4) */
+ 0x66, 0x01, 0x10, /* Unit (Seconds) */
0x47, 0xFF, 0xFF, 0x00, 0x00, /* Physical Maximum (65535) */
0x27, 0xFF, 0xFF, 0x00, 0x00, /* Logical Maximum (65535) */
- 0x75, 0x10, /* Report Size (16) */
- 0x95, 0x01, /* Report Count (1) */
- 0x09, 0x56, /* Usage (0x56, Relative Scan Time) */
- 0x81, 0x02, /* Input (Data,Var,Abs) */
- 0xC0, /* End Collection */
+ 0x75, 0x10, /* Report Size (16) */
+ 0x95, 0x01, /* Report Count (1) */
+ 0x09, 0x56, /* Usage (0x56, Relative Scan Time) */
+ 0x81, 0x02, /* Input (Data,Var,Abs) */
+ 0xC0, /* End Collection */
};
const struct usb_hid_descriptor USB_CUSTOM_DESC_VAR(USB_IFACE_HID_TOUCHPAD,