1951a39d68df598db08dfced8b4707755864a0492Ying Wang/**************************************************************************** 2951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 3951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 4951a39d68df598db08dfced8b4707755864a0492Ying Wang *** This header was automatically generated from a Linux kernel header 5951a39d68df598db08dfced8b4707755864a0492Ying Wang *** of the same name, to make information necessary for userspace to 6951a39d68df598db08dfced8b4707755864a0492Ying Wang *** call into the kernel available to libc. It contains only constants, 7951a39d68df598db08dfced8b4707755864a0492Ying Wang *** structures, and macros generated from the original header, and thus, 8951a39d68df598db08dfced8b4707755864a0492Ying Wang *** contains no copyrightable information. 9951a39d68df598db08dfced8b4707755864a0492Ying Wang *** 10951a39d68df598db08dfced8b4707755864a0492Ying Wang **************************************************************************** 11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/ 12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _HIL_H_ 13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _HIL_H_ 14951a39d68df598db08dfced8b4707755864a0492Ying Wang 15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <asm/types.h> 16951a39d68df598db08dfced8b4707755864a0492Ying Wang 17951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_CLOCK 8MHZ 18951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EK1_CLOCK 30HZ 19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EK2_CLOCK 60HZ 20951a39d68df598db08dfced8b4707755864a0492Ying Wang 21951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_TIMEOUT_DEV 5 22951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_TIMEOUT_DEVS 10 23951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_TIMEOUT_NORESP 10 24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_TIMEOUT_DEVS_DATA 16 25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_TIMEOUT_SELFTEST 200 26951a39d68df598db08dfced8b4707755864a0492Ying Wang 27951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_WIRE_PACKET_LEN 15 28951a39d68df598db08dfced8b4707755864a0492Ying Wangenum hil_wire_bitpos { 29951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_START = 0, 30951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_ADDR2, 31951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_ADDR1, 32951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_ADDR0, 33951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_COMMAND, 34951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA7, 35951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA6, 36951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA5, 37951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA4, 38951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA3, 39951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA2, 40951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA1, 41951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_DATA0, 42951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_PARITY, 43951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_WIRE_STOP 44951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 45951a39d68df598db08dfced8b4707755864a0492Ying Wang 46951a39d68df598db08dfced8b4707755864a0492Ying Wangenum hil_pkt_bitpos { 47951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_CMD = 0x00000800, 48951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_ADDR2 = 0x00000400, 49951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_ADDR1 = 0x00000200, 50951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_ADDR0 = 0x00000100, 51951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_ADDR_MASK = 0x00000700, 52951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_ADDR_SHIFT = 8, 53951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA7 = 0x00000080, 54951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA6 = 0x00000040, 55951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA5 = 0x00000020, 56951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA4 = 0x00000010, 57951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA3 = 0x00000008, 58951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA2 = 0x00000004, 59951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA1 = 0x00000002, 60951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA0 = 0x00000001, 61951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA_MASK = 0x000000FF, 62951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_PKT_DATA_SHIFT = 0 63951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 64951a39d68df598db08dfced8b4707755864a0492Ying Wang 65951a39d68df598db08dfced8b4707755864a0492Ying Wangenum hil_error_bitpos { 66951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_ERR_OB = 0x00000800, 67951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_ERR_INT = 0x00010000, 68951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_ERR_NMI = 0x00020000, 69951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_ERR_LERR = 0x00040000, 70951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_ERR_PERR = 0x01000000, 71951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_ERR_FERR = 0x02000000, 72951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_ERR_FOF = 0x04000000 73951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 74951a39d68df598db08dfced8b4707755864a0492Ying Wang 75951a39d68df598db08dfced8b4707755864a0492Ying Wangenum hil_control_bitpos { 76951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CTRL_TEST = 0x00010000, 77951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CTRL_IPF = 0x00040000, 78951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CTRL_APE = 0x02000000 79951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 80951a39d68df598db08dfced8b4707755864a0492Ying Wang 81951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_DO_ALTER_CTRL 0x40000000 82951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_CTRL_ONLY 0xc0000000 83951a39d68df598db08dfced8b4707755864a0492Ying Wang 84951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef u32 hil_packet; 85951a39d68df598db08dfced8b4707755864a0492Ying Wang 86951a39d68df598db08dfced8b4707755864a0492Ying Wangenum hil_command { 87951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_IFC = 0x00, 88951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_EPT = 0x01, 89951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_ELB = 0x02, 90951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_IDD = 0x03, 91951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_DSR = 0x04, 92951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PST = 0x05, 93951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_RRG = 0x06, 94951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_WRG = 0x07, 95951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_ACF = 0x08, 96951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMDID_ACF = 0x07, 97951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_POL = 0x10, 98951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMDCT_POL = 0x0f, 99951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_RPL = 0x20, 100951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMDCT_RPL = 0x0f, 101951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_RNM = 0x30, 102951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_RST = 0x31, 103951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_EXD = 0x32, 104951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_RSC = 0x33, 105951a39d68df598db08dfced8b4707755864a0492Ying Wang 106951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_DKA = 0x3d, 107951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_EK1 = 0x3e, 108951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_EK2 = 0x3f, 109951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PR1 = 0x40, 110951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PR2 = 0x41, 111951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PR3 = 0x42, 112951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PR4 = 0x43, 113951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PR5 = 0x44, 114951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PR6 = 0x45, 115951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PR7 = 0x46, 116951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_PRM = 0x47, 117951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_AK1 = 0x48, 118951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_AK2 = 0x49, 119951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_AK3 = 0x4a, 120951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_AK4 = 0x4b, 121951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_AK5 = 0x4c, 122951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_AK6 = 0x4d, 123951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_AK7 = 0x4e, 124951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_ACK = 0x4f, 125951a39d68df598db08dfced8b4707755864a0492Ying Wang 126951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_RIO = 0xfa, 127951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_SHR = 0xfb, 128951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_TER = 0xfc, 129951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_CAE = 0xfd, 130951a39d68df598db08dfced8b4707755864a0492Ying Wang HIL_CMD_DHR = 0xfe, 131951a39d68df598db08dfced8b4707755864a0492Ying Wang 132951a39d68df598db08dfced8b4707755864a0492Ying Wang}; 133951a39d68df598db08dfced8b4707755864a0492Ying Wang 134951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_MASK 0xe0 135951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_KB_INTEGRAL 0xa0 136951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_KB_ITF 0xc0 137951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_KB_RSVD 0xe0 138951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_KB_LANG_MASK 0x1f 139951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_KBLANG_USE_ESD 0x00 140951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_ABS 0x80 141951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8 142951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_RSVD1 0x98 143951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_TABLET_MASK 0xf8 144951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_TABLET 0x90 145951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc 146951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_TSCREEN 0x8c 147951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc 148951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_RSVD2 0x88 149951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc 150951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_ABS_RSVD3 0x80 151951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_REL 0x60 152951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_RSVD1_MASK 0xf0 153951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_RSVD1 0x70 154951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_RSVD2_MASK 0xfc 155951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_RSVD2 0x6c 156951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_MOUSE_MASK 0xfc 157951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_MOUSE 0x68 158951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_QUAD_MASK 0xf8 159951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_REL_QUAD 0x60 160951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_CHAR 0x40 161951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc 162951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_BARCODE 0x5c 163951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc 164951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_RSVD1 0x58 165951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8 166951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_RSVD2 0x50 167951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0 168951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_CHAR_RSVD3 0x40 169951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_OTHER 0x20 170951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0 171951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_RSVD1 0x30 172951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc 173951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_BARCODE 0x2c 174951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc 175951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_RSVD2 0x28 176951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8 177951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_OTHER_RSVD3 0x20 178951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_DID_TYPE_KEYPAD 0x00 179951a39d68df598db08dfced8b4707755864a0492Ying Wang 180951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HEADER_AXSET_MASK 0x03 181951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HEADER_RSC 0x04 182951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HEADER_EXD 0x08 183951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HEADER_IOD 0x10 184951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HEADER_16BIT 0x20 185951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HEADER_ABS 0x40 186951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HEADER_2X_AXIS 0x80 187951a39d68df598db08dfced8b4707755864a0492Ying Wang 188951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_IOD_NBUTTON_MASK 0x07 189951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_IOD_PROXIMITY 0x08 190951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_IOD_PROMPT_MASK 0x70 191951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_IOD_PROMPT_SHIFT 4 192951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_IOD_PROMPT 0x80 193951a39d68df598db08dfced8b4707755864a0492Ying Wang 194951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_NUM_AXES_PER_SET(header_packet) ((header_packet) & HIL_IDD_HEADER_AXSET_MASK) 195951a39d68df598db08dfced8b4707755864a0492Ying Wang 196951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_NUM_AXSETS(header_packet) (2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS)) 197951a39d68df598db08dfced8b4707755864a0492Ying Wang 198951a39d68df598db08dfced8b4707755864a0492Ying Wang#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)) 199951a39d68df598db08dfced8b4707755864a0492Ying Wang 200951a39d68df598db08dfced8b4707755864a0492Ying Wang#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))) 201951a39d68df598db08dfced8b4707755864a0492Ying Wang 202951a39d68df598db08dfced8b4707755864a0492Ying Wang#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))) 203951a39d68df598db08dfced8b4707755864a0492Ying Wang 204951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_IOD(header_ptr) (*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1)) 205951a39d68df598db08dfced8b4707755864a0492Ying Wang 206951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HAS_GEN_PROMPT(header_ptr) ((*header_ptr & HIL_IDD_HEADER_IOD) && (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT)) 207951a39d68df598db08dfced8b4707755864a0492Ying Wang 208951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr) ((*header_ptr & HIL_IDD_HEADER_IOD) && (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY)) 209951a39d68df598db08dfced8b4707755864a0492Ying Wang 210951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_IDD_NUM_BUTTONS(header_ptr) ((*header_ptr & HIL_IDD_HEADER_IOD) ? (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0) 211951a39d68df598db08dfced8b4707755864a0492Ying Wang 212951a39d68df598db08dfced8b4707755864a0492Ying Wang#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) 213951a39d68df598db08dfced8b4707755864a0492Ying Wang 214951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_HEADER_WRG 0x03 215951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_HEADER_WRG_TYPE1 0x01 216951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_HEADER_WRG_TYPE2 0x02 217951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_HEADER_RRG 0x04 218951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_HEADER_RNM 0x10 219951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_HEADER_RST 0x20 220951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_HEADER_LOCALE 0x40 221951a39d68df598db08dfced8b4707755864a0492Ying Wang 222951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_EXD_NUM_RRG(header_ptr) ((*header_ptr & HIL_EXD_HEADER_RRG) ? (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0) 223951a39d68df598db08dfced8b4707755864a0492Ying Wang 224951a39d68df598db08dfced8b4707755864a0492Ying Wang#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) 225951a39d68df598db08dfced8b4707755864a0492Ying Wang 226951a39d68df598db08dfced8b4707755864a0492Ying Wang#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) 227951a39d68df598db08dfced8b4707755864a0492Ying Wang 228951a39d68df598db08dfced8b4707755864a0492Ying Wang#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)) 229951a39d68df598db08dfced8b4707755864a0492Ying Wang 230951a39d68df598db08dfced8b4707755864a0492Ying Wang#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)) 231951a39d68df598db08dfced8b4707755864a0492Ying Wang 232951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_LOCALE_MAX 0x1f 233951a39d68df598db08dfced8b4707755864a0492Ying Wang 234951a39d68df598db08dfced8b4707755864a0492Ying Wang#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" 235951a39d68df598db08dfced8b4707755864a0492Ying Wang 236951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_KEYCODES_SET1_TBLSIZE 128 237951a39d68df598db08dfced8b4707755864a0492Ying Wang#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 238951a39d68df598db08dfced8b4707755864a0492Ying Wang 239951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_KEYCODES_SET3_TBLSIZE 128 240951a39d68df598db08dfced8b4707755864a0492Ying Wang#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 241951a39d68df598db08dfced8b4707755864a0492Ying Wang 242951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_NUM_AXES_MASK 0x03 243951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CTS 0x04 244951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_STATUS_PENDING 0x08 245951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_MASK 0x70 246951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_NONE 0x00 247951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_RSVD1 0x10 248951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_ASCII 0x20 249951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_BINARY 0x30 250951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_SET1 0x40 251951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_RSVD2 0x50 252951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_SET2 0x60 253951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_CHARTYPE_SET3 0x70 254951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HIL_POL_AXIS_ALT 0x80 255951a39d68df598db08dfced8b4707755864a0492Ying Wang 256951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif 257