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