xref: /linux/drivers/hid/amd-sfh-hid/hid_descriptor/amd_sfh_hid_report_desc.h (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
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
14 static const u8 accel3_report_descriptor[] = {
15 0x05, 0x20,          /* Usage page */
16 0x09, 0x73,          /* Motion type Accel 3D */
17 0xA1, 0x00,          /* HID Collection (Physical) */
18 
19 //feature reports(xmit/receive)
20 0x85, 1,           /* HID  Report ID */
21 0x05, 0x20,	   /* HID usage page sensor */
22 0x0A, 0x09, 0x03,  /* Sensor property and sensor connection type */
23 0x15, 0,           /* HID logical MIN_8(0) */
24 0x25, 2,	   /* HID logical MAX_8(2) */
25 0x75, 8,	   /* HID report size(8) */
26 0x95, 1,	   /* HID report count(1) */
27 0xA1, 0x02,	   /* HID collection (logical) */
28 0x0A, 0x30, 0x08, /* Sensor property connection type intergated sel*/
29 0x0A, 0x31, 0x08, /* Sensor property connection type attached sel */
30 0x0A, 0x32, 0x08, /* Sensor property connection type external sel */
31 0xB1, 0x00,       /* HID feature (Data_Arr_Abs) */
32 0xC0,		  /* HID end collection */
33 0x0A, 0x16, 0x03, /* HID usage sensor property reporting state */
34 0x15, 0,          /* HID logical Min_8(0) */
35 0x25, 5,	  /* HID logical Max_8(5) */
36 0x75, 8,	  /* HID report size(8) */
37 0x95, 1,          /* HID report count(1) */
38 0xA1, 0x02,	  /* HID collection(logical) */
39 0x0A, 0x40, 0x08, /* Sensor property report state no events sel */
40 0x0A, 0x41, 0x08, /* Sensor property report state all events sel */
41 0x0A, 0x42, 0x08, /* Sensor property report state threshold events sel */
42 0x0A, 0x43, 0x08, /* Sensor property report state no events wake sel */
43 0x0A, 0x44, 0x08, /* Sensor property report state all events wake sel */
44 0x0A, 0x45, 0x08, /* Sensor property report state threshold events wake sel */
45 0xB1, 0x00,	  /* HID feature (Data_Arr_Abs) */
46 0xC0,		  /* HID end collection */
47 0x0A, 0x19, 0x03, /* HID usage sensor property power state */
48 0x15, 0,	  /* HID logical Min_8(0) */
49 0x25, 5,	  /* HID logical Max_8(5) */
50 0x75, 8,	  /* HID report size(8) */
51 0x95, 1,	  /* HID report count(1) */
52 0xA1, 0x02,	  /* HID collection(logical) */
53 0x0A, 0x50, 0x08, /* Sensor property power state undefined sel */
54 0x0A, 0x51, 0x08, /* Sensor property power state D0 full power  sel */
55 0x0A, 0x52, 0x08, /* Sensor property power state D1 low power sel */
56 0x0A, 0x53, 0x08, /* Sensor property power state D2 standby with wake sel */
57 0x0A, 0x54, 0x08, /* Sensor property power state D3 sleep with wake  sel */
58 0x0A, 0x55, 0x08, /* Sensor property power state D4 power off sel */
59 0xB1, 0x00,       /* HID feature (Data_Arr_Abs) */
60 0xC0,		  /* HID end collection */
61 0x0A, 0x01, 0x02, /* HID usage sensor state */
62 0x15, 0,	  /* HID logical Min_8(0) */
63 0x25, 6,	  /* HID logical Max_8(6) */
64 0x75, 8,	  /* HID report size(8) */
65 0x95, 1,	  /* HID report count(1) */
66 0xA1, 0x02,	  /* HID collection(logical) */
67 0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
68 0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
69 0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
70 0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
71 0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
72 0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
73 0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
74 0xB1, 0x00,	  /* HID feature (Data_Arr_Abs) */
75 0xC0,		  /* HID end collection */
76 0x0A, 0x0E, 0x03, /* HID usage sensor property report interval */
77 0x15, 0,	  /* HID logical Min_8(0) */
78 0x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */
79 
80 0x75, 32,	  /* HID report size(32) */
81 0x95, 1,	  /* HID report count(1) */
82 0x55, 0,	  /* HID unit exponent(0) */
83 0xB1, 0x02,	  /* HID feature (Data_Arr_Abs) */
84 0x0A, 0x52, 0x14, /* Sensor data motion accel and mod change sensitivity ABS) */
85 
86 0x15, 0,		/* HID logical Min_8(0) */
87 0x26, 0xFF, 0xFF,	/* HID logical Max_16(0xFF,0xFF) */
88 
89 0x75, 16,		/* HID report size(16) */
90 0x95, 1,		/* HID report count(1) */
91 0x55, 0x0E,		/* HID unit exponent(0x0E) */
92 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
93 0x0A, 0x52, 0x24,	/* HID usage sensor data (motion accel and mod max) */
94 
95 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
96 
97 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
98 
99 0x75, 16,		/* HID report size(16) */
100 0x95, 1,		/* HID report count(1) */
101 0x55, 0x0E,		/* HID unit exponent(0x0E) */
102 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
103 0x0A, 0x52, 0x34,	/* HID usage sensor data (motion accel and mod min) */
104 
105 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
106 
107 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
108 
109 0x75, 16,		/* HID report size(16) */
110 0x95, 1,		/* HID report count(1) */
111 0x55, 0x0E,		/* HID unit exponent(0x0E) */
112 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
113 
114 //input report (transmit)
115 0x05, 0x20,		 /* HID usage page sensors */
116 0x0A, 0x01, 0x02,	 /* HID usage sensor state */
117 0x15, 0,		 /* HID logical Min_8(0) */
118 0x25, 6,		 /* HID logical Max_8(6) */
119 0x75, 8,		 /* HID report size(8) */
120 0x95, 1,		 /* HID report count (1) */
121 0xA1, 0x02,		 /* HID end collection (logical) */
122 0x0A, 0x00, 0x08,	 /* HID usage sensor state unknown sel */
123 0x0A, 0x01, 0x08,	 /* HID usage sensor state ready sel */
124 0x0A, 0x02, 0x08,	 /* HID usage sensor state not available sel */
125 0x0A, 0x03, 0x08,	 /* HID usage sensor state no data sel */
126 0x0A, 0x04, 0x08,	 /* HID usage sensor state initializing sel */
127 0x0A, 0x05, 0x08,	 /* HID usage sensor state access denied sel */
128 0x0A, 0x06, 0x08,	 /* HID usage sensor state error sel */
129 0X81, 0x00,		 /* HID Input (Data_Arr_Abs) */
130 0xC0,			 /* HID end collection */
131 0x0A, 0x02, 0x02,	 /* HID usage sensor event */
132 0x15, 0,		 /* HID logical Min_8(0) */
133 0x25, 5,		 /* HID logical Max_8(5) */
134 0x75, 8,		 /* HID report size(8) */
135 0x95, 1,		 /* HID report count (1) */
136 0xA1, 0x02,		 /* HID end collection (logical) */
137 0x0A, 0x10, 0x08,	 /* HID usage sensor event unknown sel */
138 0x0A, 0x11, 0x08,	 /* HID usage sensor event state changed sel */
139 0x0A, 0x12, 0x08,	 /* HID usage sensor event property changed sel */
140 0x0A, 0x13, 0x08,	 /* HID usage sensor event data updated sel */
141 0x0A, 0x14, 0x08,	 /* HID usage sensor event poll response sel */
142 0x0A, 0x15, 0x08,	 /* HID usage sensor event change sensitivity sel */
143 0X81, 0x00,		 /* HID Input (Data_Arr_Abs) */
144 0xC0,			 /* HID end collection */
145 0x0A, 0x53, 0x04,	 /* HID usage sensor data motion Acceleration X axis */
146 0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
147 
148 0x27, 0xFF, 0xff, 0XFF, 0XFF, /* HID logical Max_32  */
149 
150 0x75, 32,		/* HID report size(32) */
151 0x95, 1,		/* HID report count (1) */
152 0x55, 0x0E,		/* HID unit exponent(0x0E) */
153 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
154 0x0A, 0x54, 0x04,	/* HID usage sensor data motion Acceleration Y axis */
155 0x17, 0X00, 0X00, 0x01, 0x80, /* HID logical Min_32 */
156 
157 0x27, 0xFF, 0xFF, 0XFF, 0XFF, /* HID logical Max_32 */
158 
159 0x75, 32,		/* HID report size(32) */
160 0x95, 1,		/* HID report count (1) */
161 0x55, 0x0E,		/* HID unit exponent(0x0E) */
162 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
163 0x0A, 0x55, 0x04,	/* HID usage sensor data motion Acceleration Z axis */
164 0x17, 0X00, 0X00, 0x01, 0x80, /* HID logical Min_32 */
165 
166 0x27, 0XFF, 0XFF, 0xFF, 0x7F, /* HID logical Max_32 */
167 
168 0x75, 32,		/* HID report size(32) */
169 0x95, 1,		/* HID report count (1) */
170 0x55, 0x0E,		/* HID unit exponent(0x0E) */
171 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
172 
173 0x0A, 0x51, 0x04,	/* HID usage sensor data motion state */
174 0x15, 0,		/* HID logical Min_8(0) False = Still*/
175 0x25, 1,		/* HID logical Min_8(1) True = In motion */
176 0x75, 8,		/* HID report size(8) */
177 0x95, 1,		/* HID report count (1) */
178 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
179 0xC0			/* HID end collection */
180 };
181 
182 static const u8 gyro3_report_descriptor[] = {
183 0x05, 0x20,		/* Usage page */
184 0x09, 0x76,		/* Motion type Gyro3D */
185 0xA1, 0x00,		/* HID Collection (Physical) */
186 
187 0x85, 2,		/* HID  Report ID */
188 0x05, 0x20,		/* HID usage page sensor */
189 0x0A, 0x09, 0x03,	/* Sensor property and sensor connection type */
190 0x15, 0,		/* HID logical MIN_8(0) */
191 0x25, 2,		/* HID logical MAX_8(2) */
192 0x75, 8,		/* HID report size(8) */
193 0x95, 1,		/* HID report count(1) */
194 0xA1, 0x02,		/* HID collection (logical) */
195 0x0A, 0x30, 0x08,	/* Sensor property connection type intergated sel */
196 0x0A, 0x31, 0x08,	/* Sensor property connection type attached sel */
197 0x0A, 0x32, 0x08,	/* Sensor property connection type external sel */
198 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
199 0xC0,			/* HID end collection */
200 0x0A, 0x16, 0x03,	/* HID usage sensor property reporting state */
201 0x15, 0,		/* HID logical Min_8(0) */
202 0x25, 5,		/* HID logical Max_8(5) */
203 0x75, 8,		/* HID report size(8) */
204 0x95, 1,		/* HID report count(1) */
205 0xA1, 0x02,		/* HID collection(logical) */
206 0x0A, 0x40, 0x08,	/* Sensor reporting state no events sel */
207 0x0A, 0x41, 0x08,	/* Sensor reporting state all events sel */
208 0x0A, 0x42, 0x08,	/* Sensor reporting state threshold events sel */
209 0x0A, 0x43, 0x08,	/* Sensor reporting state no events wake sel */
210 0x0A, 0x44, 0x08,	/* Sensor reporting state all events wake sel */
211 0x0A, 0x45, 0x08,	/* Sensor reporting state threshold events wake sel */
212 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
213 0xC0,			/* HID end collection */
214 0x0A, 0x19, 0x03,	/* HID usage sensor property power state */
215 0x15, 0,		/* HID logical Min_8(0) */
216 0x25, 5,		/* HID logical Max_8(5) */
217 0x75, 8,		/* HID report size(8) */
218 0x95, 1,		/* HID report count(1) */
219 0xA1, 0x02,		/* HID collection(logical) */
220 0x0A, 0x50, 0x08,	/* Sensor  power state undefined sel */
221 0x0A, 0x51, 0x08,	/* Sensor  power state D0 full power  sel */
222 0x0A, 0x52, 0x08,	/* Sensor  power state D1 low power sel */
223 0x0A, 0x53, 0x08,	/* Sensor  power state D2 standby with wake sel */
224 0x0A, 0x54, 0x08,	/* Sensor  power state D3 sleep with wake  sel */
225 0x0A, 0x55, 0x08,	/* Sensor  power state D4 power off sel */
226 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
227 0xC0,			/* HID end collection */
228 0x0A, 0x01, 0x02,	/* HID usage sensor state */
229 0x15, 0,		/* HID logical Min_8(0) */
230 0x25, 6,		/* HID logical Max_8(6) */
231 0x75, 8,		/* HID report size(8) */
232 0x95, 1,		/* HID report count(1) */
233 0xA1, 0x02,		/* HID collection(logical) */
234 0x0A, 0x00, 0x08,	/* HID usage sensor state unknown sel */
235 0x0A, 0x01, 0x08,	/* HID usage sensor state ready sel */
236 0x0A, 0x02, 0x08,	/* HID usage sensor state not available sel */
237 0x0A, 0x03, 0x08,	/* HID usage sensor state no data sel */
238 0x0A, 0x04, 0x08,	/* HID usage sensor state initializing sel */
239 0x0A, 0x05, 0x08,	/* HID usage sensor state access denied sel */
240 0x0A, 0x06, 0x08,	/* HID usage sensor state error sel */
241 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
242 0xC0,			/* HID end collection */
243 0x0A, 0x0E, 0x03,	/* HID usage sensor property report interval */
244 0x15, 0,		/* HID logical Min_8(0) */
245 0x27, 0xFF, 0xFF, 0xFF, 0xFF,	/* HID logical Max_32 */
246 
247 0x75, 32,		/* HID report size(32) */
248 0x95, 1,		/* HID report count(1) */
249 0x55, 0,		/* HID unit exponent(0) */
250 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
251 0x0A, 0x56, 0x14,	/* Angular velocity and mod change sensitivity ABS)*/
252 
253 0x15, 0,		/* HID logical Min_8(0) */
254 0x26, 0xFF, 0xFF,	/* HID logical Max_16(0xFF,0xFF) */
255 
256 0x75, 16,		/* HID report size(16) */
257 0x95, 1,		/* HID report count(1) */
258 0x55, 0x0E,		/* HID unit exponent(0x0E) */
259 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
260 0x0A, 0x56, 0x24,	/* Sensor data (motion angular velocity and mod max) */
261 
262 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
263 
264 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
265 
266 0x75, 16,		/* HID report size(16) */
267 0x95, 1,		/* HID report count(1) */
268 0x55, 0x0E,		/* HID unit exponent(0x0E) */
269 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
270 0x0A, 0x56, 0x34,	/* HID usage sensor data (motion accel and mod min) */
271 
272 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
273 
274 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
275 
276 0x75, 16,		/* HID report size(16) */
277 0x95, 1,		/* HID report count(1) */
278 0x55, 0x0E,		/* HID unit exponent(0x0E) */
279 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
280 
281 //Input reports(transmit)
282 0x05, 0x20,		/* HID usage page sensors */
283 0x0A, 0x01, 0x02,	/* HID usage sensor state */
284 0x15, 0,		/* HID logical Min_8(0) */
285 0x25, 6,		/* HID logical Max_8(6) */
286 0x75, 8,		/* HID report size(8) */
287 0x95, 1,		/* HID report count (1) */
288 0xA1, 0x02,		/* HID end collection (logical) */
289 0x0A, 0x00, 0x08,	/* HID usage sensor state unknown sel */
290 0x0A, 0x01, 0x08,	/* HID usage sensor state ready sel */
291 0x0A, 0x02, 0x08,	/* HID usage sensor state not available sel */
292 0x0A, 0x03, 0x08,	/* HID usage sensor state no data sel */
293 0x0A, 0x04, 0x08,	/* HID usage sensor state initializing sel */
294 0x0A, 0x05, 0x08,	/* HID usage sensor state access denied sel */
295 0x0A, 0x06, 0x08,	/* HID usage sensor state error sel */
296 0X81, 0x00,		/* HID Input (Data_Arr_Abs) */
297 0xC0,			/* HID end collection */
298 0x0A, 0x02, 0x02,	/* HID usage sensor event */
299 0x15, 0,		/* HID logical Min_8(0) */
300 0x25, 5,		/* HID logical Max_8(5) */
301 0x75, 8,		/* HID report size(8) */
302 0x95, 1,		/* HID report count (1) */
303 0xA1, 0x02,		/* HID end collection (logical) */
304 0x0A, 0x10, 0x08,	/* HID usage sensor event unknown sel */
305 0x0A, 0x11, 0x08,	/* HID usage sensor event state changed sel */
306 0x0A, 0x12, 0x08,	/* HID usage sensor event property changed sel */
307 0x0A, 0x13, 0x08,	/* HID usage sensor event data updated sel */
308 0x0A, 0x14, 0x08,	/* HID usage sensor event poll response sel */
309 0x0A, 0x15, 0x08,	/* HID usage sensor event change sensitivity sel */
310 0X81, 0x00,		/* HID Input (Data_Arr_Abs) */
311 0xC0,			/* HID end collection */
312 0x0A, 0x57, 0x04,	/* Sensor data motion Angular velocity  X axis */
313 0x17, 0x00, 0x00, 0x01, 0x80,	/* HID logical Min_32 */
314 
315 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	/* HID logical Max_32 */
316 
317 0x75, 32,		/* HID report size(32) */
318 0x95, 1,		/* HID report count (1) */
319 0x55, 0x0E,		/* HID unit exponent(0x0E) */
320 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
321 0x0A, 0x58, 0x04,	/* Sensor data motion Angular velocity  Y axis */
322 0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
323 
324 0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
325 
326 0x75, 32,		/* HID report size(32) */
327 0x95, 1,		/* HID report count (1) */
328 0x55, 0x0E,		/* HID unit exponent(0x0E) */
329 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
330 0x0A, 0x59, 0x04,	/* Sensor data motion Angular velocity  Z axis */
331 0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
332 
333 0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
334 
335 0x75, 32,		/* HID report size(32) */
336 0x95, 1,		/* HID report count (1) */
337 0x55, 0x0E,		/* HID unit exponent(0x0E) */
338 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
339 
340 0xC0,			/* HID end collection */
341 };
342 
343 static const u8 comp3_report_descriptor[] = {
344 0x05, 0x20,		/* Usage page */
345 0x09, 0x83,		/* Motion type Orientation compass 3D */
346 0xA1, 0x00,		/* HID Collection (Physical) */
347 
348 0x85, 3,		/* HID  Report ID */
349 0x05, 0x20,		/* HID usage page sensor */
350 0x0A, 0x09, 0x03,	/* Sensor property and sensor connection type */
351 0x15, 0,		/* HID logical MIN_8(0) */
352 0x25, 2,		/* HID logical MAX_8(2) */
353 0x75, 8,		/* HID report size(8) */
354 0x95, 1,		/* HID report count(1) */
355 0xA1, 0x02,		/* HID collection (logical) */
356 0x0A, 0x30, 0x08,	/* Sensor property connection type intergated sel */
357 0x0A, 0x31, 0x08,	/* Sensor property connection type attached sel */
358 0x0A, 0x32, 0x08,	/* Sensor property connection type external sel */
359 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
360 0xC0,			/* HID end collection */
361 0x0A, 0x16, 0x03,	/* HID usage sensor property reporting state */
362 0x15, 0,		/* HID logical Min_8(0) */
363 0x25, 5,		/* HID logical Max_8(5) */
364 0x75, 8,		/* HID report size(8) */
365 0x95, 1,		/* HID report count(1) */
366 0xA1, 0x02,		/* HID collection(logical) */
367 0x0A, 0x40, 0x08,	/* Sensor reporting state no events sel */
368 0x0A, 0x41, 0x08,	/* Sensor reporting state all events sel */
369 0x0A, 0x42, 0x08,	/* Sensor reporting state threshold events sel */
370 0x0A, 0x43, 0x08,	/* Sensor reporting state no events wake sel */
371 0x0A, 0x44, 0x08,	/* Sensor reporting state all events wake sel */
372 0x0A, 0x45, 0x08,	/* Sensor reporting state threshold events wake sel */
373 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
374 0xC0,			/* HID end collection */
375 0x0A, 0x19, 0x03,       /* HID usage sensor property power state */
376 0x15, 0,		/* HID logical Min_8(0) */
377 0x25, 5,		/* HID logical Max_8(5) */
378 0x75, 8,		/* HID report size(8) */
379 0x95, 1,		/* HID report count(1) */
380 0xA1, 0x02,		/* HID collection(logical) */
381 0x0A, 0x50, 0x08,	/* Sensor power state undefined sel */
382 0x0A, 0x51, 0x08,	/* Sensor power state D0 full power  sel */
383 0x0A, 0x52, 0x08,	/* Sensor power state D1 low power sel */
384 0x0A, 0x53, 0x08,	/* Sensor power state D2 standby with wake sel */
385 0x0A, 0x54, 0x08,	/* Sensor power state D3 sleep with wake  sel */
386 0x0A, 0x55, 0x08,	/* Sensor power state D4 power off sel */
387 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
388 0xC0,			/* HID end collection */
389 0x0A, 0x01, 0x02,	/* HID usage sensor state */
390 0x15, 0,		/* HID logical Min_8(0) */
391 0x25, 6,		/* HID logical Max_8(6) */
392 0x75, 8,		/* HID report size(8) */
393 0x95, 1,		/* HID report count(1) */
394 0xA1, 0x02,		/* HID collection(logical) */
395 0x0A, 0x00, 0x08,       /* HID usage sensor state unknown sel */
396 0x0A, 0x01, 0x08,       /* HID usage sensor state ready sel */
397 0x0A, 0x02, 0x08,       /* HID usage sensor state not available sel */
398 0x0A, 0x03, 0x08,       /* HID usage sensor state no data sel */
399 0x0A, 0x04, 0x08,       /* HID usage sensor state initializing sel */
400 0x0A, 0x05, 0x08,       /* HID usage sensor state access denied sel */
401 0x0A, 0x06, 0x08,       /* HID usage sensor state error sel */
402 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
403 0xC0,			/* HID end collection */
404 0x0A, 0x0E, 0x03,	/* HID usage sensor property report interval */
405 0x15, 0,		/* HID logical Min_8(0) */
406 0x27, 0xFF, 0xFF, 0xFF, 0xFF,	/* HID logical Max_32 */
407 0x75, 32,		/* HID report size(32) */
408 0x95, 1,		/* HID report count(1) */
409 0x55, 0,		/* HID unit exponent(0) */
410 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
411 0x0A, 0x71, 0x14,	/* Orientation  and mod change sensitivity ABS)*/
412 0x15, 0,		/* HID logical Min_8(0) */
413 0x26, 0xFF, 0xFF,	/* HID logical Max_16(0xFF,0xFF) */
414 0x75, 16,		/* HID report size(16) */
415 0x95, 1,		/* HID report count(1) */
416 0x55, 0x0E,		/* HID unit exponent(0x0E) */
417 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
418 0x0A, 0x71, 0x24,	/* Sensor data (motion orientation  and mod max) */
419 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
420 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
421 0x75, 16,		/* HID report size(16) */
422 0x95, 1,		/* HID report count(1) */
423 0x55, 0x0F,		/* HID unit exponent(0x0F) */
424 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
425 0x0A, 0x71, 0x34,	/* Sensor data (motion orientation  and mod min) */
426 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
427 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
428 0x75, 16,		/* HID report size(16) */
429 0x95, 1,		/* HID report count(1) */
430 0x55, 0x0F,		/* HID unit exponent(0x0F) */
431 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
432 0x0A, 0x84, 0x14,	/* Maganetic flux and change sensitivity ABS) */
433 0x15, 0,		/* HID logical Min_8(0) */
434 0x26, 0xFF, 0xFF,	/* HID logical Max_16(0xFF,0xFF) */
435 0x75, 16,		/* HID report size(16) */
436 0x95, 1,		/* HID report count(1) */
437 0x55, 0x0E,		/* HID unit exponent(0x0E) */
438 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
439 0x0A, 0x84, 0x24,	/* Maganetic flux and mod change sensitivity Max) */
440 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
441 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
442 0x75, 16,		/* HID report size(16) */
443 0x95, 1,		/* HID report count(1) */
444 0x55, 0x0F,		/* HID unit exponent(0x0F) */
445 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
446 0x0A, 0x84, 0x34,	/* Maganetic flux and mod change sensitivity Min */
447 0x16, 0x01, 0x80,	/* HID logical Min_16(0x01,0x80) */
448 0x26, 0xFF, 0x7F,	/* HID logical Max_16(0xFF,0x7F) */
449 0x75, 16,		/* HID report size(16) */
450 0x95, 1,		/* HID report count(1) */
451 0x55, 0x0F,		/* HID unit exponent(0x0F) */
452 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
453 
454 //Input reports(transmit)
455 0x05, 0x20,		/* HID usage page sensors */
456 0x0A, 0x01, 0x02,	/* HID usage sensor state */
457 0x15, 0,		/* HID logical Min_8(0) */
458 0x25, 6,		/* HID logical Max_8(6) */
459 0x75, 8,		/* HID report size(8) */
460 0x95, 1,		/* HID report count (1) */
461 0xA1, 0x02,		/* HID end collection (logical) */
462 0x0A, 0x00, 0x08,	/* HID usage sensor state unknown sel */
463 0x0A, 0x01, 0x08,	/* HID usage sensor state ready sel */
464 0x0A, 0x02, 0x08,	/* HID usage sensor state not available sel */
465 0x0A, 0x03, 0x08,	/* HID usage sensor state no data sel */
466 0x0A, 0x04, 0x08,	/* HID usage sensor state initializing sel */
467 0x0A, 0x05, 0x08,	/* HID usage sensor state access denied sel */
468 0x0A, 0x06, 0x08,	/* HID usage sensor state error sel */
469 0X81, 0x00,		/* HID Input (Data_Arr_Abs) */
470 0xC0,			/* HID end collection */
471 0x0A, 0x02, 0x02,	/* HID usage sensor event */
472 0x15, 0,		/* HID logical Min_8(0) */
473 0x25, 5,		/* HID logical Max_8(5) */
474 0x75, 8,		/* HID report size(8) */
475 0x95, 1,		/* HID report count (1) */
476 0xA1, 0x02,		/* HID end collection (logical) */
477 0x0A, 0x10, 0x08,	/* HID usage sensor event unknown sel */
478 0x0A, 0x11, 0x08,	/* HID usage sensor event state changed sel */
479 0x0A, 0x12, 0x08,	/* HID usage sensor event property changed sel */
480 0x0A, 0x13, 0x08,	/* HID usage sensor event data updated sel */
481 0x0A, 0x14, 0x08,	/* HID usage sensor event poll response sel */
482 0x0A, 0x15, 0x08,	/* HID usage sensor event change sensitivity sel */
483 0X81, 0x00,		/* HID Input (Data_Arr_Abs) */
484 0xC0,			/* HID end collection */
485 0x0A, 0x85, 0x04,	/* Sensor data orientation magnetic flux X axis */
486 0x17, 0x00, 0x00, 0x01, 0x80,	/* HID logical Min_32 */
487 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	/* HID logical Max_32 */
488 0x75, 32,		/* HID report size(32) */
489 0x95, 1,		/* HID report count (1) */
490 0x55, 0x0D,		/* HID unit exponent(0x0D) */
491 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
492 0x0A, 0x86, 0x04,	/* Sensor data orientation magnetic flux Y axis */
493 0x17, 0x00, 0x00, 0x01, 0x80,	/* HID logical Min_32 */
494 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	/* HID logical Max_32 */
495 0x75, 32,		/* HID report size(32) */
496 0x95, 1,		/* HID report count (1) */
497 0x55, 0x0D,		/* HID unit exponent(0x0D) */
498 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
499 0x0A, 0x87, 0x04,	/* Sensor data orientation magnetic flux Z axis */
500 0x17, 0x00, 0x00, 0x01, 0x80,	/* HID logical Min_32 */
501 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	/* HID logical Max_32 */
502 0x75, 32,			/* HID report size(32) */
503 0x95, 1,			/* HID report count (1) */
504 0x55, 0x0D,			/* HID unit exponent(0x0D) */
505 0X81, 0x02,			/* HID Input (Data_Arr_Abs) */
506 0x0A, 0x88, 0x04,	/* Sensor data orientation magnetometer accuracy */
507 0x17, 0x00, 0x00, 0x01, 0x80,	/* HID logical Min_32 */
508 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	/* HID logical Max_32 */
509 0x75, 32,			/* HID report size(32) */
510 0x95, 1,			/* HID report count (1) */
511 0X81, 0x02,			/* HID Input (Data_Arr_Abs) */
512 0xC0				/* HID end collection */
513 };
514 
515 static const u8 als_report_descriptor[] = {
516 0x05, 0x20,	/* HID usage page sensor */
517 0x09, 0x41,	/* HID usage sensor type Ambientlight  */
518 0xA1, 0x00,	/* HID Collection (Physical) */
519 
520 //feature reports(xmit/receive)//
521 0x85, 4,		/* HID  Report ID */
522 0x05, 0x20,		/* HID usage page sensor */
523 0x0A, 0x09, 0x03,	/* Sensor property and sensor connection type */
524 0x15, 0,		/* HID logical MIN_8(0) */
525 0x25, 2,		/* HID logical MAX_8(2) */
526 0x75, 8,		/* HID report size(8) */
527 0x95, 1,		/* HID report count(1) */
528 0xA1, 0x02,		/* HID collection (logical) */
529 0x0A, 0x30, 0x08,	/* Sensor property connection type intergated sel */
530 0x0A, 0x31, 0x08,	/* Sensor property connection type attached sel */
531 0x0A, 0x32, 0x08,	/* Sensor property connection type external sel */
532 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
533 0xC0,			/* HID end collection */
534 0x0A, 0x16, 0x03,	/* HID usage sensor property reporting state */
535 0x15, 0,		/* HID logical Min_8(0) */
536 0x25, 5,		/* HID logical Max_8(5) */
537 0x75, 8,		/* HID report size(8) */
538 0x95, 1,		/* HID report count(1) */
539 0xA1, 0x02,		/* HID collection(logical) */
540 0x0A, 0x40, 0x08,	/* Sensor reporting state no events sel */
541 0x0A, 0x41, 0x08,	/* Sensor reporting state all events sel */
542 0x0A, 0x42, 0x08,	/* Sensor reporting state threshold events sel */
543 0x0A, 0x43, 0x08,	/* Sensor reporting state no events wake sel */
544 0x0A, 0x44, 0x08,	/* Sensor reporting state all events wake sel */
545 0x0A, 0x45, 0x08,	/* Sensor reporting state threshold events wake sel */
546 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
547 0xC0,			/* HID end collection */
548 0x0A, 0x19, 0x03,	/* HID usage sensor property power state */
549 0x15, 0,		/* HID logical Min_8(0) */
550 0x25, 5,		/* HID logical Max_8(5) */
551 0x75, 8,		/* HID report size(8) */
552 0x95, 1,		/* HID report count(1) */
553 0xA1, 0x02,		/* HID collection(logical) */
554 0x0A, 0x50, 0x08,	/* Sensor power state undefined sel */
555 0x0A, 0x51, 0x08,	/* Sensor power state D0 full power  sel */
556 0x0A, 0x52, 0x08,	/* Sensor power state D1 low power sel */
557 0x0A, 0x53, 0x08,	/* Sensor power state D2 standby with wake sel */
558 0x0A, 0x54, 0x08,	/* Sensor power state D3 sleep with wake  sel */
559 0x0A, 0x55, 0x08,	/* Sensor power state D4 power off sel */
560 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
561 0xC0,			/* HID end collection */
562 0x0A, 0x01, 0x02,	/* HID usage sensor state */
563 0x15, 0,		/* HID logical Min_8(0) */
564 0x25, 6,		/* HID logical Max_8(6) */
565 0x75, 8,		/* HID report size(8) */
566 0x95, 1,		/* HID report count(1) */
567 0xA1, 0x02,		/* HID collection(logical) */
568 0x0A, 0x00, 0x08,	/* HID usage sensor state unknown sel */
569 0x0A, 0x01, 0x08,	/* HID usage sensor state ready sel */
570 0x0A, 0x02, 0x08,	/* HID usage sensor state not available sel */
571 0x0A, 0x03, 0x08,	/* HID usage sensor state no data sel */
572 0x0A, 0x04, 0x08,	/* HID usage sensor state initializing sel */
573 0x0A, 0x05, 0x08,	/* HID usage sensor state access denied sel */
574 0x0A, 0x06, 0x08,	/* HID usage sensor state error sel */
575 0xB1, 0x00,		/* HID feature (Data_Arr_Abs) */
576 0xC0,			/* HID end collection */
577 0x0A, 0x0E, 0x03,	/* HID usage sensor property report interval */
578 0x15, 0,		/* HID logical Min_8(0) */
579 0x27, 0xFF, 0xFF, 0xFF, 0xFF,	/* HID logical Max_32 */
580 0x75, 32,		/* HID report size(32) */
581 0x95, 1,		/* HID report count(1) */
582 0x55, 0,		/* HID unit exponent(0) */
583 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
584 0x0A, 0xD1, 0xE4,	/* Light illuminance and sensitivity REL PCT) */
585 0x15, 0,		/* HID logical Min_8(0) */
586 0x26, 0x10, 0x27,	/* HID logical Max_16(0x10,0x27) */
587 0x75, 16,		/* HID report size(16) */
588 0x95, 1,		/* HID report count(1) */
589 0x55, 0x0E,		/* HID unit exponent(0x0E) */
590 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
591 0x0A, 0xD1, 0x24,	/* Sensor data (Light illuminance and mod max) */
592 0x15, 0,		/* HID logical Min_8(0) */
593 0x26, 0xFF, 0xFF,	/* HID logical Max_16(0xFF,0xFF) */
594 0x75, 16,		/* HID report size(16) */
595 0x95, 1,		/* HID report count(1) */
596 0x55, 0x0F,		/* HID unit exponent(0x0F) */
597 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
598 0x0A, 0xD1, 0x34,	/* Sensor data (Light illuminance and mod min) */
599 0x15, 0,		/* HID logical Min_8(0) */
600 0x26, 0xFF, 0xFF,	/* HID logical Max_16(0xFF,0xFF) */
601 0x75, 16,		/* HID report size(16) */
602 0x95, 1,		/* HID report count(1) */
603 0x55, 0x0F,		/* HID unit exponent(0x0F) */
604 0xB1, 0x02,		/* HID feature (Data_Arr_Abs) */
605 
606 //Input reports (transmit)
607 0x05, 0x20,		/* HID usage page sensors */
608 0x0A, 0x01, 0x02,	/* HID usage sensor state */
609 0x15, 0,		/* HID logical Min_8(0) */
610 0x25, 6,		/* HID logical Max_8(6) */
611 0x75, 8,		/* HID report size(8) */
612 0x95, 1,		/* HID report count (1) */
613 0xA1, 0x02,		/* HID end collection (logical) */
614 0x0A, 0x00, 0x08,	/* HID usage sensor state unknown sel */
615 0x0A, 0x01, 0x08,	/* HID usage sensor state ready sel */
616 0x0A, 0x02, 0x08,	/* HID usage sensor state not available sel */
617 0x0A, 0x03, 0x08,	/* HID usage sensor state no data sel */
618 0x0A, 0x04, 0x08,	/* HID usage sensor state initializing sel */
619 0x0A, 0x05, 0x08,	/* HID usage sensor state access denied sel */
620 0x0A, 0x06, 0x08,	/* HID usage sensor state error sel */
621 0X81, 0x00,		/* HID Input (Data_Arr_Abs) */
622 0xC0,			/* HID end collection */
623 0x0A, 0x02, 0x02,	/* HID usage sensor event */
624 0x15, 0,		/* HID logical Min_8(0) */
625 0x25, 5,		/* HID logical Max_8(5) */
626 0x75, 8,		/* HID report size(8) */
627 0x95, 1,		/* HID report count (1) */
628 0xA1, 0x02,		/* HID end collection (logical) */
629 0x0A, 0x10, 0x08,	/* HID usage sensor event unknown sel */
630 0x0A, 0x11, 0x08,	/* HID usage sensor event state changed sel */
631 0x0A, 0x12, 0x08,	/* HID usage sensor event property changed sel */
632 0x0A, 0x13, 0x08,	/* HID usage sensor event data updated sel */
633 0x0A, 0x14, 0x08,	/* HID usage sensor event poll response sel */
634 0x0A, 0x15, 0x08,	/* HID usage sensor event change sensitivity sel */
635 0X81, 0x00,		/* HID Input (Data_Arr_Abs) */
636 0xC0,			/* HID end collection */
637 0x0A, 0xD1, 0x04,	/* HID usage sensor data light illuminance */
638 0x17, 0x00, 0x00, 0x01, 0x80,	 /* HID logical Min_32 */
639 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	 /* HID logical Max_32 */
640 0x55, 0x0F,		/* HID unit exponent(0x0F) */
641 0x75, 32,		/* HID report size(32) */
642 0x95, 1,		/* HID report count (1) */
643 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
644 0x0A, 0xD2, 0x04,	/* HID usage sensor data light temperature */
645 0x17, 0x00, 0x00, 0x01, 0x80,	 /* HID logical Min_32 */
646 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	 /* HID logical Max_32 */
647 0x55, 0x0,		/* HID unit exponent(0x0) */
648 0x75, 32,		/* HID report size(32) */
649 0x95, 1,		/* HID report count (1) */
650 0X81, 0x02,		/* HID Input (Data_Arr_Abs) */
651 0x0A, 0xD4, 0x04,       /* HID usage sensor data light chromaticity_x */
652 0x17, 0x00, 0x00, 0x01, 0x80,	 /* HID logical Min_32 */
653 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	 /* HID logical Max_32 */
654 0x55, 0x0,		/* HID unit exponent(0x0) */
655 0x75, 32,		/* HID report size(32) */
656 0x95, 1,		/* HID report count(1) */
657 0X81, 0x02,		/* HID Input (Data_Var_Abs) */
658 0x0A, 0xD5, 0x04,       /* HID usage sensor data light chromaticity_y */
659 0x17, 0x00, 0x00, 0x01, 0x80,	 /* HID logical Min_32 */
660 0x27, 0xFF, 0xFF, 0xFF, 0x7F,	 /* HID logical Max_32 */
661 0x55, 0x0,		/* HID unit exponent(0x0) */
662 0x75, 32,		/* HID report size(32) */
663 0x95, 1,		/* HID report count (1) */
664 0X81, 0x02,		/* HID Input (Data_Var_Abs) */
665 0xC0			/* HID end collection */
666 };
667 
668 /* BIOMETRIC PRESENCE*/
669 static const u8 hpd_report_descriptor[] = {
670 0x05, 0x20,          /* Usage page */
671 0x09, 0x11,          /* BIOMETRIC PRESENCE  */
672 0xA1, 0x00,          /* HID Collection (Physical) */
673 
674 //feature reports(xmit/receive)
675 0x85, 5,           /* HID  Report ID */
676 0x05, 0x20,	   /* HID usage page sensor */
677 0x0A, 0x09, 0x03,  /* Sensor property and sensor connection type */
678 0x15, 0,           /* HID logical MIN_8(0) */
679 0x25, 2,	   /* HID logical MAX_8(2) */
680 0x75, 8,	   /* HID report size(8) */
681 0x95, 1,	   /* HID report count(1) */
682 0xA1, 0x02,	   /* HID collection (logical) */
683 0x0A, 0x30, 0x08, /* Sensor property connection type intergated sel*/
684 0x0A, 0x31, 0x08, /* Sensor property connection type attached sel */
685 0x0A, 0x32, 0x08, /* Sensor property connection type external sel */
686 0xB1, 0x00,       /* HID feature (Data_Arr_Abs) */
687 0xC0,		  /* HID end collection */
688 0x0A, 0x16, 0x03, /* HID usage sensor property reporting state */
689 0x15, 0,          /* HID logical Min_8(0) */
690 0x25, 5,	  /* HID logical Max_8(5) */
691 0x75, 8,	  /* HID report size(8) */
692 0x95, 1,          /* HID report count(1) */
693 0xA1, 0x02,	  /* HID collection(logical) */
694 0x0A, 0x40, 0x08, /* Sensor property report state no events sel */
695 0x0A, 0x41, 0x08, /* Sensor property report state all events sel */
696 0x0A, 0x42, 0x08, /* Sensor property report state threshold events sel */
697 0x0A, 0x43, 0x08, /* Sensor property report state no events wake sel */
698 0x0A, 0x44, 0x08, /* Sensor property report state all events wake sel */
699 0x0A, 0x45, 0x08, /* Sensor property report state threshold events wake sel */
700 0xB1, 0x00,	  /* HID feature (Data_Arr_Abs) */
701 0xC0,		  /* HID end collection */
702 0x0A, 0x19, 0x03, /* HID usage sensor property power state */
703 0x15, 0,	  /* HID logical Min_8(0) */
704 0x25, 5,	  /* HID logical Max_8(5) */
705 0x75, 8,	  /* HID report size(8) */
706 0x95, 1,	  /* HID report count(1) */
707 0xA1, 0x02,	  /* HID collection(logical) */
708 0x0A, 0x50, 0x08, /* Sensor property power state undefined sel */
709 0x0A, 0x51, 0x08, /* Sensor property power state D0 full power  sel */
710 0x0A, 0x52, 0x08, /* Sensor property power state D1 low power sel */
711 0x0A, 0x53, 0x08, /* Sensor property power state D2 standby with wake sel */
712 0x0A, 0x54, 0x08, /* Sensor property power state D3 sleep with wake  sel */
713 0x0A, 0x55, 0x08, /* Sensor property power state D4 power off sel */
714 0xB1, 0x00,       /* HID feature (Data_Arr_Abs) */
715 0xC0,		  /* HID end collection */
716 0x0A, 0x01, 0x02, /* HID usage sensor state */
717 0x15, 0,	  /* HID logical Min_8(0) */
718 0x25, 6,	  /* HID logical Max_8(6) */
719 0x75, 8,	  /* HID report size(8) */
720 0x95, 1,	  /* HID report count(1) */
721 0xA1, 0x02,	  /* HID collection(logical) */
722 0x0A, 0x00, 0x08, /* HID usage sensor state unknown sel */
723 0x0A, 0x01, 0x08, /* HID usage sensor state ready sel */
724 0x0A, 0x02, 0x08, /* HID usage sensor state not available sel */
725 0x0A, 0x03, 0x08, /* HID usage sensor state no data sel */
726 0x0A, 0x04, 0x08, /* HID usage sensor state initializing sel */
727 0x0A, 0x05, 0x08, /* HID usage sensor state access denied sel */
728 0x0A, 0x06, 0x08, /* HID usage sensor state error sel */
729 0xB1, 0x00,	  /* HID feature (Data_Arr_Abs) */
730 0xC0,		  /* HID end collection */
731 0x0A, 0x0E, 0x03, /* HID usage sensor property report interval */
732 0x15, 0,	  /* HID logical Min_8(0) */
733 0x27, 0xFF, 0xFF, 0xFF, 0xFF, /* HID logical Max_32 */
734 
735 0x75, 32,	  /* HID report size(32) */
736 0x95, 1,	  /* HID report count(1) */
737 0x55, 0,	  /* HID unit exponent(0) */
738 0xB1, 0x02,	  /* HID feature (Data_Var_Abs) */
739 
740 //input report (transmit)
741 0x05, 0x20,		 /* HID usage page sensors */
742 0x0A, 0x01, 0x02,	 /* HID usage sensor state */
743 0x15, 0,		 /* HID logical Min_8(0) */
744 0x25, 6,		 /* HID logical Max_8(6) */
745 0x75, 8,		 /* HID report size(8) */
746 0x95, 1,		 /* HID report count (1) */
747 0xA1, 0x02,		 /* HID end collection (logical) */
748 0x0A, 0x00, 0x08,	 /* HID usage sensor state unknown sel */
749 0x0A, 0x01, 0x08,	 /* HID usage sensor state ready sel */
750 0x0A, 0x02, 0x08,	 /* HID usage sensor state not available sel */
751 0x0A, 0x03, 0x08,	 /* HID usage sensor state no data sel */
752 0x0A, 0x04, 0x08,	 /* HID usage sensor state initializing sel */
753 0x0A, 0x05, 0x08,	 /* HID usage sensor state access denied sel */
754 0x0A, 0x06, 0x08,	 /* HID usage sensor state error sel */
755 0X81, 0x00,		 /* HID Input (Data_Arr_Abs) */
756 0xC0,			 /* HID end collection */
757 0x0A, 0x02, 0x02,	 /* HID usage sensor event */
758 0x15, 0,		 /* HID logical Min_8(0) */
759 0x25, 5,		 /* HID logical Max_8(5) */
760 0x75, 8,		 /* HID report size(8) */
761 0x95, 1,		 /* HID report count (1) */
762 0xA1, 0x02,		 /* HID end collection (logical) */
763 0x0A, 0x10, 0x08,	 /* HID usage sensor event unknown sel */
764 0x0A, 0x11, 0x08,	 /* HID usage sensor event state changed sel */
765 0x0A, 0x12, 0x08,	 /* HID usage sensor event property changed sel */
766 0x0A, 0x13, 0x08,	 /* HID usage sensor event data updated sel */
767 0x0A, 0x14, 0x08,	 /* HID usage sensor event poll response sel */
768 0x0A, 0x15, 0x08,	 /* HID usage sensor event change sensitivity sel */
769 0X81, 0x00,		 /* HID Input (Data_Arr_Abs) */
770 0xC0,			 /* HID end collection */
771 0x0A, 0xB1, 0x04,	 /* HID usage sensor data BIOMETRIC HUMAN PRESENCE */
772 0x15, 0,		 /* HID logical Min_8(0) */
773 0x25, 1,		 /* HID logical Max_8(1) */
774 0x75, 8,		 /* HID report size(8) */
775 0x95, 1,		 /* HID report count (1) */
776 0X81, 0x02,		 /* HID Input (Data_Var_Abs) */
777 0xC0			 /* HID end collection */
778 };
779 #endif
780