Lines 304-306
Link Here
|
304 |
0x81, 0x01, /* Input (Constant), */\ |
304 |
0x81, 0x01, /* Input (Constant), */\ |
305 |
0xC0, /* End Collection, */\ |
305 |
0xC0, /* End Collection, */\ |
306 |
0xC0 /* End Collection */ |
306 |
0xC0 /* End Collection */ |
|
|
307 |
|
308 |
/* Fixed report descriptor for Synaptics Touch Digitizer V04 */ |
309 |
#define UHID_TOUCHDIGI_V04_REPORT_DESCR(...) \ |
310 |
0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */\ |
311 |
0x09, 0x02, /* Usage (Mouse) */\ |
312 |
0xA1, 0x01, /* Collection (Application) */\ |
313 |
0x85, 0x02, /* Report ID (2) */\ |
314 |
0x09, 0x01, /* Usage (Pointer) */\ |
315 |
0xA1, 0x00, /* Collection (Physical) */\ |
316 |
0x05, 0x09, /* Usage Page (Button) */\ |
317 |
0x19, 0x01, /* Usage Minimum (0x01) */\ |
318 |
0x29, 0x02, /* Usage Maximum (0x02) */\ |
319 |
0x15, 0x00, /* Logical Minimum (0) */\ |
320 |
0x25, 0x01, /* Logical Maximum (1) */\ |
321 |
0x75, 0x01, /* Report Size (1) */\ |
322 |
0x95, 0x02, /* Report Count (2) */\ |
323 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
324 |
0x95, 0x06, /* Report Count (6) */\ |
325 |
0x81, 0x03, /* Input (Const,Var,Abs) */\ |
326 |
0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */\ |
327 |
0x09, 0x30, /* Usage (X) */\ |
328 |
0x09, 0x31, /* Usage (Y) */\ |
329 |
0x15, 0x81, /* Logical Minimum (-127) */\ |
330 |
0x25, 0x7F, /* Logical Maximum (127) */\ |
331 |
0x75, 0x08, /* Report Size (8) */\ |
332 |
0x95, 0x02, /* Report Count (2) */\ |
333 |
0x81, 0x06, /* Input (Data,Var,Rel) */\ |
334 |
0xC0, /* End Collection */\ |
335 |
0xC0, /* End Collection */\ |
336 |
0x05, 0x0D, /* Usage Page (Digitizer) */\ |
337 |
0x09, 0x04, /* Usage (Touch Screen) */\ |
338 |
0xA1, 0x01, /* Collection (Application) */\ |
339 |
0x85, 0x01, /* Report ID (1) */\ |
340 |
0x09, 0x22, /* Usage (Finger) */\ |
341 |
0xA1, 0x02, /* Collection (Logical) */\ |
342 |
0x09, 0x42, /* Usage (Tip Switch) */\ |
343 |
0x15, 0x00, /* Logical Minimum (0) */\ |
344 |
0x25, 0x01, /* Logical Maximum (1) */\ |
345 |
0x75, 0x01, /* Report Size (1) */\ |
346 |
0x95, 0x01, /* Report Count (1) */\ |
347 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
348 |
0x95, 0x07, /* Report Count (7) */\ |
349 |
0x81, 0x03, /* Input (Const,Var,Abs) */\ |
350 |
0x75, 0x08, /* Report Size (8) */\ |
351 |
0x09, 0x51, /* Usage (0x51) */\ |
352 |
0x15, 0x01, /* Logical Minimum (1) */\ |
353 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
354 |
0x95, 0x01, /* Report Count (1) */\ |
355 |
0x81, 0x42, /* Input (Data,Var,Abs) */\ |
356 |
0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */\ |
357 |
0x15, 0x00, /* Logical Minimum (0) */\ |
358 |
0x26, 0xE2, 0x0A, /* Logical Maximum (2786) */\ |
359 |
0x75, 0x10, /* Report Size (16) */\ |
360 |
0x55, 0x0E, /* Unit Exponent (-2) */\ |
361 |
0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */\ |
362 |
0x09, 0x30, /* Usage (X) */\ |
363 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
364 |
0x46, 0xD3, 0x0A, /* Physical Maximum (2771) */\ |
365 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
366 |
0x09, 0x31, /* Usage (Y) */\ |
367 |
0x15, 0x00, /* Logical Minimum (0) */\ |
368 |
0x26, 0x2B, 0x06, /* Logical Maximum (1579) */\ |
369 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
370 |
0x46, 0x1C, 0x06, /* Physical Maximum (1564) */\ |
371 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
372 |
0xC0, /* End Collection */\ |
373 |
0x05, 0x0D, /* Usage Page (Digitizer) */\ |
374 |
0x09, 0x22, /* Usage (Finger) */\ |
375 |
0xA1, 0x02, /* Collection (Logical) */\ |
376 |
0x09, 0x42, /* Usage (Tip Switch) */\ |
377 |
0x15, 0x00, /* Logical Minimum (0) */\ |
378 |
0x25, 0x01, /* Logical Maximum (1) */\ |
379 |
0x75, 0x01, /* Report Size (1) */\ |
380 |
0x95, 0x01, /* Report Count (1) */\ |
381 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
382 |
0x95, 0x07, /* Report Count (7) */\ |
383 |
0x81, 0x03, /* Input (Const,Var,Abs) */\ |
384 |
0x75, 0x08, /* Report Size (8) */\ |
385 |
0x09, 0x51, /* Usage (0x51) */\ |
386 |
0x15, 0x01, /* Logical Minimum (1) */\ |
387 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
388 |
0x95, 0x01, /* Report Count (1) */\ |
389 |
0x81, 0x42, /* Input (Data,Var,Abs) */\ |
390 |
0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */\ |
391 |
0x15, 0x00, /* Logical Minimum (0) */\ |
392 |
0x26, 0xE2, 0x0A, /* Logical Maximum (2786) */\ |
393 |
0x75, 0x10, /* Report Size (16) */\ |
394 |
0x55, 0x0E, /* Unit Exponent (-2) */\ |
395 |
0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */\ |
396 |
0x09, 0x30, /* Usage (X) */\ |
397 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
398 |
0x46, 0xD3, 0x0A, /* Physical Maximum (2771) */\ |
399 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
400 |
0x09, 0x31, /* Usage (Y) */\ |
401 |
0x15, 0x00, /* Logical Minimum (0) */\ |
402 |
0x26, 0x2B, 0x06, /* Logical Maximum (1579) */\ |
403 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
404 |
0x46, 0x1C, 0x06, /* Physical Maximum (1564) */\ |
405 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
406 |
0xC0, /* End Collection */\ |
407 |
0x05, 0x0D, /* Usage Page (Digitizer) */\ |
408 |
0x09, 0x22, /* Usage (Finger) */\ |
409 |
0xA1, 0x02, /* Collection (Logical) */\ |
410 |
0x09, 0x42, /* Usage (Tip Switch) */\ |
411 |
0x15, 0x00, /* Logical Minimum (0) */\ |
412 |
0x25, 0x01, /* Logical Maximum (1) */\ |
413 |
0x75, 0x01, /* Report Size (1) */\ |
414 |
0x95, 0x01, /* Report Count (1) */\ |
415 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
416 |
0x95, 0x07, /* Report Count (7) */\ |
417 |
0x81, 0x03, /* Input (Const,Var,Abs) */\ |
418 |
0x75, 0x08, /* Report Size (8) */\ |
419 |
0x09, 0x51, /* Usage (0x51) */\ |
420 |
0x15, 0x01, /* Logical Minimum (1) */\ |
421 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
422 |
0x95, 0x01, /* Report Count (1) */\ |
423 |
0x81, 0x42, /* Input (Data,Var,Abs) */\ |
424 |
0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */\ |
425 |
0x15, 0x00, /* Logical Minimum (0) */\ |
426 |
0x26, 0xE2, 0x0A, /* Logical Maximum (2786) */\ |
427 |
0x75, 0x10, /* Report Size (16) */\ |
428 |
0x55, 0x0E, /* Unit Exponent (-2) */\ |
429 |
0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */\ |
430 |
0x09, 0x30, /* Usage (X) */\ |
431 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
432 |
0x46, 0xD3, 0x0A, /* Physical Maximum (2771) */\ |
433 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
434 |
0x09, 0x31, /* Usage (Y) */\ |
435 |
0x15, 0x00, /* Logical Minimum (0) */\ |
436 |
0x26, 0x2B, 0x06, /* Logical Maximum (1579) */\ |
437 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
438 |
0x46, 0x1C, 0x06, /* Physical Maximum (1564) */\ |
439 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
440 |
0xC0, /* End Collection */\ |
441 |
0x05, 0x0D, /* Usage Page (Digitizer) */\ |
442 |
0x09, 0x22, /* Usage (Finger) */\ |
443 |
0xA1, 0x02, /* Collection (Logical) */\ |
444 |
0x09, 0x42, /* Usage (Tip Switch) */\ |
445 |
0x15, 0x00, /* Logical Minimum (0) */\ |
446 |
0x25, 0x01, /* Logical Maximum (1) */\ |
447 |
0x75, 0x01, /* Report Size (1) */\ |
448 |
0x95, 0x01, /* Report Count (1) */\ |
449 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
450 |
0x95, 0x07, /* Report Count (7) */\ |
451 |
0x81, 0x03, /* Input (Const,Var,Abs) */\ |
452 |
0x75, 0x08, /* Report Size (8) */\ |
453 |
0x09, 0x51, /* Usage (0x51) */\ |
454 |
0x15, 0x01, /* Logical Minimum (1) */\ |
455 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
456 |
0x95, 0x01, /* Report Count (1) */\ |
457 |
0x81, 0x42, /* Input (Data,Var,Abs) */\ |
458 |
0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */\ |
459 |
0x15, 0x00, /* Logical Minimum (0) */\ |
460 |
0x26, 0xE2, 0x0A, /* Logical Maximum (2786) */\ |
461 |
0x75, 0x10, /* Report Size (16) */\ |
462 |
0x55, 0x0E, /* Unit Exponent (-2) */\ |
463 |
0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */\ |
464 |
0x09, 0x30, /* Usage (X) */\ |
465 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
466 |
0x46, 0xD3, 0x0A, /* Physical Maximum (2771) */\ |
467 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
468 |
0x09, 0x31, /* Usage (Y) */\ |
469 |
0x15, 0x00, /* Logical Minimum (0) */\ |
470 |
0x26, 0x2B, 0x06, /* Logical Maximum (1579) */\ |
471 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
472 |
0x46, 0x1C, 0x06, /* Physical Maximum (1564) */\ |
473 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
474 |
0xC0, /* End Collection */\ |
475 |
0x05, 0x0D, /* Usage Page (Digitizer) */\ |
476 |
0x09, 0x22, /* Usage (Finger) */\ |
477 |
0xA1, 0x02, /* Collection (Logical) */\ |
478 |
0x09, 0x42, /* Usage (Tip Switch) */\ |
479 |
0x15, 0x00, /* Logical Minimum (0) */\ |
480 |
0x25, 0x01, /* Logical Maximum (1) */\ |
481 |
0x75, 0x01, /* Report Size (1) */\ |
482 |
0x95, 0x01, /* Report Count (1) */\ |
483 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
484 |
0x95, 0x07, /* Report Count (7) */\ |
485 |
0x81, 0x03, /* Input (Const,Var,Abs) */\ |
486 |
0x75, 0x08, /* Report Size (8) */\ |
487 |
0x09, 0x51, /* Usage (0x51) */\ |
488 |
0x15, 0x01, /* Logical Minimum (1) */\ |
489 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
490 |
0x95, 0x01, /* Report Count (1) */\ |
491 |
0x81, 0x42, /* Input (Data,Var,Abs) */\ |
492 |
0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */\ |
493 |
0x15, 0x00, /* Logical Minimum (0) */\ |
494 |
0x26, 0xE2, 0x0A, /* Logical Maximum (2786) */\ |
495 |
0x75, 0x10, /* Report Size (16) */\ |
496 |
0x55, 0x0E, /* Unit Exponent (-2) */\ |
497 |
0x65, 0x11, /* Unit (System: SI Linear, Length: Centimeter) */\ |
498 |
0x09, 0x30, /* Usage (X) */\ |
499 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
500 |
0x46, 0xD3, 0x0A, /* Physical Maximum (2771) */\ |
501 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
502 |
0x09, 0x31, /* Usage (Y) */\ |
503 |
0x15, 0x00, /* Logical Minimum (0) */\ |
504 |
0x26, 0x2B, 0x06, /* Logical Maximum (1579) */\ |
505 |
0x35, 0x0F, /* Physical Minimum (15) */\ |
506 |
0x46, 0x1C, 0x06, /* Physical Maximum (1564) */\ |
507 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
508 |
0xC0, /* End Collection */\ |
509 |
0x05, 0x0D, /* Usage Page (Digitizer) */\ |
510 |
0x05, 0x0D, /* Usage Page (Digitizer) */\ |
511 |
0x55, 0x0C, /* Unit Exponent (-4) */\ |
512 |
0x66, 0x01, 0x10, /* Unit (System: SI Linear, Time: Seconds) */\ |
513 |
0x47, 0xFF, 0xFF, 0x00, 0x00, /* Physical Maximum (65534) */\ |
514 |
0x27, 0xFF, 0xFF, 0x00, 0x00, /* Logical Maximum (65534) */\ |
515 |
0x75, 0x10, /* Report Size (16) */\ |
516 |
0x95, 0x01, /* Report Count (1) */\ |
517 |
0x09, 0x56, /* Usage (0x56) */\ |
518 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
519 |
0x09, 0x54, /* Usage (0x54) */\ |
520 |
0x95, 0x01, /* Report Count (1) */\ |
521 |
0x75, 0x08, /* Report Size (8) */\ |
522 |
0x15, 0x00, /* Logical Minimum (0) */\ |
523 |
0x25, 0x0F, /* Logical Maximum (15) */\ |
524 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
525 |
0x85, 0x08, /* Report ID (8) */\ |
526 |
0x09, 0x55, /* Usage (0x55) */\ |
527 |
0xB1, 0x02, /* Feature (Data,Var,Abs) */\ |
528 |
0x85, 0x07, /* Report ID (7) */\ |
529 |
0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */\ |
530 |
0x09, 0xC5, /* Usage (0xC5) */\ |
531 |
0x15, 0x00, /* Logical Minimum (0) */\ |
532 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
533 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
534 |
0x75, 0x08, /* Report Size (8) */\ |
535 |
0x96, 0x00, 0x01, /* Report Count (256) */\ |
536 |
0xB1, 0x02, /* Feature (Data,Var,Abs) */\ |
537 |
0xC0, /* End Collection */\ |
538 |
0x06, 0x00, 0xFF, /* Usage Page (Vendor Defined 0xFF00) */\ |
539 |
0x09, 0x01, /* Usage (0x01) */\ |
540 |
0xA1, 0x01, /* Collection (Application) */\ |
541 |
0x85, 0x09, /* Report ID (9) */\ |
542 |
0x09, 0x02, /* Usage (0x02) */\ |
543 |
0x15, 0x00, /* Logical Minimum (0) */\ |
544 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
545 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
546 |
0x75, 0x08, /* Report Size (8) */\ |
547 |
0x95, 0x3F, /* Report Count (63) */\ |
548 |
0x91, 0x02, /* Output (Data,Var,Abs) */\ |
549 |
0x85, 0x0A, /* Report ID (10) */\ |
550 |
0x09, 0x03, /* Usage (0x03) */\ |
551 |
0x15, 0x00, /* Logical Minimum (0) */\ |
552 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
553 |
0x75, 0x08, /* Report Size (8) */\ |
554 |
0x95, 0x05, /* Report Count (5) */\ |
555 |
0x91, 0x02, /* Output (Data,Var,Abs) */\ |
556 |
0x85, 0x0B, /* Report ID (11) */\ |
557 |
0x09, 0x04, /* Usage (0x04) */\ |
558 |
0x15, 0x00, /* Logical Minimum (0) */\ |
559 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
560 |
0x75, 0x08, /* Report Size (8) */\ |
561 |
0x95, 0x3D, /* Report Count (61) */\ |
562 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
563 |
0x85, 0x0C, /* Report ID (12) */\ |
564 |
0x09, 0x05, /* Usage (0x05) */\ |
565 |
0x15, 0x00, /* Logical Minimum (0) */\ |
566 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
567 |
0x75, 0x08, /* Report Size (8) */\ |
568 |
0x95, 0x01, /* Report Count (1) */\ |
569 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
570 |
0x85, 0xDB, /* Report ID (-37) */\ |
571 |
0x09, 0x06, /* Usage (0x06) */\ |
572 |
0x15, 0x00, /* Logical Minimum (0) */\ |
573 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
574 |
0x35, 0x00, /* Physical Minimum (0) */\ |
575 |
0x46, 0xFF, 0x00, /* Physical Maximum (255) */\ |
576 |
0x75, 0x08, /* Report Size (8) */\ |
577 |
0x95, 0x3D, /* Report Count (61) */\ |
578 |
0x81, 0x02, /* Input (Data,Var,Abs) */\ |
579 |
0x85, 0x0F, /* Report ID (15) */\ |
580 |
0x09, 0x06, /* Usage (0x06) */\ |
581 |
0x15, 0x00, /* Logical Minimum (0) */\ |
582 |
0x26, 0xFF, 0x00, /* Logical Maximum (255) */\ |
583 |
0x75, 0x08, /* Report Size (8) */\ |
584 |
0x95, 0x03, /* Report Count (3) */\ |
585 |
0xB1, 0x02, /* Feature (Data,Var,Abs) */\ |
586 |
0xC0 /* End Collection */ |