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