1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12 #ifndef _HIL_H_ 13 #define _HIL_H_ 14 15 #include <asm/types.h> 16 17 #define HIL_CLOCK 8MHZ 18 #define HIL_EK1_CLOCK 30HZ 19 #define HIL_EK2_CLOCK 60HZ 20 21 #define HIL_TIMEOUT_DEV 5 22 #define HIL_TIMEOUT_DEVS 10 23 #define HIL_TIMEOUT_NORESP 10 24 #define HIL_TIMEOUT_DEVS_DATA 16 25 #define HIL_TIMEOUT_SELFTEST 200 26 27 #define HIL_WIRE_PACKET_LEN 15 28 enum hil_wire_bitpos { 29 HIL_WIRE_START = 0, 30 HIL_WIRE_ADDR2, 31 HIL_WIRE_ADDR1, 32 HIL_WIRE_ADDR0, 33 HIL_WIRE_COMMAND, 34 HIL_WIRE_DATA7, 35 HIL_WIRE_DATA6, 36 HIL_WIRE_DATA5, 37 HIL_WIRE_DATA4, 38 HIL_WIRE_DATA3, 39 HIL_WIRE_DATA2, 40 HIL_WIRE_DATA1, 41 HIL_WIRE_DATA0, 42 HIL_WIRE_PARITY, 43 HIL_WIRE_STOP 44 }; 45 46 enum hil_pkt_bitpos { 47 HIL_PKT_CMD = 0x00000800, 48 HIL_PKT_ADDR2 = 0x00000400, 49 HIL_PKT_ADDR1 = 0x00000200, 50 HIL_PKT_ADDR0 = 0x00000100, 51 HIL_PKT_ADDR_MASK = 0x00000700, 52 HIL_PKT_ADDR_SHIFT = 8, 53 HIL_PKT_DATA7 = 0x00000080, 54 HIL_PKT_DATA6 = 0x00000040, 55 HIL_PKT_DATA5 = 0x00000020, 56 HIL_PKT_DATA4 = 0x00000010, 57 HIL_PKT_DATA3 = 0x00000008, 58 HIL_PKT_DATA2 = 0x00000004, 59 HIL_PKT_DATA1 = 0x00000002, 60 HIL_PKT_DATA0 = 0x00000001, 61 HIL_PKT_DATA_MASK = 0x000000FF, 62 HIL_PKT_DATA_SHIFT = 0 63 }; 64 65 enum hil_error_bitpos { 66 HIL_ERR_OB = 0x00000800, 67 HIL_ERR_INT = 0x00010000, 68 HIL_ERR_NMI = 0x00020000, 69 HIL_ERR_LERR = 0x00040000, 70 HIL_ERR_PERR = 0x01000000, 71 HIL_ERR_FERR = 0x02000000, 72 HIL_ERR_FOF = 0x04000000 73 }; 74 75 enum hil_control_bitpos { 76 HIL_CTRL_TEST = 0x00010000, 77 HIL_CTRL_IPF = 0x00040000, 78 HIL_CTRL_APE = 0x02000000 79 }; 80 81 #define HIL_DO_ALTER_CTRL 0x40000000 82 #define HIL_CTRL_ONLY 0xc0000000 83 84 typedef u32 hil_packet; 85 86 enum hil_command { 87 HIL_CMD_IFC = 0x00, 88 HIL_CMD_EPT = 0x01, 89 HIL_CMD_ELB = 0x02, 90 HIL_CMD_IDD = 0x03, 91 HIL_CMD_DSR = 0x04, 92 HIL_CMD_PST = 0x05, 93 HIL_CMD_RRG = 0x06, 94 HIL_CMD_WRG = 0x07, 95 HIL_CMD_ACF = 0x08, 96 HIL_CMDID_ACF = 0x07, 97 HIL_CMD_POL = 0x10, 98 HIL_CMDCT_POL = 0x0f, 99 HIL_CMD_RPL = 0x20, 100 HIL_CMDCT_RPL = 0x0f, 101 HIL_CMD_RNM = 0x30, 102 HIL_CMD_RST = 0x31, 103 HIL_CMD_EXD = 0x32, 104 HIL_CMD_RSC = 0x33, 105 106 HIL_CMD_DKA = 0x3d, 107 HIL_CMD_EK1 = 0x3e, 108 HIL_CMD_EK2 = 0x3f, 109 HIL_CMD_PR1 = 0x40, 110 HIL_CMD_PR2 = 0x41, 111 HIL_CMD_PR3 = 0x42, 112 HIL_CMD_PR4 = 0x43, 113 HIL_CMD_PR5 = 0x44, 114 HIL_CMD_PR6 = 0x45, 115 HIL_CMD_PR7 = 0x46, 116 HIL_CMD_PRM = 0x47, 117 HIL_CMD_AK1 = 0x48, 118 HIL_CMD_AK2 = 0x49, 119 HIL_CMD_AK3 = 0x4a, 120 HIL_CMD_AK4 = 0x4b, 121 HIL_CMD_AK5 = 0x4c, 122 HIL_CMD_AK6 = 0x4d, 123 HIL_CMD_AK7 = 0x4e, 124 HIL_CMD_ACK = 0x4f, 125 126 HIL_CMD_RIO = 0xfa, 127 HIL_CMD_SHR = 0xfb, 128 HIL_CMD_TER = 0xfc, 129 HIL_CMD_CAE = 0xfd, 130 HIL_CMD_DHR = 0xfe, 131 132 }; 133 134 #define HIL_IDD_DID_TYPE_MASK 0xe0 135 #define HIL_IDD_DID_TYPE_KB_INTEGRAL 0xa0 136 #define HIL_IDD_DID_TYPE_KB_ITF 0xc0 137 #define HIL_IDD_DID_TYPE_KB_RSVD 0xe0 138 #define HIL_IDD_DID_TYPE_KB_LANG_MASK 0x1f 139 #define HIL_IDD_DID_KBLANG_USE_ESD 0x00 140 #define HIL_IDD_DID_TYPE_ABS 0x80 141 #define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8 142 #define HIL_IDD_DID_ABS_RSVD1 0x98 143 #define HIL_IDD_DID_ABS_TABLET_MASK 0xf8 144 #define HIL_IDD_DID_ABS_TABLET 0x90 145 #define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc 146 #define HIL_IDD_DID_ABS_TSCREEN 0x8c 147 #define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc 148 #define HIL_IDD_DID_ABS_RSVD2 0x88 149 #define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc 150 #define HIL_IDD_DID_ABS_RSVD3 0x80 151 #define HIL_IDD_DID_TYPE_REL 0x60 152 #define HIL_IDD_DID_REL_RSVD1_MASK 0xf0 153 #define HIL_IDD_DID_REL_RSVD1 0x70 154 #define HIL_IDD_DID_REL_RSVD2_MASK 0xfc 155 #define HIL_IDD_DID_REL_RSVD2 0x6c 156 #define HIL_IDD_DID_REL_MOUSE_MASK 0xfc 157 #define HIL_IDD_DID_REL_MOUSE 0x68 158 #define HIL_IDD_DID_REL_QUAD_MASK 0xf8 159 #define HIL_IDD_DID_REL_QUAD 0x60 160 #define HIL_IDD_DID_TYPE_CHAR 0x40 161 #define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc 162 #define HIL_IDD_DID_CHAR_BARCODE 0x5c 163 #define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc 164 #define HIL_IDD_DID_CHAR_RSVD1 0x58 165 #define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8 166 #define HIL_IDD_DID_CHAR_RSVD2 0x50 167 #define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0 168 #define HIL_IDD_DID_CHAR_RSVD3 0x40 169 #define HIL_IDD_DID_TYPE_OTHER 0x20 170 #define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0 171 #define HIL_IDD_DID_OTHER_RSVD1 0x30 172 #define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc 173 #define HIL_IDD_DID_OTHER_BARCODE 0x2c 174 #define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc 175 #define HIL_IDD_DID_OTHER_RSVD2 0x28 176 #define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8 177 #define HIL_IDD_DID_OTHER_RSVD3 0x20 178 #define HIL_IDD_DID_TYPE_KEYPAD 0x00 179 180 #define HIL_IDD_HEADER_AXSET_MASK 0x03 181 #define HIL_IDD_HEADER_RSC 0x04 182 #define HIL_IDD_HEADER_EXD 0x08 183 #define HIL_IDD_HEADER_IOD 0x10 184 #define HIL_IDD_HEADER_16BIT 0x20 185 #define HIL_IDD_HEADER_ABS 0x40 186 #define HIL_IDD_HEADER_2X_AXIS 0x80 187 188 #define HIL_IDD_IOD_NBUTTON_MASK 0x07 189 #define HIL_IDD_IOD_PROXIMITY 0x08 190 #define HIL_IDD_IOD_PROMPT_MASK 0x70 191 #define HIL_IDD_IOD_PROMPT_SHIFT 4 192 #define HIL_IDD_IOD_PROMPT 0x80 193 194 #define HIL_IDD_NUM_AXES_PER_SET(header_packet) ((header_packet) & HIL_IDD_HEADER_AXSET_MASK) 195 196 #define HIL_IDD_NUM_AXSETS(header_packet) (2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS)) 197 198 #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)) 199 200 #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))) 201 202 #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))) 203 204 #define HIL_IDD_IOD(header_ptr) (*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1)) 205 206 #define HIL_IDD_HAS_GEN_PROMPT(header_ptr) ((*header_ptr & HIL_IDD_HEADER_IOD) && (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT)) 207 208 #define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr) ((*header_ptr & HIL_IDD_HEADER_IOD) && (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY)) 209 210 #define HIL_IDD_NUM_BUTTONS(header_ptr) ((*header_ptr & HIL_IDD_HEADER_IOD) ? (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0) 211 212 #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) 213 214 #define HIL_EXD_HEADER_WRG 0x03 215 #define HIL_EXD_HEADER_WRG_TYPE1 0x01 216 #define HIL_EXD_HEADER_WRG_TYPE2 0x02 217 #define HIL_EXD_HEADER_RRG 0x04 218 #define HIL_EXD_HEADER_RNM 0x10 219 #define HIL_EXD_HEADER_RST 0x20 220 #define HIL_EXD_HEADER_LOCALE 0x40 221 222 #define HIL_EXD_NUM_RRG(header_ptr) ((*header_ptr & HIL_EXD_HEADER_RRG) ? (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0) 223 224 #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) 225 226 #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) 227 228 #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)) 229 230 #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)) 231 232 #define HIL_LOCALE_MAX 0x1f 233 234 #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" 235 236 #define HIL_KEYCODES_SET1_TBLSIZE 128 237 #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 238 239 #define HIL_KEYCODES_SET3_TBLSIZE 128 240 #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 241 242 #define HIL_POL_NUM_AXES_MASK 0x03 243 #define HIL_POL_CTS 0x04 244 #define HIL_POL_STATUS_PENDING 0x08 245 #define HIL_POL_CHARTYPE_MASK 0x70 246 #define HIL_POL_CHARTYPE_NONE 0x00 247 #define HIL_POL_CHARTYPE_RSVD1 0x10 248 #define HIL_POL_CHARTYPE_ASCII 0x20 249 #define HIL_POL_CHARTYPE_BINARY 0x30 250 #define HIL_POL_CHARTYPE_SET1 0x40 251 #define HIL_POL_CHARTYPE_RSVD2 0x50 252 #define HIL_POL_CHARTYPE_SET2 0x60 253 #define HIL_POL_CHARTYPE_SET3 0x70 254 #define HIL_POL_AXIS_ALT 0x80 255 256 #endif 257