1c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner/****************************************************************************
2c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
3c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
4c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   This header was automatically generated from a Linux kernel header
5c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   of the same name, to make information necessary for userspace to
6c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   call into the kernel available to libc.  It contains only constants,
7c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   structures, and macros generated from the original header, and thus,
8c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   contains no copyrightable information.
9c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
10c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
11c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************/
12c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#ifndef _HIL_H_
13c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define _HIL_H_
14c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
15c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#include <asm/types.h>
16c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
17c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_CLOCK 8MHZ
18c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EK1_CLOCK 30HZ
19c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EK2_CLOCK 60HZ
20c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
21c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_TIMEOUT_DEV 5
22c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_TIMEOUT_DEVS 10
23c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_TIMEOUT_NORESP 10
24c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_TIMEOUT_DEVS_DATA 16
25c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_TIMEOUT_SELFTEST 200
26c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
27c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_WIRE_PACKET_LEN 15
28c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerenum hil_wire_bitpos {
29c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_START = 0,
30c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_ADDR2,
31c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_ADDR1,
32c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_ADDR0,
33c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_COMMAND,
34c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA7,
35c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA6,
36c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA5,
37c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA4,
38c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA3,
39c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA2,
40c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA1,
41c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_DATA0,
42c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_PARITY,
43c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_WIRE_STOP
44c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
45c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
46c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerenum hil_pkt_bitpos {
47c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_CMD = 0x00000800,
48c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_ADDR2 = 0x00000400,
49c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_ADDR1 = 0x00000200,
50c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_ADDR0 = 0x00000100,
51c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_ADDR_MASK = 0x00000700,
52c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_ADDR_SHIFT = 8,
53c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA7 = 0x00000080,
54c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA6 = 0x00000040,
55c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA5 = 0x00000020,
56c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA4 = 0x00000010,
57c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA3 = 0x00000008,
58c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA2 = 0x00000004,
59c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA1 = 0x00000002,
60c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA0 = 0x00000001,
61c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA_MASK = 0x000000FF,
62c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_PKT_DATA_SHIFT = 0
63c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
64c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
65c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerenum hil_error_bitpos {
66c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_ERR_OB = 0x00000800,
67c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_ERR_INT = 0x00010000,
68c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_ERR_NMI = 0x00020000,
69c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_ERR_LERR = 0x00040000,
70c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_ERR_PERR = 0x01000000,
71c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_ERR_FERR = 0x02000000,
72c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_ERR_FOF = 0x04000000
73c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
74c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
75c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerenum hil_control_bitpos {
76c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CTRL_TEST = 0x00010000,
77c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CTRL_IPF = 0x00040000,
78c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CTRL_APE = 0x02000000
79c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
80c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
81c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_DO_ALTER_CTRL 0x40000000
82c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_CTRL_ONLY 0xc0000000
83c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
84c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnertypedef u32 hil_packet;
85c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
86c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerenum hil_command {
87c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_IFC = 0x00,
88c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_EPT = 0x01,
89c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_ELB = 0x02,
90c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_IDD = 0x03,
91c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_DSR = 0x04,
92c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PST = 0x05,
93c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_RRG = 0x06,
94c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_WRG = 0x07,
95c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_ACF = 0x08,
96c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMDID_ACF = 0x07,
97c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_POL = 0x10,
98c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMDCT_POL = 0x0f,
99c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_RPL = 0x20,
100c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMDCT_RPL = 0x0f,
101c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_RNM = 0x30,
102c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_RST = 0x31,
103c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_EXD = 0x32,
104c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_RSC = 0x33,
105c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
106c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_DKA = 0x3d,
107c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_EK1 = 0x3e,
108c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_EK2 = 0x3f,
109c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PR1 = 0x40,
110c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PR2 = 0x41,
111c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PR3 = 0x42,
112c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PR4 = 0x43,
113c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PR5 = 0x44,
114c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PR6 = 0x45,
115c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PR7 = 0x46,
116c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_PRM = 0x47,
117c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_AK1 = 0x48,
118c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_AK2 = 0x49,
119c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_AK3 = 0x4a,
120c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_AK4 = 0x4b,
121c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_AK5 = 0x4c,
122c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_AK6 = 0x4d,
123c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_AK7 = 0x4e,
124c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_ACK = 0x4f,
125c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
126c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_RIO = 0xfa,
127c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_SHR = 0xfb,
128c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_TER = 0xfc,
129c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_CAE = 0xfd,
130c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner HIL_CMD_DHR = 0xfe,
131c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
132c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
133c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
134c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_MASK 0xe0
135c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_KB_INTEGRAL 0xa0
136c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_KB_ITF 0xc0
137c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_KB_RSVD 0xe0
138c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_KB_LANG_MASK 0x1f
139c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_KBLANG_USE_ESD 0x00
140c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_ABS 0x80
141c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8
142c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_RSVD1 0x98
143c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_TABLET_MASK 0xf8
144c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_TABLET 0x90
145c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc
146c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_TSCREEN 0x8c
147c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc
148c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_RSVD2 0x88
149c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc
150c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_ABS_RSVD3 0x80
151c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_REL 0x60
152c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_RSVD1_MASK 0xf0
153c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_RSVD1 0x70
154c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_RSVD2_MASK 0xfc
155c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_RSVD2 0x6c
156c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_MOUSE_MASK 0xfc
157c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_MOUSE 0x68
158c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_QUAD_MASK 0xf8
159c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_REL_QUAD 0x60
160c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_CHAR 0x40
161c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc
162c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_BARCODE 0x5c
163c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc
164c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_RSVD1 0x58
165c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8
166c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_RSVD2 0x50
167c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0
168c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_CHAR_RSVD3 0x40
169c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_OTHER 0x20
170c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0
171c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_RSVD1 0x30
172c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc
173c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_BARCODE 0x2c
174c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc
175c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_RSVD2 0x28
176c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8
177c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_OTHER_RSVD3 0x20
178c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_DID_TYPE_KEYPAD 0x00
179c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
180c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HEADER_AXSET_MASK 0x03
181c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HEADER_RSC 0x04
182c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HEADER_EXD 0x08
183c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HEADER_IOD 0x10
184c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HEADER_16BIT 0x20
185c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HEADER_ABS 0x40
186c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HEADER_2X_AXIS 0x80
187c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
188c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_IOD_NBUTTON_MASK 0x07
189c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_IOD_PROXIMITY 0x08
190c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_IOD_PROMPT_MASK 0x70
191c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_IOD_PROMPT_SHIFT 4
192c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_IOD_PROMPT 0x80
193c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
194c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_NUM_AXES_PER_SET(header_packet)  ((header_packet) & HIL_IDD_HEADER_AXSET_MASK)
195c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
196c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_NUM_AXSETS(header_packet)  (2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS))
197c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
198c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_LEN(header_packet)  ((4 - !(header_packet & HIL_IDD_HEADER_IOD) -   2 * !(HIL_IDD_NUM_AXES_PER_SET(header_packet))) +   2 * HIL_IDD_NUM_AXES_PER_SET(header_packet) *   !!((header_packet) & HIL_IDD_HEADER_ABS))
199c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
200c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_AXIS_COUNTS_PER_M(header_ptr)  (!(HIL_IDD_NUM_AXSETS(*(header_ptr))) ? -1 :  (((*(header_ptr + 1) & HIL_PKT_DATA_MASK) +   ((*(header_ptr + 2) & HIL_PKT_DATA_MASK)) << 8)  * ((*(header_ptr) & HIL_IDD_HEADER_16BIT) ? 100 : 1)))
201c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
202c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_AXIS_MAX(header_ptr, __axnum)  ((!(*(header_ptr) & HIL_IDD_HEADER_ABS) ||   (HIL_IDD_NUM_AXES_PER_SET(*(header_ptr)) <= __axnum)) ? 0 :   ((HIL_PKT_DATA_MASK & *((header_ptr) + 3 + 2 * __axnum)) +   ((HIL_PKT_DATA_MASK & *((header_ptr) + 4 + 2 * __axnum)) << 8)))
203c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
204c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_IOD(header_ptr)  (*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1))
205c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
206c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HAS_GEN_PROMPT(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) &&   (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT))
207c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
208c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) &&   (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY))
209c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
210c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_NUM_BUTTONS(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) ?   (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0)
211c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
212c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_IDD_NUM_PROMPTS(header_ptr)  ((*header_ptr & HIL_IDD_HEADER_IOD) ?   ((HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NPROMPT_MASK)   >> HIL_IDD_IOD_PROMPT_SHIFT) : 0)
213c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
214c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_HEADER_WRG 0x03
215c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_HEADER_WRG_TYPE1 0x01
216c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_HEADER_WRG_TYPE2 0x02
217c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_HEADER_RRG 0x04
218c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_HEADER_RNM 0x10
219c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_HEADER_RST 0x20
220c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_HEADER_LOCALE 0x40
221c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
222c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_NUM_RRG(header_ptr)  ((*header_ptr & HIL_EXD_HEADER_RRG) ?   (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0)
223c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
224c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_NUM_WWG(header_ptr)  ((*header_ptr & HIL_EXD_HEADER_WRG) ?   (*(header_ptr + 2 - !(*header_ptr & HIL_EXD_HEADER_RRG)) &   HIL_PKT_DATA_MASK) : 0)
225c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
226c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_LEN(header_ptr)  (!!(*header_ptr & HIL_EXD_HEADER_RRG) +   !!(*header_ptr & HIL_EXD_HEADER_WRG) +   !!(*header_ptr & HIL_EXD_HEADER_LOCALE) +   2 * !!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) + 1)
227c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
228c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_LOCALE(header_ptr)  (!(*header_ptr & HIL_EXD_HEADER_LOCALE) ? -1 :   (*(header_ptr + HIL_EXD_LEN(header_ptr) - 1) & HIL_PKT_DATA_MASK))
229c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
230c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_EXD_WRG_TYPE2_LEN(header_ptr)  (!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) ? -1 :   (*(header_ptr + HIL_EXD_LEN(header_ptr) - 2 -   !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) +   ((*(header_ptr + HIL_EXD_LEN(header_ptr) - 1 -   !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) << 8))
231c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
232c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_LOCALE_MAX 0x1f
233c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
234c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_LOCALE_MAP  "",    "",    "",    "swiss.french",    "portuguese",    "arabic",    "hebrew",    "english.canadian",    "turkish",    "greek",    "thai",    "italian",    "korean",    "dutch",    "swedish",    "german",    "chinese",    "chinese",    "swiss.french",    "spanish",    "swiss.german",    "flemish",    "finnish",    "english.uk",    "french.canadian",    "swiss.german",    "norwegian",    "french",    "danish",    "japanese",    "spanish",   "english.us"
235c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
236c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_KEYCODES_SET1_TBLSIZE 128
237c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_KEYCODES_SET1   KEY_5, KEY_RESERVED, KEY_RIGHTALT, KEY_LEFTALT,   KEY_RIGHTSHIFT, KEY_LEFTSHIFT, KEY_LEFTCTRL, KEY_SYSRQ,   KEY_KP4, KEY_KP8, KEY_KP5, KEY_KP9,   KEY_KP6, KEY_KP7, KEY_KPCOMMA, KEY_KPENTER,   KEY_KP1, KEY_KPSLASH, KEY_KP2, KEY_KPPLUS,   KEY_KP3, KEY_KPASTERISK, KEY_KP0, KEY_KPMINUS,   KEY_B, KEY_V, KEY_C, KEY_X,   KEY_Z, KEY_RESERVED, KEY_RESERVED, KEY_ESC,   KEY_6, KEY_F10, KEY_3, KEY_F11,   KEY_KPDOT, KEY_F9, KEY_TAB  , KEY_F12,   KEY_H, KEY_G, KEY_F, KEY_D,   KEY_S, KEY_A, KEY_RESERVED, KEY_CAPSLOCK,   KEY_U, KEY_Y, KEY_T, KEY_R,   KEY_E, KEY_W, KEY_Q, KEY_TAB,   KEY_7, KEY_6, KEY_5, KEY_4,   KEY_3, KEY_2, KEY_1, KEY_GRAVE,   KEY_F13, KEY_F14, KEY_F15, KEY_F16,   KEY_F17, KEY_F18, KEY_F19, KEY_F20,   KEY_MENU, KEY_F4, KEY_F3, KEY_F2,   KEY_F1, KEY_VOLUMEUP, KEY_STOP, KEY_SENDFILE,   KEY_SYSRQ, KEY_F5, KEY_F6, KEY_F7,   KEY_F8, KEY_VOLUMEDOWN, KEY_DEL_EOL, KEY_DEL_EOS,   KEY_8, KEY_9, KEY_0, KEY_MINUS,   KEY_EQUAL, KEY_BACKSPACE, KEY_INS_LINE, KEY_DEL_LINE,   KEY_I, KEY_O, KEY_P, KEY_LEFTBRACE,   KEY_RIGHTBRACE, KEY_BACKSLASH, KEY_INSERT, KEY_DELETE,   KEY_J, KEY_K, KEY_L, KEY_SEMICOLON,   KEY_APOSTROPHE, KEY_ENTER, KEY_HOME, KEY_PAGEUP,   KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH,   KEY_BACKSLASH, KEY_SELECT, KEY_102ND, KEY_PAGEDOWN,   KEY_N, KEY_SPACE, KEY_NEXT, KEY_RESERVED,   KEY_LEFT, KEY_DOWN, KEY_UP, KEY_RIGHT
238c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
239c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_KEYCODES_SET3_TBLSIZE 128
240c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_KEYCODES_SET3   KEY_RESERVED, KEY_ESC, KEY_1, KEY_2,   KEY_3, KEY_4, KEY_5, KEY_6,   KEY_7, KEY_8, KEY_9, KEY_0,   KEY_MINUS, KEY_EQUAL, KEY_BACKSPACE, KEY_TAB,   KEY_Q, KEY_W, KEY_E, KEY_R,   KEY_T, KEY_Y, KEY_U, KEY_I,   KEY_O, KEY_P, KEY_LEFTBRACE, KEY_RIGHTBRACE,   KEY_ENTER, KEY_LEFTCTRL, KEY_A, KEY_S,   KEY_D, KEY_F, KEY_G, KEY_H,   KEY_J, KEY_K, KEY_L, KEY_SEMICOLON,   KEY_APOSTROPHE,KEY_GRAVE, KEY_LEFTSHIFT, KEY_BACKSLASH,   KEY_Z, KEY_X, KEY_C, KEY_V,   KEY_B, KEY_N, KEY_M, KEY_COMMA,   KEY_DOT, KEY_SLASH, KEY_RIGHTSHIFT, KEY_KPASTERISK,   KEY_LEFTALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1,   KEY_F2, KEY_F3, KEY_F4, KEY_F5,   KEY_F6, KEY_F7, KEY_F8, KEY_F9,   KEY_F10, KEY_NUMLOCK, KEY_SCROLLLOCK, KEY_KP7,   KEY_KP8, KEY_KP9, KEY_KPMINUS, KEY_KP4,   KEY_KP5, KEY_KP6, KEY_KPPLUS, KEY_KP1,   KEY_KP2, KEY_KP3, KEY_KP0, KEY_KPDOT,   KEY_SYSRQ, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_UP, KEY_LEFT, KEY_DOWN, KEY_RIGHT,   KEY_HOME, KEY_PAGEUP, KEY_END, KEY_PAGEDOWN,   KEY_INSERT, KEY_DELETE, KEY_102ND, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_F1, KEY_F2, KEY_F3, KEY_F4,   KEY_F5, KEY_F6, KEY_F7, KEY_F8,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED,   KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED
241c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
242c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_NUM_AXES_MASK 0x03
243c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CTS 0x04
244c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_STATUS_PENDING 0x08
245c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_MASK 0x70
246c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_NONE 0x00
247c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_RSVD1 0x10
248c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_ASCII 0x20
249c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_BINARY 0x30
250c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_SET1 0x40
251c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_RSVD2 0x50
252c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_SET2 0x60
253c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_CHARTYPE_SET3 0x70
254c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define HIL_POL_AXIS_ALT 0x80
255c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
256c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#endif
257