1/*	$NetBSD: ugraphire_rdesc.h,v 1.10 2017/09/02 04:35:51 ryoon Exp $	*/
2/*
3 * Copyright (c) 2000 Nick Hibma <n_hibma@freebsd.org>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 */
27
28/* Tested with
29 * - Graphire3 4x5
30 * - Graphire3 6x8
31 * - Graphire4 4x5
32 */
33static const uByte uhid_graphire3_4x5_report_descr[] = {
34    0x05, 0x01,                    /* USAGE_PAGE (Generic Desktop)	*/
35    0x09, 0x02,                    /* USAGE (Mouse)			*/
36    0xa1, 0x01,                    /* COLLECTION (Application)		*/
37    0x85, 0x01,                    /*   REPORT_ID (1)			*/
38    0x09, 0x01,                    /*   USAGE (Pointer)			*/
39    0xa1, 0x00,                    /*   COLLECTION (Physical)		*/
40    0x05, 0x09,                    /*     USAGE_PAGE (Button)		*/
41    0x19, 0x01,                    /*     USAGE_MINIMUM (Button 1)	*/
42    0x29, 0x03,                    /*     USAGE_MAXIMUM (Button 3)	*/
43    0x15, 0x00,                    /*     LOGICAL_MINIMUM (0)		*/
44    0x25, 0x01,                    /*     LOGICAL_MAXIMUM (1)		*/
45    0x95, 0x03,                    /*     REPORT_COUNT (3)		*/
46    0x75, 0x01,                    /*     REPORT_SIZE (1)		*/
47    0x81, 0x02,                    /*     INPUT (Data,Var,Abs)		*/
48    0x95, 0x01,                    /*     REPORT_COUNT (1)		*/
49    0x75, 0x05,                    /*     REPORT_SIZE (5)		*/
50    0x81, 0x01,                    /*     INPUT (Cnst,Ary,Abs)		*/
51    0x05, 0x01,                    /*     USAGE_PAGE (Generic Desktop)	*/
52    0x09, 0x30,                    /*     USAGE (X)			*/
53    0x09, 0x31,                    /*     USAGE (Y)			*/
54    0x09, 0x38,                    /*     USAGE (Wheel)			*/
55    0x15, 0x81,                    /*     LOGICAL_MINIMUM (-127)	*/
56    0x25, 0x7f,                    /*     LOGICAL_MAXIMUM (127)		*/
57    0x75, 0x08,                    /*     REPORT_SIZE (8)		*/
58    0x95, 0x03,                    /*     REPORT_COUNT (3)		*/
59    0x81, 0x06,                    /*     INPUT (Data,Var,Rel)		*/
60    0xc0,                          /*   END_COLLECTION			*/
61    0xc0,                          /* END_COLLECTION			*/
62    0x05, 0x0d,                    /* USAGE_PAGE (Digitizers)		*/
63    0x09, 0x01,                    /* USAGE (Pointer)			*/
64    0xa1, 0x01,                    /* COLLECTION (Applicaption)		*/
65    0x85, 0x02,                    /*   REPORT_ID (2)			*/
66    0x05, 0x0d,                    /*   USAGE_PAGE (Digitizers)		*/
67    0x09, 0x01,                    /*   USAGE (Digitizer)		*/
68    0xa1, 0x00,                    /*   COLLECTION (Physical)		*/
69    0x09, 0x33,                    /*     USAGE (Touch)			*/
70    0x09, 0x44,                    /*     USAGE (Barrel Switch)		*/
71    0x09, 0x44,                    /*     USAGE (Barrel Switch)		*/
72    0x15, 0x00,                    /*     LOGICAL_MINIMUM (0)		*/
73    0x25, 0x01,                    /*     LOGICAL_MAXIMUM (1)		*/
74    0x75, 0x01,                    /*     REPORT_SIZE (1)		*/
75    0x95, 0x03,                    /*     REPORT_COUNT (3)		*/
76    0x81, 0x02,                    /*     INPUT (Data,Var,Abs)		*/
77    0x75, 0x01,                    /*     REPORT_SIZE (1)		*/
78    0x95, 0x02,                    /*     REPORT_COUNT (2)		*/
79    0x81, 0x01,                    /*     INPUT (Cnst,Ary,Abs)		*/
80    0x09, 0x3c,                    /*     USAGE (Invert)		*/
81    0x09, 0x38,                    /*     USAGE (Transducer Index)	*/
82    0x09, 0x32,                    /*     USAGE (In Range)		*/
83    0x75, 0x01,                    /*     REPORT_SIZE (1)		*/
84    0x95, 0x03,                    /*     REPORT_COUNT (3)		*/
85    0x81, 0x02,                    /*     INPUT (Data,Var,Abs)		*/
86    0x05, 0x01,                    /*     USAGE_PAGE (Generic Desktop)	*/
87    0x09, 0x30,                    /*     USAGE (X)			*/
88    0x15, 0x00,                    /*     LOGICAL_MINIMUM (0)		*/
89    0x26, 0xde, 0x27,              /*     LOGICAL_MAXIMUM (10206)	*/
90    0x75, 0x10,                    /*     REPORT_SIZE (16)		*/
91    0x95, 0x01,                    /*     REPORT_COUNT (1)		*/
92    0x81, 0x02,                    /*     INPUT (Data,Var,Abs)		*/
93    0x09, 0x31,                    /*     USAGE (Y)			*/
94    0x26, 0xfe, 0x1c,              /*     LOGICAL_MAXIMUM (7422)	*/
95    0x75, 0x10,                    /*     REPORT_SIZE (16)		*/
96    0x95, 0x01,                    /*     REPORT_COUNT (1)		*/
97    0x81, 0x02,                    /*     INPUT (Data,Var,Abs)		*/
98    0x05, 0x0d,                    /*     USAGE_PAGE (Digitizers)	*/
99    0x09, 0x30,                    /*     USAGE (Tip Pressure)		*/
100    0x26, 0xff, 0x01,              /*     LOGICAL_MAXIMUM (511)		*/
101    0x75, 0x10,                    /*     REPORT_SIZE (16)		*/
102    0x95, 0x01,                    /*     REPORT_COUNT (1)		*/
103    0x81, 0x02,                    /*     INPUT (Data,Var,Abs)		*/
104    0xc0,                          /*   END_COLLECTION			*/
105    0x05, 0x0d,                    /*   USAGE_PAGE (Digitizers)		*/
106    0x09, 0x00,                    /*   USAGE (Undefined)		*/
107    0x85, 0x02,                    /*   REPORT_ID (2)			*/
108    0x95, 0x01,                    /*   REPORT_COUNT (1)		*/
109    0xb1, 0x02,                    /*   FEATURE (Data,Var,Abs)		*/
110    0x09, 0x00,                    /*   USAGE (Undefined)		*/
111    0x85, 0x03,                    /*   REPORT_ID (3)			*/
112    0x95, 0x01,                    /*   REPORT_COUNT (1)		*/
113    0xb1, 0x02,                    /*   FEATURE (Data,Var,Abs)		*/
114    0xc0                           /* END_COLLECTION			*/
115};
116