1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* 3 * HID descriptor stuructures 4 * Copyright 2020-2021 Advanced Micro Devices, Inc. 5 * Authors: Nehal Bakulchandra Shah <Nehal-bakulchandra.shah@amd.com> 6 * Sandeep Singh <Sandeep.singh@amd.com> 7 * Basavaraj Natikar <Basavaraj.Natikar@amd.com> 8 */ 9 10#ifndef AMD_SFH_HID_REPORT_DESCRIPTOR_H 11#define AMD_SFH_HID_REPORT_DESCRIPTOR_H 12 13// Accelerometer 3D Sensor 14static const u8 accel3_report_descriptor[] = { 150x05, 0x20, /* Usage page */ 160x09, 0x73, /* Motion type Accel 3D */ 170xA1, 0x00, /* HID Collection (Physical) */ 18 19//feature reports(xmit/receive) 200x85, 1, /* HID Report ID */ 210x05, 0x20, /* HID usage page sensor */ 220x0A, 0x09, 0x03, /* Sensor property and sensor connection type */ 230x15, 0, /* HID logical MIN_8(0) */ 240x25, 2, /* HID logical MAX_8(2) */ 250x75, 8, /* HID report size(8) */ 260x95, 1, /* HID report count(1) */ 270xA1, 0x02, /* HID collection (logical) */ 280x0A, 0x30, 0x08, /* Sensor property connection type intergated sel*/ 290x0A, 0x31, 0x08, /* Sensor property connection type attached sel */ 300x0A, 0x32, 0x08, /* Sensor property connection type external sel */ 310xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 320xC0, /* HID end collection */ 330x0A, 0x16, 0x03, /* HID usage sensor property reporting state */ 340x15, 0, /* HID logical Min_8(0) */ 350x25, 5, /* HID logical Max_8(5) */ 360x75, 8, /* HID report size(8) */ 370x95, 1, /* HID report count(1) */ 380xA1, 0x02, /* HID collection(logical) */ 390x0A, 0x40, 0x08, /* Sensor property report state no events sel */ 400x0A, 0x41, 0x08, /* Sensor property report state all events sel */ 410x0A, 0x42, 0x08, /* Sensor property report state threshold events sel */ 420x0A, 0x43, 0x08, /* Sensor property report state no events wake sel */ 430x0A, 0x44, 0x08, /* Sensor property report state all events wake sel */ 440x0A, 0x45, 0x08, /* Sensor property report state threshold events wake sel */ 450xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 460xC0, /* HID end collection */ 470x0A, 0x19, 0x03, /* HID usage sensor property power state */ 480x15, 0, /* HID logical Min_8(0) */ 490x25, 5, /* HID logical Max_8(5) */ 500x75, 8, /* HID report size(8) */ 510x95, 1, /* HID report count(1) */ 520xA1, 0x02, /* HID collection(logical) */ 530x0A, 0x50, 0x08, /* Sensor property power state undefined sel */ 540x0A, 0x51, 0x08, /* Sensor property power state D0 full power sel */ 550x0A, 0x52, 0x08, /* Sensor property power state D1 low power sel */ 560x0A, 0x53, 0x08, /* Sensor property power state D2 standby with wake sel */ 570x0A, 0x54, 0x08, /* Sensor property power state D3 sleep with wake sel */ 580x0A, 0x55, 0x08, /* Sensor property power state D4 power off sel */ 590xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 600xC0, /* HID end collection */ 610x0A, 0x01, 0x02, /* HID usage sensor state */ 620x15, 0, /* HID logical Min_8(0) */ 630x25, 6, /* HID logical Max_8(6) */ 640x75, 8, /* HID report size(8) */ 650x95, 1, /* HID report count(1) */ 660xA1, 0x02, /* HID collection(logical) */ 670x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 680x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 690x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 700x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 710x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 720x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 730x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 740xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 750xC0, /* HID end collection */ 760x0A, 0x0E, 0x03, /* HID usage sensor property report interval */ 770x15, 0, /* HID logical Min_8(0) */ 780x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */ 79 800x75, 32, /* HID report size(32) */ 810x95, 1, /* HID report count(1) */ 820x55, 0, /* HID unit exponent(0) */ 830xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 840x0A, 0x52, 0x14, /* Sensor data motion accel and mod change sensitivity ABS) */ 85 860x15, 0, /* HID logical Min_8(0) */ 870x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */ 88 890x75, 16, /* HID report size(16) */ 900x95, 1, /* HID report count(1) */ 910x55, 0x0E, /* HID unit exponent(0x0E) */ 920xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 930x0A, 0x52, 0x24, /* HID usage sensor data (motion accel and mod max) */ 94 950x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 96 970x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 98 990x75, 16, /* HID report size(16) */ 1000x95, 1, /* HID report count(1) */ 1010x55, 0x0E, /* HID unit exponent(0x0E) */ 1020xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 1030x0A, 0x52, 0x34, /* HID usage sensor data (motion accel and mod min) */ 104 1050x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 106 1070x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 108 1090x75, 16, /* HID report size(16) */ 1100x95, 1, /* HID report count(1) */ 1110x55, 0x0E, /* HID unit exponent(0x0E) */ 1120xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 113 114//input report (transmit) 1150x05, 0x20, /* HID usage page sensors */ 1160x0A, 0x01, 0x02, /* HID usage sensor state */ 1170x15, 0, /* HID logical Min_8(0) */ 1180x25, 6, /* HID logical Max_8(6) */ 1190x75, 8, /* HID report size(8) */ 1200x95, 1, /* HID report count (1) */ 1210xA1, 0x02, /* HID end collection (logical) */ 1220x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 1230x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 1240x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 1250x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 1260x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 1270x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 1280x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 1290X81, 0x00, /* HID Input (Data_Arr_Abs) */ 1300xC0, /* HID end collection */ 1310x0A, 0x02, 0x02, /* HID usage sensor event */ 1320x15, 0, /* HID logical Min_8(0) */ 1330x25, 5, /* HID logical Max_8(5) */ 1340x75, 8, /* HID report size(8) */ 1350x95, 1, /* HID report count (1) */ 1360xA1, 0x02, /* HID end collection (logical) */ 1370x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */ 1380x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */ 1390x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */ 1400x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */ 1410x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */ 1420x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */ 1430X81, 0x00, /* HID Input (Data_Arr_Abs) */ 1440xC0, /* HID end collection */ 1450x0A, 0x53, 0x04, /* HID usage sensor data motion Acceleration X axis */ 1460x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 147 1480x27, 0xFF, 0xff, 0XFF, 0XFF, /* HID logical Max_32 */ 149 1500x75, 32, /* HID report size(32) */ 1510x95, 1, /* HID report count (1) */ 1520x55, 0x0E, /* HID unit exponent(0x0E) */ 1530X81, 0x02, /* HID Input (Data_Arr_Abs) */ 1540x0A, 0x54, 0x04, /* HID usage sensor data motion Acceleration Y axis */ 1550x17, 0X00, 0X00, 0x01, 0x80, /* HID logical Min_32 */ 156 1570x27, 0xFF, 0xFF, 0XFF, 0XFF, /* HID logical Max_32 */ 158 1590x75, 32, /* HID report size(32) */ 1600x95, 1, /* HID report count (1) */ 1610x55, 0x0E, /* HID unit exponent(0x0E) */ 1620X81, 0x02, /* HID Input (Data_Arr_Abs) */ 1630x0A, 0x55, 0x04, /* HID usage sensor data motion Acceleration Z axis */ 1640x17, 0X00, 0X00, 0x01, 0x80, /* HID logical Min_32 */ 165 1660x27, 0XFF, 0XFF, 0xFF, 0x7F, /* HID logical Max_32 */ 167 1680x75, 32, /* HID report size(32) */ 1690x95, 1, /* HID report count (1) */ 1700x55, 0x0E, /* HID unit exponent(0x0E) */ 1710X81, 0x02, /* HID Input (Data_Arr_Abs) */ 172 1730x0A, 0x51, 0x04, /* HID usage sensor data motion state */ 1740x15, 0, /* HID logical Min_8(0) False = Still*/ 1750x25, 1, /* HID logical Min_8(1) True = In motion */ 1760x75, 8, /* HID report size(8) */ 1770x95, 1, /* HID report count (1) */ 1780X81, 0x02, /* HID Input (Data_Arr_Abs) */ 1790xC0 /* HID end collection */ 180}; 181 182static const u8 gyro3_report_descriptor[] = { 1830x05, 0x20, /* Usage page */ 1840x09, 0x76, /* Motion type Gyro3D */ 1850xA1, 0x00, /* HID Collection (Physical) */ 186 1870x85, 2, /* HID Report ID */ 1880x05, 0x20, /* HID usage page sensor */ 1890x0A, 0x09, 0x03, /* Sensor property and sensor connection type */ 1900x15, 0, /* HID logical MIN_8(0) */ 1910x25, 2, /* HID logical MAX_8(2) */ 1920x75, 8, /* HID report size(8) */ 1930x95, 1, /* HID report count(1) */ 1940xA1, 0x02, /* HID collection (logical) */ 1950x0A, 0x30, 0x08, /* Sensor property connection type intergated sel */ 1960x0A, 0x31, 0x08, /* Sensor property connection type attached sel */ 1970x0A, 0x32, 0x08, /* Sensor property connection type external sel */ 1980xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 1990xC0, /* HID end collection */ 2000x0A, 0x16, 0x03, /* HID usage sensor property reporting state */ 2010x15, 0, /* HID logical Min_8(0) */ 2020x25, 5, /* HID logical Max_8(5) */ 2030x75, 8, /* HID report size(8) */ 2040x95, 1, /* HID report count(1) */ 2050xA1, 0x02, /* HID collection(logical) */ 2060x0A, 0x40, 0x08, /* Sensor reporting state no events sel */ 2070x0A, 0x41, 0x08, /* Sensor reporting state all events sel */ 2080x0A, 0x42, 0x08, /* Sensor reporting state threshold events sel */ 2090x0A, 0x43, 0x08, /* Sensor reporting state no events wake sel */ 2100x0A, 0x44, 0x08, /* Sensor reporting state all events wake sel */ 2110x0A, 0x45, 0x08, /* Sensor reporting state threshold events wake sel */ 2120xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 2130xC0, /* HID end collection */ 2140x0A, 0x19, 0x03, /* HID usage sensor property power state */ 2150x15, 0, /* HID logical Min_8(0) */ 2160x25, 5, /* HID logical Max_8(5) */ 2170x75, 8, /* HID report size(8) */ 2180x95, 1, /* HID report count(1) */ 2190xA1, 0x02, /* HID collection(logical) */ 2200x0A, 0x50, 0x08, /* Sensor power state undefined sel */ 2210x0A, 0x51, 0x08, /* Sensor power state D0 full power sel */ 2220x0A, 0x52, 0x08, /* Sensor power state D1 low power sel */ 2230x0A, 0x53, 0x08, /* Sensor power state D2 standby with wake sel */ 2240x0A, 0x54, 0x08, /* Sensor power state D3 sleep with wake sel */ 2250x0A, 0x55, 0x08, /* Sensor power state D4 power off sel */ 2260xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 2270xC0, /* HID end collection */ 2280x0A, 0x01, 0x02, /* HID usage sensor state */ 2290x15, 0, /* HID logical Min_8(0) */ 2300x25, 6, /* HID logical Max_8(6) */ 2310x75, 8, /* HID report size(8) */ 2320x95, 1, /* HID report count(1) */ 2330xA1, 0x02, /* HID collection(logical) */ 2340x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 2350x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 2360x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 2370x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 2380x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 2390x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 2400x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 2410xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 2420xC0, /* HID end collection */ 2430x0A, 0x0E, 0x03, /* HID usage sensor property report interval */ 2440x15, 0, /* HID logical Min_8(0) */ 2450x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */ 246 2470x75, 32, /* HID report size(32) */ 2480x95, 1, /* HID report count(1) */ 2490x55, 0, /* HID unit exponent(0) */ 2500xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 2510x0A, 0x56, 0x14, /* Angular velocity and mod change sensitivity ABS)*/ 252 2530x15, 0, /* HID logical Min_8(0) */ 2540x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */ 255 2560x75, 16, /* HID report size(16) */ 2570x95, 1, /* HID report count(1) */ 2580x55, 0x0E, /* HID unit exponent(0x0E) */ 2590xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 2600x0A, 0x56, 0x24, /* Sensor data (motion angular velocity and mod max) */ 261 2620x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 263 2640x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 265 2660x75, 16, /* HID report size(16) */ 2670x95, 1, /* HID report count(1) */ 2680x55, 0x0E, /* HID unit exponent(0x0E) */ 2690xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 2700x0A, 0x56, 0x34, /* HID usage sensor data (motion accel and mod min) */ 271 2720x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 273 2740x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 275 2760x75, 16, /* HID report size(16) */ 2770x95, 1, /* HID report count(1) */ 2780x55, 0x0E, /* HID unit exponent(0x0E) */ 2790xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 280 281//Input reports(transmit) 2820x05, 0x20, /* HID usage page sensors */ 2830x0A, 0x01, 0x02, /* HID usage sensor state */ 2840x15, 0, /* HID logical Min_8(0) */ 2850x25, 6, /* HID logical Max_8(6) */ 2860x75, 8, /* HID report size(8) */ 2870x95, 1, /* HID report count (1) */ 2880xA1, 0x02, /* HID end collection (logical) */ 2890x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 2900x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 2910x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 2920x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 2930x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 2940x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 2950x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 2960X81, 0x00, /* HID Input (Data_Arr_Abs) */ 2970xC0, /* HID end collection */ 2980x0A, 0x02, 0x02, /* HID usage sensor event */ 2990x15, 0, /* HID logical Min_8(0) */ 3000x25, 5, /* HID logical Max_8(5) */ 3010x75, 8, /* HID report size(8) */ 3020x95, 1, /* HID report count (1) */ 3030xA1, 0x02, /* HID end collection (logical) */ 3040x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */ 3050x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */ 3060x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */ 3070x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */ 3080x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */ 3090x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */ 3100X81, 0x00, /* HID Input (Data_Arr_Abs) */ 3110xC0, /* HID end collection */ 3120x0A, 0x57, 0x04, /* Sensor data motion Angular velocity X axis */ 3130x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 314 3150x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 316 3170x75, 32, /* HID report size(32) */ 3180x95, 1, /* HID report count (1) */ 3190x55, 0x0E, /* HID unit exponent(0x0E) */ 3200X81, 0x02, /* HID Input (Data_Arr_Abs) */ 3210x0A, 0x58, 0x04, /* Sensor data motion Angular velocity Y axis */ 3220x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 323 3240x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 325 3260x75, 32, /* HID report size(32) */ 3270x95, 1, /* HID report count (1) */ 3280x55, 0x0E, /* HID unit exponent(0x0E) */ 3290X81, 0x02, /* HID Input (Data_Arr_Abs) */ 3300x0A, 0x59, 0x04, /* Sensor data motion Angular velocity Z axis */ 3310x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 332 3330x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 334 3350x75, 32, /* HID report size(32) */ 3360x95, 1, /* HID report count (1) */ 3370x55, 0x0E, /* HID unit exponent(0x0E) */ 3380X81, 0x02, /* HID Input (Data_Arr_Abs) */ 339 3400xC0, /* HID end collection */ 341}; 342 343static const u8 comp3_report_descriptor[] = { 3440x05, 0x20, /* Usage page */ 3450x09, 0x83, /* Motion type Orientation compass 3D */ 3460xA1, 0x00, /* HID Collection (Physical) */ 347 3480x85, 3, /* HID Report ID */ 3490x05, 0x20, /* HID usage page sensor */ 3500x0A, 0x09, 0x03, /* Sensor property and sensor connection type */ 3510x15, 0, /* HID logical MIN_8(0) */ 3520x25, 2, /* HID logical MAX_8(2) */ 3530x75, 8, /* HID report size(8) */ 3540x95, 1, /* HID report count(1) */ 3550xA1, 0x02, /* HID collection (logical) */ 3560x0A, 0x30, 0x08, /* Sensor property connection type intergated sel */ 3570x0A, 0x31, 0x08, /* Sensor property connection type attached sel */ 3580x0A, 0x32, 0x08, /* Sensor property connection type external sel */ 3590xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 3600xC0, /* HID end collection */ 3610x0A, 0x16, 0x03, /* HID usage sensor property reporting state */ 3620x15, 0, /* HID logical Min_8(0) */ 3630x25, 5, /* HID logical Max_8(5) */ 3640x75, 8, /* HID report size(8) */ 3650x95, 1, /* HID report count(1) */ 3660xA1, 0x02, /* HID collection(logical) */ 3670x0A, 0x40, 0x08, /* Sensor reporting state no events sel */ 3680x0A, 0x41, 0x08, /* Sensor reporting state all events sel */ 3690x0A, 0x42, 0x08, /* Sensor reporting state threshold events sel */ 3700x0A, 0x43, 0x08, /* Sensor reporting state no events wake sel */ 3710x0A, 0x44, 0x08, /* Sensor reporting state all events wake sel */ 3720x0A, 0x45, 0x08, /* Sensor reporting state threshold events wake sel */ 3730xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 3740xC0, /* HID end collection */ 3750x0A, 0x19, 0x03, /* HID usage sensor property power state */ 3760x15, 0, /* HID logical Min_8(0) */ 3770x25, 5, /* HID logical Max_8(5) */ 3780x75, 8, /* HID report size(8) */ 3790x95, 1, /* HID report count(1) */ 3800xA1, 0x02, /* HID collection(logical) */ 3810x0A, 0x50, 0x08, /* Sensor power state undefined sel */ 3820x0A, 0x51, 0x08, /* Sensor power state D0 full power sel */ 3830x0A, 0x52, 0x08, /* Sensor power state D1 low power sel */ 3840x0A, 0x53, 0x08, /* Sensor power state D2 standby with wake sel */ 3850x0A, 0x54, 0x08, /* Sensor power state D3 sleep with wake sel */ 3860x0A, 0x55, 0x08, /* Sensor power state D4 power off sel */ 3870xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 3880xC0, /* HID end collection */ 3890x0A, 0x01, 0x02, /* HID usage sensor state */ 3900x15, 0, /* HID logical Min_8(0) */ 3910x25, 6, /* HID logical Max_8(6) */ 3920x75, 8, /* HID report size(8) */ 3930x95, 1, /* HID report count(1) */ 3940xA1, 0x02, /* HID collection(logical) */ 3950x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 3960x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 3970x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 3980x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 3990x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 4000x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 4010x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 4020xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 4030xC0, /* HID end collection */ 4040x0A, 0x0E, 0x03, /* HID usage sensor property report interval */ 4050x15, 0, /* HID logical Min_8(0) */ 4060x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */ 4070x75, 32, /* HID report size(32) */ 4080x95, 1, /* HID report count(1) */ 4090x55, 0, /* HID unit exponent(0) */ 4100xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 4110x0A, 0x71, 0x14, /* Orientation and mod change sensitivity ABS)*/ 4120x15, 0, /* HID logical Min_8(0) */ 4130x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */ 4140x75, 16, /* HID report size(16) */ 4150x95, 1, /* HID report count(1) */ 4160x55, 0x0E, /* HID unit exponent(0x0E) */ 4170xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 4180x0A, 0x71, 0x24, /* Sensor data (motion orientation and mod max) */ 4190x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 4200x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 4210x75, 16, /* HID report size(16) */ 4220x95, 1, /* HID report count(1) */ 4230x55, 0x0F, /* HID unit exponent(0x0F) */ 4240xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 4250x0A, 0x71, 0x34, /* Sensor data (motion orientation and mod min) */ 4260x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 4270x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 4280x75, 16, /* HID report size(16) */ 4290x95, 1, /* HID report count(1) */ 4300x55, 0x0F, /* HID unit exponent(0x0F) */ 4310xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 4320x0A, 0x84, 0x14, /* Maganetic flux and change sensitivity ABS) */ 4330x15, 0, /* HID logical Min_8(0) */ 4340x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */ 4350x75, 16, /* HID report size(16) */ 4360x95, 1, /* HID report count(1) */ 4370x55, 0x0E, /* HID unit exponent(0x0E) */ 4380xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 4390x0A, 0x84, 0x24, /* Maganetic flux and mod change sensitivity Max) */ 4400x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 4410x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 4420x75, 16, /* HID report size(16) */ 4430x95, 1, /* HID report count(1) */ 4440x55, 0x0F, /* HID unit exponent(0x0F) */ 4450xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 4460x0A, 0x84, 0x34, /* Maganetic flux and mod change sensitivity Min */ 4470x16, 0x01, 0x80, /* HID logical Min_16(0x01,0x80) */ 4480x26, 0xFF, 0x7F, /* HID logical Max_16(0xFF,0x7F) */ 4490x75, 16, /* HID report size(16) */ 4500x95, 1, /* HID report count(1) */ 4510x55, 0x0F, /* HID unit exponent(0x0F) */ 4520xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 453 454//Input reports(transmit) 4550x05, 0x20, /* HID usage page sensors */ 4560x0A, 0x01, 0x02, /* HID usage sensor state */ 4570x15, 0, /* HID logical Min_8(0) */ 4580x25, 6, /* HID logical Max_8(6) */ 4590x75, 8, /* HID report size(8) */ 4600x95, 1, /* HID report count (1) */ 4610xA1, 0x02, /* HID end collection (logical) */ 4620x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 4630x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 4640x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 4650x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 4660x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 4670x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 4680x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 4690X81, 0x00, /* HID Input (Data_Arr_Abs) */ 4700xC0, /* HID end collection */ 4710x0A, 0x02, 0x02, /* HID usage sensor event */ 4720x15, 0, /* HID logical Min_8(0) */ 4730x25, 5, /* HID logical Max_8(5) */ 4740x75, 8, /* HID report size(8) */ 4750x95, 1, /* HID report count (1) */ 4760xA1, 0x02, /* HID end collection (logical) */ 4770x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */ 4780x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */ 4790x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */ 4800x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */ 4810x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */ 4820x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */ 4830X81, 0x00, /* HID Input (Data_Arr_Abs) */ 4840xC0, /* HID end collection */ 4850x0A, 0x85, 0x04, /* Sensor data orientation magnetic flux X axis */ 4860x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 4870x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 4880x75, 32, /* HID report size(32) */ 4890x95, 1, /* HID report count (1) */ 4900x55, 0x0D, /* HID unit exponent(0x0D) */ 4910X81, 0x02, /* HID Input (Data_Arr_Abs) */ 4920x0A, 0x86, 0x04, /* Sensor data orientation magnetic flux Y axis */ 4930x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 4940x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 4950x75, 32, /* HID report size(32) */ 4960x95, 1, /* HID report count (1) */ 4970x55, 0x0D, /* HID unit exponent(0x0D) */ 4980X81, 0x02, /* HID Input (Data_Arr_Abs) */ 4990x0A, 0x87, 0x04, /* Sensor data orientation magnetic flux Z axis */ 5000x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 5010x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 5020x75, 32, /* HID report size(32) */ 5030x95, 1, /* HID report count (1) */ 5040x55, 0x0D, /* HID unit exponent(0x0D) */ 5050X81, 0x02, /* HID Input (Data_Arr_Abs) */ 5060x0A, 0x88, 0x04, /* Sensor data orientation magnetometer accuracy */ 5070x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 5080x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 5090x75, 32, /* HID report size(32) */ 5100x95, 1, /* HID report count (1) */ 5110X81, 0x02, /* HID Input (Data_Arr_Abs) */ 5120xC0 /* HID end collection */ 513}; 514 515static const u8 als_report_descriptor[] = { 5160x05, 0x20, /* HID usage page sensor */ 5170x09, 0x41, /* HID usage sensor type Ambientlight */ 5180xA1, 0x00, /* HID Collection (Physical) */ 519 520//feature reports(xmit/receive)// 5210x85, 4, /* HID Report ID */ 5220x05, 0x20, /* HID usage page sensor */ 5230x0A, 0x09, 0x03, /* Sensor property and sensor connection type */ 5240x15, 0, /* HID logical MIN_8(0) */ 5250x25, 2, /* HID logical MAX_8(2) */ 5260x75, 8, /* HID report size(8) */ 5270x95, 1, /* HID report count(1) */ 5280xA1, 0x02, /* HID collection (logical) */ 5290x0A, 0x30, 0x08, /* Sensor property connection type intergated sel */ 5300x0A, 0x31, 0x08, /* Sensor property connection type attached sel */ 5310x0A, 0x32, 0x08, /* Sensor property connection type external sel */ 5320xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 5330xC0, /* HID end collection */ 5340x0A, 0x16, 0x03, /* HID usage sensor property reporting state */ 5350x15, 0, /* HID logical Min_8(0) */ 5360x25, 5, /* HID logical Max_8(5) */ 5370x75, 8, /* HID report size(8) */ 5380x95, 1, /* HID report count(1) */ 5390xA1, 0x02, /* HID collection(logical) */ 5400x0A, 0x40, 0x08, /* Sensor reporting state no events sel */ 5410x0A, 0x41, 0x08, /* Sensor reporting state all events sel */ 5420x0A, 0x42, 0x08, /* Sensor reporting state threshold events sel */ 5430x0A, 0x43, 0x08, /* Sensor reporting state no events wake sel */ 5440x0A, 0x44, 0x08, /* Sensor reporting state all events wake sel */ 5450x0A, 0x45, 0x08, /* Sensor reporting state threshold events wake sel */ 5460xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 5470xC0, /* HID end collection */ 5480x0A, 0x19, 0x03, /* HID usage sensor property power state */ 5490x15, 0, /* HID logical Min_8(0) */ 5500x25, 5, /* HID logical Max_8(5) */ 5510x75, 8, /* HID report size(8) */ 5520x95, 1, /* HID report count(1) */ 5530xA1, 0x02, /* HID collection(logical) */ 5540x0A, 0x50, 0x08, /* Sensor power state undefined sel */ 5550x0A, 0x51, 0x08, /* Sensor power state D0 full power sel */ 5560x0A, 0x52, 0x08, /* Sensor power state D1 low power sel */ 5570x0A, 0x53, 0x08, /* Sensor power state D2 standby with wake sel */ 5580x0A, 0x54, 0x08, /* Sensor power state D3 sleep with wake sel */ 5590x0A, 0x55, 0x08, /* Sensor power state D4 power off sel */ 5600xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 5610xC0, /* HID end collection */ 5620x0A, 0x01, 0x02, /* HID usage sensor state */ 5630x15, 0, /* HID logical Min_8(0) */ 5640x25, 6, /* HID logical Max_8(6) */ 5650x75, 8, /* HID report size(8) */ 5660x95, 1, /* HID report count(1) */ 5670xA1, 0x02, /* HID collection(logical) */ 5680x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 5690x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 5700x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 5710x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 5720x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 5730x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 5740x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 5750xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 5760xC0, /* HID end collection */ 5770x0A, 0x0E, 0x03, /* HID usage sensor property report interval */ 5780x15, 0, /* HID logical Min_8(0) */ 5790x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */ 5800x75, 32, /* HID report size(32) */ 5810x95, 1, /* HID report count(1) */ 5820x55, 0, /* HID unit exponent(0) */ 5830xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 5840x0A, 0xD1, 0xE4, /* Light illuminance and sensitivity REL PCT) */ 5850x15, 0, /* HID logical Min_8(0) */ 5860x26, 0x10, 0x27, /* HID logical Max_16(0x10,0x27) */ 5870x75, 16, /* HID report size(16) */ 5880x95, 1, /* HID report count(1) */ 5890x55, 0x0E, /* HID unit exponent(0x0E) */ 5900xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 5910x0A, 0xD1, 0x24, /* Sensor data (Light illuminance and mod max) */ 5920x15, 0, /* HID logical Min_8(0) */ 5930x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */ 5940x75, 16, /* HID report size(16) */ 5950x95, 1, /* HID report count(1) */ 5960x55, 0x0F, /* HID unit exponent(0x0F) */ 5970xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 5980x0A, 0xD1, 0x34, /* Sensor data (Light illuminance and mod min) */ 5990x15, 0, /* HID logical Min_8(0) */ 6000x26, 0xFF, 0xFF, /* HID logical Max_16(0xFF,0xFF) */ 6010x75, 16, /* HID report size(16) */ 6020x95, 1, /* HID report count(1) */ 6030x55, 0x0F, /* HID unit exponent(0x0F) */ 6040xB1, 0x02, /* HID feature (Data_Arr_Abs) */ 605 606//Input reports (transmit) 6070x05, 0x20, /* HID usage page sensors */ 6080x0A, 0x01, 0x02, /* HID usage sensor state */ 6090x15, 0, /* HID logical Min_8(0) */ 6100x25, 6, /* HID logical Max_8(6) */ 6110x75, 8, /* HID report size(8) */ 6120x95, 1, /* HID report count (1) */ 6130xA1, 0x02, /* HID end collection (logical) */ 6140x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 6150x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 6160x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 6170x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 6180x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 6190x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 6200x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 6210X81, 0x00, /* HID Input (Data_Arr_Abs) */ 6220xC0, /* HID end collection */ 6230x0A, 0x02, 0x02, /* HID usage sensor event */ 6240x15, 0, /* HID logical Min_8(0) */ 6250x25, 5, /* HID logical Max_8(5) */ 6260x75, 8, /* HID report size(8) */ 6270x95, 1, /* HID report count (1) */ 6280xA1, 0x02, /* HID end collection (logical) */ 6290x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */ 6300x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */ 6310x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */ 6320x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */ 6330x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */ 6340x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */ 6350X81, 0x00, /* HID Input (Data_Arr_Abs) */ 6360xC0, /* HID end collection */ 6370x0A, 0xD1, 0x04, /* HID usage sensor data light illuminance */ 6380x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 6390x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 6400x55, 0x0F, /* HID unit exponent(0x0F) */ 6410x75, 32, /* HID report size(32) */ 6420x95, 1, /* HID report count (1) */ 6430X81, 0x02, /* HID Input (Data_Arr_Abs) */ 6440x0A, 0xD2, 0x04, /* HID usage sensor data light temperature */ 6450x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 6460x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 6470x55, 0x0, /* HID unit exponent(0x0) */ 6480x75, 32, /* HID report size(32) */ 6490x95, 1, /* HID report count (1) */ 6500X81, 0x02, /* HID Input (Data_Arr_Abs) */ 6510x0A, 0xD4, 0x04, /* HID usage sensor data light chromaticity_x */ 6520x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 6530x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 6540x55, 0x0, /* HID unit exponent(0x0) */ 6550x75, 32, /* HID report size(32) */ 6560x95, 1, /* HID report count(1) */ 6570X81, 0x02, /* HID Input (Data_Var_Abs) */ 6580x0A, 0xD5, 0x04, /* HID usage sensor data light chromaticity_y */ 6590x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */ 6600x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */ 6610x55, 0x0, /* HID unit exponent(0x0) */ 6620x75, 32, /* HID report size(32) */ 6630x95, 1, /* HID report count (1) */ 6640X81, 0x02, /* HID Input (Data_Var_Abs) */ 6650xC0 /* HID end collection */ 666}; 667 668/* BIOMETRIC PRESENCE*/ 669static const u8 hpd_report_descriptor[] = { 6700x05, 0x20, /* Usage page */ 6710x09, 0x11, /* BIOMETRIC PRESENCE */ 6720xA1, 0x00, /* HID Collection (Physical) */ 673 674//feature reports(xmit/receive) 6750x85, 5, /* HID Report ID */ 6760x05, 0x20, /* HID usage page sensor */ 6770x0A, 0x09, 0x03, /* Sensor property and sensor connection type */ 6780x15, 0, /* HID logical MIN_8(0) */ 6790x25, 2, /* HID logical MAX_8(2) */ 6800x75, 8, /* HID report size(8) */ 6810x95, 1, /* HID report count(1) */ 6820xA1, 0x02, /* HID collection (logical) */ 6830x0A, 0x30, 0x08, /* Sensor property connection type intergated sel*/ 6840x0A, 0x31, 0x08, /* Sensor property connection type attached sel */ 6850x0A, 0x32, 0x08, /* Sensor property connection type external sel */ 6860xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 6870xC0, /* HID end collection */ 6880x0A, 0x16, 0x03, /* HID usage sensor property reporting state */ 6890x15, 0, /* HID logical Min_8(0) */ 6900x25, 5, /* HID logical Max_8(5) */ 6910x75, 8, /* HID report size(8) */ 6920x95, 1, /* HID report count(1) */ 6930xA1, 0x02, /* HID collection(logical) */ 6940x0A, 0x40, 0x08, /* Sensor property report state no events sel */ 6950x0A, 0x41, 0x08, /* Sensor property report state all events sel */ 6960x0A, 0x42, 0x08, /* Sensor property report state threshold events sel */ 6970x0A, 0x43, 0x08, /* Sensor property report state no events wake sel */ 6980x0A, 0x44, 0x08, /* Sensor property report state all events wake sel */ 6990x0A, 0x45, 0x08, /* Sensor property report state threshold events wake sel */ 7000xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 7010xC0, /* HID end collection */ 7020x0A, 0x19, 0x03, /* HID usage sensor property power state */ 7030x15, 0, /* HID logical Min_8(0) */ 7040x25, 5, /* HID logical Max_8(5) */ 7050x75, 8, /* HID report size(8) */ 7060x95, 1, /* HID report count(1) */ 7070xA1, 0x02, /* HID collection(logical) */ 7080x0A, 0x50, 0x08, /* Sensor property power state undefined sel */ 7090x0A, 0x51, 0x08, /* Sensor property power state D0 full power sel */ 7100x0A, 0x52, 0x08, /* Sensor property power state D1 low power sel */ 7110x0A, 0x53, 0x08, /* Sensor property power state D2 standby with wake sel */ 7120x0A, 0x54, 0x08, /* Sensor property power state D3 sleep with wake sel */ 7130x0A, 0x55, 0x08, /* Sensor property power state D4 power off sel */ 7140xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 7150xC0, /* HID end collection */ 7160x0A, 0x01, 0x02, /* HID usage sensor state */ 7170x15, 0, /* HID logical Min_8(0) */ 7180x25, 6, /* HID logical Max_8(6) */ 7190x75, 8, /* HID report size(8) */ 7200x95, 1, /* HID report count(1) */ 7210xA1, 0x02, /* HID collection(logical) */ 7220x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 7230x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 7240x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 7250x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 7260x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 7270x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 7280x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 7290xB1, 0x00, /* HID feature (Data_Arr_Abs) */ 7300xC0, /* HID end collection */ 7310x0A, 0x0E, 0x03, /* HID usage sensor property report interval */ 7320x15, 0, /* HID logical Min_8(0) */ 7330x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */ 734 7350x75, 32, /* HID report size(32) */ 7360x95, 1, /* HID report count(1) */ 7370x55, 0, /* HID unit exponent(0) */ 7380xB1, 0x02, /* HID feature (Data_Var_Abs) */ 739 740//input report (transmit) 7410x05, 0x20, /* HID usage page sensors */ 7420x0A, 0x01, 0x02, /* HID usage sensor state */ 7430x15, 0, /* HID logical Min_8(0) */ 7440x25, 6, /* HID logical Max_8(6) */ 7450x75, 8, /* HID report size(8) */ 7460x95, 1, /* HID report count (1) */ 7470xA1, 0x02, /* HID end collection (logical) */ 7480x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */ 7490x0A, 0x01, 0x08, /* HID usage sensor state ready sel */ 7500x0A, 0x02, 0x08, /* HID usage sensor state not available sel */ 7510x0A, 0x03, 0x08, /* HID usage sensor state no data sel */ 7520x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */ 7530x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */ 7540x0A, 0x06, 0x08, /* HID usage sensor state error sel */ 7550X81, 0x00, /* HID Input (Data_Arr_Abs) */ 7560xC0, /* HID end collection */ 7570x0A, 0x02, 0x02, /* HID usage sensor event */ 7580x15, 0, /* HID logical Min_8(0) */ 7590x25, 5, /* HID logical Max_8(5) */ 7600x75, 8, /* HID report size(8) */ 7610x95, 1, /* HID report count (1) */ 7620xA1, 0x02, /* HID end collection (logical) */ 7630x0A, 0x10, 0x08, /* HID usage sensor event unknown sel */ 7640x0A, 0x11, 0x08, /* HID usage sensor event state changed sel */ 7650x0A, 0x12, 0x08, /* HID usage sensor event property changed sel */ 7660x0A, 0x13, 0x08, /* HID usage sensor event data updated sel */ 7670x0A, 0x14, 0x08, /* HID usage sensor event poll response sel */ 7680x0A, 0x15, 0x08, /* HID usage sensor event change sensitivity sel */ 7690X81, 0x00, /* HID Input (Data_Arr_Abs) */ 7700xC0, /* HID end collection */ 7710x0A, 0xB1, 0x04, /* HID usage sensor data BIOMETRIC HUMAN PRESENCE */ 7720x15, 0, /* HID logical Min_8(0) */ 7730x25, 1, /* HID logical Max_8(1) */ 7740x75, 8, /* HID report size(8) */ 7750x95, 1, /* HID report count (1) */ 7760X81, 0x02, /* HID Input (Data_Var_Abs) */ 7770xC0 /* HID end collection */ 778}; 779#endif 780