Home | History | Annotate | Download | only in linux
      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