Lines Matching +full:0 +full:x75
61 static SYSCTL_NODE(_hw_hid, OID_AUTO, ps4dshock, CTLFLAG_RW, 0,
64 &ps4dshock_debug, 0, "Debug level");
68 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
69 0x09, 0x05, /* Usage (Game Pad) */
70 0xA1, 0x01, /* Collection (Application) */
71 0x85, 0x01, /* Report ID (1) */
72 0x09, 0x30, /* Usage (X) */
73 0x09, 0x31, /* Usage (Y) */
74 0x09, 0x33, /* Usage (Rx) */
75 0x09, 0x34, /* Usage (Ry) */
76 0x15, 0x00, /* Logical Minimum (0) */
77 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
78 0x75, 0x08, /* Report Size (8) */
79 0x95, 0x04, /* Report Count (4) */
80 0x81, 0x02, /* Input (Data,Var,Abs) */
81 0x09, 0x39, /* Usage (Hat switch) */
82 0x15, 0x00, /* Logical Minimum (0) */
83 0x25, 0x07, /* Logical Maximum (7) */
84 0x35, 0x00, /* Physical Minimum (0) */
85 0x46, 0x3B, 0x01, /* Physical Maximum (315) */
86 0x65, 0x14, /* Unit (System: English Rotation, Length: Centimeter) */
87 0x75, 0x04, /* Report Size (4) */
88 0x95, 0x01, /* Report Count (1) */
89 0x81, 0x42, /* Input (Data,Var,Abs,Null State) */
90 0x65, 0x00, /* Unit (None) */
91 0x45, 0x00, /* Physical Maximum (0) */
92 0x05, 0x09, /* Usage Page (Button) */
93 0x19, 0x01, /* Usage Minimum (0x01) */
94 0x29, 0x0E, /* Usage Maximum (0x0E) */
95 0x15, 0x00, /* Logical Minimum (0) */
96 0x25, 0x01, /* Logical Maximum (1) */
97 0x75, 0x01, /* Report Size (1) */
98 0x95, 0x0E, /* Report Count (14) */
99 0x81, 0x02, /* Input (Data,Var,Abs) */
100 0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */
101 0x09, 0x20, /* Usage (0x20) */
102 0x75, 0x06, /* Report Size (6) */
103 0x95, 0x01, /* Report Count (1) */
104 0x15, 0x00, /* Logical Minimum (0) */
105 0x25, 0x3F, /* Logical Maximum (63) */
106 0x81, 0x02, /* Input (Data,Var,Abs) */
107 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
108 0x09, 0x32, /* Usage (Z) */
109 0x09, 0x35, /* Usage (Rz) */
110 0x15, 0x00, /* Logical Minimum (0) */
111 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
112 0x75, 0x08, /* Report Size (8) */
113 0x95, 0x02, /* Report Count (2) */
114 0x81, 0x02, /* Input (Data,Var,Abs) */
115 0xC0, /* End Collection */
116 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
117 0x09, 0x08, /* Usage (Multi-axis Controller) */
118 0xA1, 0x01, /* Collection (Application) */
119 0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */
120 0x09, 0x21, /* Usage (0x21) */
121 0x27, 0xFF, 0xFF, 0x00, 0x00, /* Logical Maximum (65534) */
122 0x75, 0x10, /* Report Size (16) */
123 0x95, 0x01, /* Report Count (1) */
124 0x81, 0x02, /* Input (Data,Var,Abs) */
125 0x05, 0x06, /* Usage Page (Generic Dev Ctrls) */
126 0x09, 0x20, /* Usage (Battery Strength) */
127 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
128 0x75, 0x08, /* Report Size (8) */
129 0x95, 0x01, /* Report Count (1) */
130 0x81, 0x02, /* Input (Data,Var,Abs) */
131 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
132 0x19, 0x33, /* Usage Minimum (RX) */
133 0x29, 0x35, /* Usage Maximum (RZ) */
134 0x16, 0x00, 0x80, /* Logical Minimum (-32768) */
135 0x26, 0xFF, 0x7F, /* Logical Maximum (32767) */
136 0x75, 0x10, /* Report Size (16) */
137 0x95, 0x03, /* Report Count (3) */
138 0x81, 0x02, /* Input (Data,Var,Abs) */
139 0x19, 0x30, /* Usage Minimum (X) */
140 0x29, 0x32, /* Usage Maximum (Z) */
141 0x16, 0x00, 0x80, /* Logical Minimum (-32768) */
142 0x26, 0xFF, 0x7F, /* Logical Maximum (32767) */
143 0x95, 0x03, /* Report Count (3) */
144 0x81, 0x02, /* Input (Data,Var,Abs) */
145 0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */
146 0x09, 0x21, /* Usage (0x21) */
147 0x15, 0x00, /* Logical Minimum (0) */
148 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
149 0x75, 0x08, /* Report Size (8) */
150 0x95, 0x05, /* Report Count (5) */
151 0x81, 0x03, /* Input (Const) */
152 0xC0, /* End Collection */
153 0x05, 0x0C, /* Usage Page (Consumer) */
154 0x09, 0x05, /* Usage (Headphone) */
155 0xA1, 0x01, /* Collection (Application) */
156 0x75, 0x05, /* Report Size (5) */
157 0x95, 0x01, /* Report Count (1) */
158 0x81, 0x03, /* Input (Const) */
159 0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */
160 0x09, 0x20, /* Usage (0x20) */
161 0x09, 0x21, /* Usage (0x21) */
162 0x15, 0x00, /* Logical Minimum (0) */
163 0x25, 0x01, /* Logical Maximum (1) */
164 0x75, 0x01, /* Report Size (1) */
165 0x95, 0x02, /* Report Count (2) */
166 0x81, 0x02, /* Input (Data,Var,Abs) */
167 0x75, 0x01, /* Report Size (1) */
168 0x95, 0x01, /* Report Count (1) */
169 0x81, 0x03, /* Input (Const) */
170 0x75, 0x08, /* Report Size (8) */
171 0x95, 0x02, /* Report Count (2) */
172 0x81, 0x03, /* Input (Const) */
173 0xC0, /* End Collection */
174 0x05, 0x0D, /* Usage Page (Digitizer) */
175 0x09, 0x05, /* Usage (Touch Pad) */
176 0xA1, 0x01, /* Collection (Application) */
177 0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */
178 0x09, 0x21, /* Usage (0x21) */
179 0x15, 0x00, /* Logical Minimum (0) */
180 0x25, 0x03, /* Logical Maximum (3) */
181 0x75, 0x04, /* Report Size (4) */
182 0x95, 0x01, /* Report Count (1) */
183 0x81, 0x02, /* Input (Data,Var,Abs) */
184 0x75, 0x04, /* Report Size (4) */
185 0x95, 0x01, /* Report Count (1) */
186 0x81, 0x03, /* Input (Data,Var,Abs) */
187 0x05, 0x0D, /* Usage Page (Digitizer) */
188 0x09, 0x56, /* Usage (0x56) */
189 0x55, 0x0C, /* Unit Exponent (-4) */
190 0x66, 0x01, 0x10, /* Unit (System: SI Linear, Time: Seconds) */
191 0x46, 0xCC, 0x06, /* Physical Maximum (1740) */
192 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
193 0x75, 0x08, /* Report Size (8) */
194 0x95, 0x01, /* Report Count (1) */
195 0x81, 0x02, /* Input (Data,Var,Abs) */
196 0x65, 0x00, /* Unit (None) */
197 0x45, 0x00, /* Physical Maximum (0) */
198 0x05, 0x0D, /* Usage Page (Digitizer) */
199 0x09, 0x22, /* Usage (Finger) */
200 0xA1, 0x02, /* Collection (Logical) */
201 0x09, 0x51, /* Usage (0x51) */
202 0x25, 0x7F, /* Logical Maximum (127) */
203 0x75, 0x07, /* Report Size (7) */
204 0x95, 0x01, /* Report Count (1) */
205 0x81, 0x02, /* Input (Data,Var,Abs) */
206 0x09, 0x42, /* Usage (Tip Switch) */
207 0x25, 0x01, /* Logical Maximum (1) */
208 0x75, 0x01, /* Report Size (1) */
209 0x95, 0x01, /* Report Count (1) */
210 0x81, 0x02, /* Input (Data,Var,Abs) */
211 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
212 0x09, 0x30, /* Usage (X) */
213 0x55, 0x0E, /* Unit Exponent (-2) */
214 0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */
215 0x35, 0x00, /* Physical Minimum (0) */
216 0x46, 0xB8, 0x01, /* Physical Maximum (440) */
217 0x26, 0x80, 0x07, /* Logical Maximum (1920) */
218 0x75, 0x0C, /* Report Size (12) */
219 0x81, 0x02, /* Input (Data,Var,Abs) */
220 0x09, 0x31, /* Usage (Y) */
221 0x46, 0xC0, 0x00, /* Physical Maximum (192) */
222 0x26, 0xAE, 0x03, /* Logical Maximum (942) */
223 0x81, 0x02, /* Input (Data,Var,Abs) */
224 0x65, 0x00, /* Unit (None) */
225 0x45, 0x00, /* Physical Maximum (0) */
226 0xC0, /* End Collection */
227 0x05, 0x0D, /* Usage Page (Digitizer) */
228 0x09, 0x22, /* Usage (Finger) */
229 0xA1, 0x02, /* Collection (Logical) */
230 0x09, 0x51, /* Usage (0x51) */
231 0x25, 0x7F, /* Logical Maximum (127) */
232 0x75, 0x07, /* Report Size (7) */
233 0x95, 0x01, /* Report Count (1) */
234 0x81, 0x02, /* Input (Data,Var,Abs) */
235 0x09, 0x42, /* Usage (Tip Switch) */
236 0x25, 0x01, /* Logical Maximum (1) */
237 0x75, 0x01, /* Report Size (1) */
238 0x95, 0x01, /* Report Count (1) */
239 0x81, 0x02, /* Input (Data,Var,Abs) */
240 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
241 0x09, 0x30, /* Usage (X) */
242 0x55, 0x0E, /* Unit Exponent (-2) */
243 0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */
244 0x35, 0x00, /* Physical Minimum (0) */
245 0x46, 0xB8, 0x01, /* Physical Maximum (440) */
246 0x26, 0x80, 0x07, /* Logical Maximum (1920) */
247 0x75, 0x0C, /* Report Size (12) */
248 0x81, 0x02, /* Input (Data,Var,Abs) */
249 0x09, 0x31, /* Usage (Y) */
250 0x46, 0xC0, 0x00, /* Physical Maximum (192) */
251 0x26, 0xAE, 0x03, /* Logical Maximum (942) */
252 0x81, 0x02, /* Input (Data,Var,Abs) */
253 0x65, 0x00, /* Unit (None) */
254 0x45, 0x00, /* Physical Maximum (0) */
255 0xC0, /* End Collection */
256 0x05, 0x0D, /* Usage Page (Digitizer) */
257 0x09, 0x56, /* Usage (0x56) */
258 0x55, 0x0C, /* Unit Exponent (-4) */
259 0x66, 0x01, 0x10, /* Unit (System: SI Linear, Time: Seconds) */
260 0x46, 0xCC, 0x06, /* Physical Maximum (1740) */
261 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
262 0x75, 0x08, /* Report Size (8) */
263 0x95, 0x01, /* Report Count (1) */
264 0x81, 0x02, /* Input (Data,Var,Abs) */
265 0x65, 0x00, /* Unit (None) */
266 0x45, 0x00, /* Physical Maximum (0) */
267 0x05, 0x0D, /* Usage Page (Digitizer) */
268 0x09, 0x22, /* Usage (Finger) */
269 0xA1, 0x02, /* Collection (Logical) */
270 0x09, 0x51, /* Usage (0x51) */
271 0x25, 0x7F, /* Logical Maximum (127) */
272 0x75, 0x07, /* Report Size (7) */
273 0x95, 0x01, /* Report Count (1) */
274 0x81, 0x02, /* Input (Data,Var,Abs) */
275 0x09, 0x42, /* Usage (Tip Switch) */
276 0x25, 0x01, /* Logical Maximum (1) */
277 0x75, 0x01, /* Report Size (1) */
278 0x95, 0x01, /* Report Count (1) */
279 0x81, 0x02, /* Input (Data,Var,Abs) */
280 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
281 0x09, 0x30, /* Usage (X) */
282 0x55, 0x0E, /* Unit Exponent (-2) */
283 0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */
284 0x35, 0x00, /* Physical Minimum (0) */
285 0x46, 0xB8, 0x01, /* Physical Maximum (440) */
286 0x26, 0x80, 0x07, /* Logical Maximum (1920) */
287 0x75, 0x0C, /* Report Size (12) */
288 0x81, 0x02, /* Input (Data,Var,Abs) */
289 0x09, 0x31, /* Usage (Y) */
290 0x46, 0xC0, 0x00, /* Physical Maximum (192) */
291 0x26, 0xAE, 0x03, /* Logical Maximum (942) */
292 0x81, 0x02, /* Input (Data,Var,Abs) */
293 0x65, 0x00, /* Unit (None) */
294 0x45, 0x00, /* Physical Maximum (0) */
295 0xC0, /* End Collection */
296 0x05, 0x0D, /* Usage Page (Digitizer) */
297 0x09, 0x22, /* Usage (Finger) */
298 0xA1, 0x02, /* Collection (Logical) */
299 0x09, 0x51, /* Usage (0x51) */
300 0x25, 0x7F, /* Logical Maximum (127) */
301 0x75, 0x07, /* Report Size (7) */
302 0x95, 0x01, /* Report Count (1) */
303 0x81, 0x02, /* Input (Data,Var,Abs) */
304 0x09, 0x42, /* Usage (Tip Switch) */
305 0x25, 0x01, /* Logical Maximum (1) */
306 0x75, 0x01, /* Report Size (1) */
307 0x95, 0x01, /* Report Count (1) */
308 0x81, 0x02, /* Input (Data,Var,Abs) */
309 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
310 0x09, 0x30, /* Usage (X) */
311 0x55, 0x0E, /* Unit Exponent (-2) */
312 0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */
313 0x35, 0x00, /* Physical Minimum (0) */
314 0x46, 0xB8, 0x01, /* Physical Maximum (440) */
315 0x26, 0x80, 0x07, /* Logical Maximum (1920) */
316 0x75, 0x0C, /* Report Size (12) */
317 0x81, 0x02, /* Input (Data,Var,Abs) */
318 0x09, 0x31, /* Usage (Y) */
319 0x46, 0xC0, 0x00, /* Physical Maximum (192) */
320 0x26, 0xAE, 0x03, /* Logical Maximum (942) */
321 0x81, 0x02, /* Input (Data,Var,Abs) */
322 0x65, 0x00, /* Unit (None) */
323 0x45, 0x00, /* Physical Maximum (0) */
324 0xC0, /* End Collection */
325 0x05, 0x0D, /* Usage Page (Digitizer) */
326 0x09, 0x56, /* Usage (0x56) */
327 0x55, 0x0C, /* Unit Exponent (-4) */
328 0x66, 0x01, 0x10, /* Unit (System: SI Linear, Time: Seconds) */
329 0x46, 0xCC, 0x06, /* Physical Maximum (1740) */
330 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
331 0x75, 0x08, /* Report Size (8) */
332 0x95, 0x01, /* Report Count (1) */
333 0x81, 0x02, /* Input (Data,Var,Abs) */
334 0x65, 0x00, /* Unit (None) */
335 0x45, 0x00, /* Physical Maximum (0) */
336 0x05, 0x0D, /* Usage Page (Digitizer) */
337 0x09, 0x22, /* Usage (Finger) */
338 0xA1, 0x02, /* Collection (Logical) */
339 0x09, 0x51, /* Usage (0x51) */
340 0x25, 0x7F, /* Logical Maximum (127) */
341 0x75, 0x07, /* Report Size (7) */
342 0x95, 0x01, /* Report Count (1) */
343 0x81, 0x02, /* Input (Data,Var,Abs) */
344 0x09, 0x42, /* Usage (Tip Switch) */
345 0x25, 0x01, /* Logical Maximum (1) */
346 0x75, 0x01, /* Report Size (1) */
347 0x95, 0x01, /* Report Count (1) */
348 0x81, 0x02, /* Input (Data,Var,Abs) */
349 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
350 0x09, 0x30, /* Usage (X) */
351 0x55, 0x0E, /* Unit Exponent (-2) */
352 0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */
353 0x35, 0x00, /* Physical Minimum (0) */
354 0x46, 0xB8, 0x01, /* Physical Maximum (440) */
355 0x26, 0x80, 0x07, /* Logical Maximum (1920) */
356 0x75, 0x0C, /* Report Size (12) */
357 0x81, 0x02, /* Input (Data,Var,Abs) */
358 0x09, 0x31, /* Usage (Y) */
359 0x46, 0xC0, 0x00, /* Physical Maximum (192) */
360 0x26, 0xAE, 0x03, /* Logical Maximum (942) */
361 0x81, 0x02, /* Input (Data,Var,Abs) */
362 0x65, 0x00, /* Unit (None) */
363 0x45, 0x00, /* Physical Maximum (0) */
364 0xC0, /* End Collection */
365 0x05, 0x0D, /* Usage Page (Digitizer) */
366 0x09, 0x22, /* Usage (Finger) */
367 0xA1, 0x02, /* Collection (Logical) */
368 0x09, 0x51, /* Usage (0x51) */
369 0x25, 0x7F, /* Logical Maximum (127) */
370 0x75, 0x07, /* Report Size (7) */
371 0x95, 0x01, /* Report Count (1) */
372 0x81, 0x02, /* Input (Data,Var,Abs) */
373 0x09, 0x42, /* Usage (Tip Switch) */
374 0x25, 0x01, /* Logical Maximum (1) */
375 0x75, 0x01, /* Report Size (1) */
376 0x95, 0x01, /* Report Count (1) */
377 0x81, 0x02, /* Input (Data,Var,Abs) */
378 0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
379 0x09, 0x30, /* Usage (X) */
380 0x55, 0x0E, /* Unit Exponent (-2) */
381 0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */
382 0x35, 0x00, /* Physical Minimum (0) */
383 0x46, 0xB8, 0x01, /* Physical Maximum (440) */
384 0x26, 0x80, 0x07, /* Logical Maximum (1920) */
385 0x75, 0x0C, /* Report Size (12) */
386 0x81, 0x02, /* Input (Data,Var,Abs) */
387 0x09, 0x31, /* Usage (Y) */
388 0x46, 0xC0, 0x00, /* Physical Maximum (192) */
389 0x26, 0xAE, 0x03, /* Logical Maximum (942) */
390 0x81, 0x02, /* Input (Data,Var,Abs) */
391 0x65, 0x00, /* Unit (None) */
392 0x45, 0x00, /* Physical Maximum (0) */
393 0xC0, /* End Collection */
394 0x75, 0x08, /* Report Size (8) */
395 0x95, 0x03, /* Report Count (3) */
396 0x81, 0x03, /* Input (Const) */
398 0x85, 0x05, /* Report ID (5) */
399 0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */
400 0x09, 0x22, /* Usage (0x22) */
401 0x15, 0x00, /* Logical Minimum (0) */
402 0x26, 0xFF, 0x00, /* Logical Maximum (255) */
403 0x95, 0x1F, /* Report Count (31) */
404 0x91, 0x02, /* Output (Data,Var,Abs) */
405 0x85, 0x04, /* Report ID (4) */
406 0x09, 0x23, /* Usage (0x23) */
407 0x95, 0x24, /* Report Count (36) */
408 0xB1, 0x02, /* Feature (Data,Var,Abs) */
409 0x85, 0x02, /* Report ID (2) */
410 0x09, 0x24, /* Usage (0x24) */
411 0x95, 0x24, /* Report Count (36) */
412 0xB1, 0x02, /* Feature (Data,Var,Abs) */
413 0x85, 0x08, /* Report ID (8) */
414 0x09, 0x25, /* Usage (0x25) */
415 0x95, 0x03, /* Report Count (3) */
416 0xB1, 0x02, /* Feature (Data,Var,Abs) */
417 0x85, 0x10, /* Report ID (16) */
418 0x09, 0x26, /* Usage (0x26) */
419 0x95, 0x04, /* Report Count (4) */
420 0xB1, 0x02, /* Feature (Data,Var,Abs) */
421 0x85, 0x11, /* Report ID (17) */
422 0x09, 0x27, /* Usage (0x27) */
423 0x95, 0x02, /* Report Count (2) */
424 0xB1, 0x02, /* Feature (Data,Var,Abs) */
425 0x85, 0x12, /* Report ID (18) */
426 0x06, 0x02, 0xFF, /* Usage Page (Vendor Defined 0xFF02) */
427 0x09, 0x21, /* Usage (0x21) */
428 0x95, 0x0F, /* Report Count (15) */
429 0xB1, 0x02, /* Feature (Data,Var,Abs) */
430 0x85, 0x13, /* Report ID (19) */
431 0x09, 0x22, /* Usage (0x22) */
432 0x95, 0x16, /* Report Count (22) */
433 0xB1, 0x02, /* Feature (Data,Var,Abs) */
434 0x85, 0x14, /* Report ID (20) */
435 0x06, 0x05, 0xFF, /* Usage Page (Vendor Defined 0xFF05) */
436 0x09, 0x20, /* Usage (0x20) */
437 0x95, 0x10, /* Report Count (16) */
438 0xB1, 0x02, /* Feature (Data,Var,Abs) */
439 0x85, 0x15, /* Report ID (21) */
440 0x09, 0x21, /* Usage (0x21) */
441 0x95, 0x2C, /* Report Count (44) */
442 0xB1, 0x02, /* Feature (Data,Var,Abs) */
443 0x06, 0x80, 0xFF, /* Usage Page (Vendor Defined 0xFF80) */
444 0x85, 0x80, /* Report ID (-128) */
445 0x09, 0x20, /* Usage (0x20) */
446 0x95, 0x06, /* Report Count (6) */
447 0xB1, 0x02, /* Feature (Data,Var,Abs) */
448 0x85, 0x81, /* Report ID (-127) */
449 0x09, 0x21, /* Usage (0x21) */
450 0x95, 0x06, /* Report Count (6) */
451 0xB1, 0x02, /* Feature (Data,Var,Abs) */
452 0x85, 0x82, /* Report ID (-126) */
453 0x09, 0x22, /* Usage (0x22) */
454 0x95, 0x05, /* Report Count (5) */
455 0xB1, 0x02, /* Feature (Data,Var,Abs) */
456 0x85, 0x83, /* Report ID (-125) */
457 0x09, 0x23, /* Usage (0x23) */
458 0x95, 0x01, /* Report Count (1) */
459 0xB1, 0x02, /* Feature (Data,Var,Abs) */
460 0x85, 0x84, /* Report ID (-124) */
461 0x09, 0x24, /* Usage (0x24) */
462 0x95, 0x04, /* Report Count (4) */
463 0xB1, 0x02, /* Feature (Data,Var,Abs) */
464 0x85, 0x85, /* Report ID (-123) */
465 0x09, 0x25, /* Usage (0x25) */
466 0x95, 0x06, /* Report Count (6) */
467 0xB1, 0x02, /* Feature (Data,Var,Abs) */
468 0x85, 0x86, /* Report ID (-122) */
469 0x09, 0x26, /* Usage (0x26) */
470 0x95, 0x06, /* Report Count (6) */
471 0xB1, 0x02, /* Feature (Data,Var,Abs) */
472 0x85, 0x87, /* Report ID (-121) */
473 0x09, 0x27, /* Usage (0x27) */
474 0x95, 0x23, /* Report Count (35) */
475 0xB1, 0x02, /* Feature (Data,Var,Abs) */
476 0x85, 0x88, /* Report ID (-120) */
477 0x09, 0x28, /* Usage (0x28) */
478 0x95, 0x22, /* Report Count (34) */
479 0xB1, 0x02, /* Feature (Data,Var,Abs) */
480 0x85, 0x89, /* Report ID (-119) */
481 0x09, 0x29, /* Usage (0x29) */
482 0x95, 0x02, /* Report Count (2) */
483 0xB1, 0x02, /* Feature (Data,Var,Abs) */
484 0x85, 0x90, /* Report ID (-112) */
485 0x09, 0x30, /* Usage (0x30) */
486 0x95, 0x05, /* Report Count (5) */
487 0xB1, 0x02, /* Feature (Data,Var,Abs) */
488 0x85, 0x91, /* Report ID (-111) */
489 0x09, 0x31, /* Usage (0x31) */
490 0x95, 0x03, /* Report Count (3) */
491 0xB1, 0x02, /* Feature (Data,Var,Abs) */
492 0x85, 0x92, /* Report ID (-110) */
493 0x09, 0x32, /* Usage (0x32) */
494 0x95, 0x03, /* Report Count (3) */
495 0xB1, 0x02, /* Feature (Data,Var,Abs) */
496 0x85, 0x93, /* Report ID (-109) */
497 0x09, 0x33, /* Usage (0x33) */
498 0x95, 0x0C, /* Report Count (12) */
499 0xB1, 0x02, /* Feature (Data,Var,Abs) */
500 0x85, 0xA0, /* Report ID (-96) */
501 0x09, 0x40, /* Usage (0x40) */
502 0x95, 0x06, /* Report Count (6) */
503 0xB1, 0x02, /* Feature (Data,Var,Abs) */
504 0x85, 0xA1, /* Report ID (-95) */
505 0x09, 0x41, /* Usage (0x41) */
506 0x95, 0x01, /* Report Count (1) */
507 0xB1, 0x02, /* Feature (Data,Var,Abs) */
508 0x85, 0xA2, /* Report ID (-94) */
509 0x09, 0x42, /* Usage (0x42) */
510 0x95, 0x01, /* Report Count (1) */
511 0xB1, 0x02, /* Feature (Data,Var,Abs) */
512 0x85, 0xA3, /* Report ID (-93) */
513 0x09, 0x43, /* Usage (0x43) */
514 0x95, 0x30, /* Report Count (48) */
515 0xB1, 0x02, /* Feature (Data,Var,Abs) */
516 0x85, 0xA4, /* Report ID (-92) */
517 0x09, 0x44, /* Usage (0x44) */
518 0x95, 0x0D, /* Report Count (13) */
519 0xB1, 0x02, /* Feature (Data,Var,Abs) */
520 0x85, 0xA5, /* Report ID (-91) */
521 0x09, 0x45, /* Usage (0x45) */
522 0x95, 0x15, /* Report Count (21) */
523 0xB1, 0x02, /* Feature (Data,Var,Abs) */
524 0x85, 0xA6, /* Report ID (-90) */
525 0x09, 0x46, /* Usage (0x46) */
526 0x95, 0x15, /* Report Count (21) */
527 0xB1, 0x02, /* Feature (Data,Var,Abs) */
528 0x85, 0xF0, /* Report ID (-16) */
529 0x09, 0x47, /* Usage (0x47) */
530 0x95, 0x3F, /* Report Count (63) */
531 0xB1, 0x02, /* Feature (Data,Var,Abs) */
532 0x85, 0xF1, /* Report ID (-15) */
533 0x09, 0x48, /* Usage (0x48) */
534 0x95, 0x3F, /* Report Count (63) */
535 0xB1, 0x02, /* Feature (Data,Var,Abs) */
536 0x85, 0xF2, /* Report ID (-14) */
537 0x09, 0x49, /* Usage (0x49) */
538 0x95, 0x0F, /* Report Count (15) */
539 0xB1, 0x02, /* Feature (Data,Var,Abs) */
540 0x85, 0xA7, /* Report ID (-89) */
541 0x09, 0x4A, /* Usage (0x4A) */
542 0x95, 0x01, /* Report Count (1) */
543 0xB1, 0x02, /* Feature (Data,Var,Abs) */
544 0x85, 0xA8, /* Report ID (-88) */
545 0x09, 0x4B, /* Usage (0x4B) */
546 0x95, 0x01, /* Report Count (1) */
547 0xB1, 0x02, /* Feature (Data,Var,Abs) */
548 0x85, 0xA9, /* Report ID (-87) */
549 0x09, 0x4C, /* Usage (0x4C) */
550 0x95, 0x08, /* Report Count (8) */
551 0xB1, 0x02, /* Feature (Data,Var,Abs) */
552 0x85, 0xAA, /* Report ID (-86) */
553 0x09, 0x4E, /* Usage (0x4E) */
554 0x95, 0x01, /* Report Count (1) */
555 0xB1, 0x02, /* Feature (Data,Var,Abs) */
556 0x85, 0xAB, /* Report ID (-85) */
557 0x09, 0x4F, /* Usage (0x4F) */
558 0x95, 0x39, /* Report Count (57) */
559 0xB1, 0x02, /* Feature (Data,Var,Abs) */
560 0x85, 0xAC, /* Report ID (-84) */
561 0x09, 0x50, /* Usage (0x50) */
562 0x95, 0x39, /* Report Count (57) */
563 0xB1, 0x02, /* Feature (Data,Var,Abs) */
564 0x85, 0xAD, /* Report ID (-83) */
565 0x09, 0x51, /* Usage (0x51) */
566 0x95, 0x0B, /* Report Count (11) */
567 0xB1, 0x02, /* Feature (Data,Var,Abs) */
568 0x85, 0xAE, /* Report ID (-82) */
569 0x09, 0x52, /* Usage (0x52) */
570 0x95, 0x01, /* Report Count (1) */
571 0xB1, 0x02, /* Feature (Data,Var,Abs) */
572 0x85, 0xAF, /* Report ID (-81) */
573 0x09, 0x53, /* Usage (0x53) */
574 0x95, 0x02, /* Report Count (2) */
575 0xB1, 0x02, /* Feature (Data,Var,Abs) */
576 0x85, 0xB0, /* Report ID (-80) */
577 0x09, 0x54, /* Usage (0x54) */
578 0x95, 0x3F, /* Report Count (63) */
579 0xB1, 0x02, /* Feature (Data,Var,Abs) */
580 0xC0, /* End Collection */
617 { 0x00, 0x00, 0x40 }, /* Blue */
618 { 0x40, 0x00, 0x00 }, /* Red */
619 { 0x00, 0x40, 0x00 }, /* Green */
620 { 0x20, 0x00, 0x20 }, /* Pink */
621 { 0x02, 0x01, 0x00 }, /* Orange */
622 { 0x00, 0x01, 0x01 }, /* Teal */
623 { 0x01, 0x01, 0x01 } /* White */
754 PS4DS_MAP_VCB(0x0021, ps4dsacc_tstamp_cb),
758 PS4DS_MAP_VSW(0x0020, SW_MICROPHONE_INSERT),
759 PS4DS_MAP_VSW(0x0021, SW_HEADPHONE_INSERT),
762 { HIDMAP_ABS_CB(HUP_MICROSOFT, 0x0021, ps4dsmtp_npackets_cb)},
772 { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
776 { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
780 { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
784 { HID_BVP(BUS_USB, USB_VENDOR_SONY, 0x9cc),
810 for (i = 0; i < nitems(sc->calib_data); i++) { in ps4dsacc_data_cb()
815 sc->calib_data[i].range, 16, 0, in ps4dsacc_data_cb()
834 return (0); in ps4dsacc_data_cb()
862 return (0); in ps4dsacc_tstamp_cb()
889 return (0); in ps4dsmtp_npackets_cb()
902 return (0); in ps4dsmtp_data_cb()
912 evdev_push_abs(evdev, ABS_MT_SLOT, 0); in ps4dsmtp_push_packet()
913 if (data[PS4DS_TIP1] == 0) { in ps4dsmtp_push_packet()
920 if (data[PS4DS_TIP2] == 0) { in ps4dsmtp_push_packet()
937 touch = data[PS4DS_TIP1] == 0 || data[PS4DS_TIP2] == 0; in ps4dsmtp_push_packet()
939 if ((touch || sc->touch) && delta != 0) { in ps4dsmtp_push_packet()
945 sc->ev_tstamp = 0; in ps4dsmtp_push_packet()
970 sc->btn_loc = (struct hid_location) { 1, 0, 49 }; in ps4dsmtp_final_cb()
979 evdev_support_abs(evdev, ABS_MT_SLOT, 0, 1, 0, 0, 0); in ps4dsmtp_final_cb()
980 evdev_support_abs(evdev, ABS_MT_TRACKING_ID, -1, 127, 0, 0, 0); in ps4dsmtp_final_cb()
981 evdev_support_abs(evdev, ABS_MT_POSITION_X, 0, 1920, 0, 0, 30); in ps4dsmtp_final_cb()
982 evdev_support_abs(evdev, ABS_MT_POSITION_Y, 0, 942, 0, 0, 49); in ps4dsmtp_final_cb()
1007 return (0); in ps4dsmtp_final_cb()
1019 memset(buf, 0, osize); in ps4dshock_write()
1020 buf[0] = sc->is_bluetooth ? 0x11 : 0x05; in ps4dshock_write()
1025 .features = 0x07, /* blink + LEDs + motor */ in ps4dshock_write()
1028 .led_color_r = led_on ? sc->led_color.r : 0, in ps4dshock_write()
1029 .led_color_g = led_on ? sc->led_color.g : 0, in ps4dshock_write()
1030 .led_color_b = led_on ? sc->led_color.b : 0, in ps4dshock_write()
1032 .led_delay_on = led_blinks ? sc->led_delay_on / 10 : 0, in ps4dshock_write()
1033 .led_delay_off = led_blinks ? sc->led_delay_off / 10 : 0, in ps4dshock_write()
1046 if (oidp->oid_arg1 == NULL || oidp->oid_arg2 < 0 || in ps4dshock_sysctl()
1055 error = sysctl_handle_int(oidp, &arg, 0, req); in ps4dshock_sysctl()
1067 if (arg < 0 || arg >= PD4DS_LED_CNT) in ps4dshock_sysctl()
1073 if (arg < 0 || arg > UINT8_MAX) in ps4dshock_sysctl()
1078 if (arg < 0 || arg > UINT8_MAX * 10) in ps4dshock_sysctl()
1086 if (error == 0) { in ps4dshock_sysctl()
1168 "LED state: 0 - off, 1 - on, 2 - blinking."); in ps4dshock_attach()
1207 HID_FEATURE_REPORT, 0x02); in ps4dsacc_attach()
1219 #define HGETW(w) ((int16_t)((w)[0] | (((uint16_t)((w)[1])) << 8))) in ps4dsacc_attach()
1221 sc->calib_data[0].usage = HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_RX); in ps4dsacc_attach()
1222 sc->calib_data[0].code = ABS_RX; in ps4dsacc_attach()
1223 sc->calib_data[0].range = PS4DS_GYRO_RES_PER_DEG_S * 2048; in ps4dsacc_attach()
1224 sc->calib_data[0].res = PS4DS_GYRO_RES_PER_DEG_S; in ps4dsacc_attach()
1225 sc->calib_data[0].bias = HGETW(&buf[1]); in ps4dsacc_attach()
1226 sc->calib_data[0].sens_numer = speed_2x * PS4DS_GYRO_RES_PER_DEG_S; in ps4dsacc_attach()
1227 sc->calib_data[0].sens_denom = HGETW(&buf[7]) - HGETW(&buf[9]); in ps4dsacc_attach()
1229 /* sc->calib_data[0].sens_denom = HGETW(&buf[7]) - HGETW(&buf[13]); */ in ps4dsacc_attach()
1309 return (0); in ps4dshock_detach()