/* usb/driver/hid/usb/hid/keycode.h
 *
 * (c) 2002 Simtec Electronics
 *
 * Ben Dooks
 *
 * HID Keyboard - keyboard keycode table
 * 
 * $Id: keycode.h,v 1.5 2003/08/08 11:17:17 ben Exp $
 *
 * This Library file is part of the Simtec Electronics USB stack development
 *   suite.
 * Specific licence is granted to use this file by third parties for the
 *   development of USB device drivers.
 *
*/

#ifndef __USB_HID_KEYCODE_H
#define __USB_HID_KEYCODE_H "$Id: keycode.h,v 1.5 2003/08/08 11:17:17 ben Exp $"

/* see the HID Usage Tables document,
 * version <>, section 10, page 53 for more details
*/

#define HID_KEYCODE(x)    ((HID_USAGEPAGE_KEYBOARD << 16) | (x))

#define HID_KEYB_KEY_A    HID_KEYCODE(4)
#define HID_KEYB_KEY_B    HID_KEYCODE(5)
#define HID_KEYB_KEY_C    HID_KEYCODE(6)
#define HID_KEYB_KEY_D    HID_KEYCODE(7)
#define HID_KEYB_KEY_E    HID_KEYCODE(8)
#define HID_KEYB_KEY_F    HID_KEYCODE(9)

#define HID_KEYB_KEY_G    HID_KEYCODE(10)
#define HID_KEYB_KEY_H    HID_KEYCODE(11)
#define HID_KEYB_KEY_I    HID_KEYCODE(12)
#define HID_KEYB_KEY_J    HID_KEYCODE(13)
#define HID_KEYB_KEY_K    HID_KEYCODE(14)
#define HID_KEYB_KEY_L    HID_KEYCODE(15)
#define HID_KEYB_KEY_M    HID_KEYCODE(16)
#define HID_KEYB_KEY_N    HID_KEYCODE(17)
#define HID_KEYB_KEY_O    HID_KEYCODE(18)
#define HID_KEYB_KEY_P    HID_KEYCODE(19)

#define HID_KEYB_KEY_Q    HID_KEYCODE(20)
#define HID_KEYB_KEY_R    HID_KEYCODE(21)
#define HID_KEYB_KEY_S    HID_KEYCODE(22)
#define HID_KEYB_KEY_T    HID_KEYCODE(23)
#define HID_KEYB_KEY_U    HID_KEYCODE(24)
#define HID_KEYB_KEY_V    HID_KEYCODE(25)
#define HID_KEYB_KEY_W    HID_KEYCODE(26)
#define HID_KEYB_KEY_X    HID_KEYCODE(27)
#define HID_KEYB_KEY_Y    HID_KEYCODE(28)
#define HID_KEYB_KEY_Z    HID_KEYCODE(29)

#define HID_KEYB_KEY_1    HID_KEYCODE(30)
#define HID_KEYB_KEY_2    HID_KEYCODE(31)
#define HID_KEYB_KEY_3    HID_KEYCODE(32)
#define HID_KEYB_KEY_4    HID_KEYCODE(33)
#define HID_KEYB_KEY_5    HID_KEYCODE(34)
#define HID_KEYB_KEY_6    HID_KEYCODE(35)
#define HID_KEYB_KEY_7    HID_KEYCODE(36)
#define HID_KEYB_KEY_8    HID_KEYCODE(37)
#define HID_KEYB_KEY_9    HID_KEYCODE(38)
#define HID_KEYB_KEY_0    HID_KEYCODE(39)

#define HID_KEYB_KEY_ENT  HID_KEYCODE(40)
#define HID_KEYB_KEY_ESC  HID_KEYCODE(41)
#define HID_KEYB_KEY_DEL  HID_KEYCODE(42)
#define HID_KEYB_KEY_TAB  HID_KEYCODE(43)
#define HID_KEYB_KEY_SPC  HID_KEYCODE(44)
#define HID_KEYB_KEY_DASH HID_KEYCODE(45)
#define HID_KEYB_KEY_EQL  HID_KEYCODE(46)
#define HID_KEYB_KEY_OPSQ HID_KEYCODE(47)
#define HID_KEYB_KEY_CLSQ HID_KEYCODE(48)
#define HID_KEYB_KEY_BSLA HID_KEYCODE(49)      /* backward slash */
#define HID_KEYB_KEY_NONUS_BSLA HID_KEYCODE(100)  /* non-us variant */

#define HID_KEYB_KEY_HASH  HID_KEYCODE(50)
#define HID_KEYB_KEY_SECLN HID_KEYCODE(51)      /* semicolon */
#define HID_KEYB_KEY_TICK  HID_KEYCODE(52)
#define HID_KEYB_KEY_ATILD HID_KEYCODE(53)      /* grave / accent / tilde */
#define HID_KEYB_KEY_COMMA HID_KEYCODE(54)
#define HID_KEYB_KEY_DOT   HID_KEYCODE(55)
#define HID_KEYB_KEY_FSLA  HID_KEYCODE(56)      /* forward slash */
#define HID_KEYB_KEY_CAPS  HID_KEYCODE(57)
#define HID_KEYB_KEY_F1    HID_KEYCODE(58)
#define HID_KEYB_KEY_F2    HID_KEYCODE(59)

#define HID_KEYB_KEY_F3    HID_KEYCODE(60)
#define HID_KEYB_KEY_F4    HID_KEYCODE(61)
#define HID_KEYB_KEY_F5    HID_KEYCODE(62)
#define HID_KEYB_KEY_F6    HID_KEYCODE(63)
#define HID_KEYB_KEY_F7    HID_KEYCODE(64)
#define HID_KEYB_KEY_F8    HID_KEYCODE(65)
#define HID_KEYB_KEY_F9    HID_KEYCODE(66)
#define HID_KEYB_KEY_F10   HID_KEYCODE(67)
#define HID_KEYB_KEY_F11   HID_KEYCODE(68)
#define HID_KEYB_KEY_F12   HID_KEYCODE(69)

#define HID_KEYB_KEY_PSCR  HID_KEYCODE(70)   /* print screen */
#define HID_KEYB_KEY_SLCK  HID_KEYCODE(71)   /* scroll lock */
#define HID_KEYB_KEY_PAUS  HID_KEYCODE(72)   /* pause */
#define HID_KEYB_KEY_INS   HID_KEYCODE(73)
#define HID_KEYB_KEY_HOME  HID_KEYCODE(74)
#define HID_KEYB_KEY_PGUP  HID_KEYCODE(75)
#define HID_KEYB_KEY_DELF  HID_KEYCODE(76)    /* delete forward */
#define HID_KEYB_KEY_END   HID_KEYCODE(77)
#define HID_KEYB_KEY_PGDN  HID_KEYCODE(78)

#define HID_KEYB_KEY_RARW  HID_KEYCODE(79)    /* right arrow */
#define HID_KEYB_KEY_LARW  HID_KEYCODE(80)
#define HID_KEYB_KEY_DARW  HID_KEYCODE(81)
#define HID_KEYB_KEY_UARW  HID_KEYCODE(82)
#define HID_KEYB_KEY_NUML  HID_KEYCODE(83)
#define HID_KEYB_KEY_NUMLK HID_KEYCODE(83)
#define HID_KEYB_KEY_KPSL  HID_KEYCODE(84)  /* keypad slash */
#define HID_KEYB_KEY_KPST  HID_KEYCODE(85)  /* keypad star */
#define HID_KEYB_KEY_KPMI  HID_KEYCODE(86)  /* keypad minus */
#define HID_KEYB_KEY_KPPL  HID_KEYCODE(87)  /* keypad plus */
#define HID_KEYB_KEY_KPEN  HID_KEYCODE(88)  /* keypad enter */
#define HID_KEYB_KEY_KP1   HID_KEYCODE(89)

#define HID_KEYB_KEY_KP2  HID_KEYCODE(90)
#define HID_KEYB_KEY_KP3  HID_KEYCODE(91)
#define HID_KEYB_KEY_KP4  HID_KEYCODE(92)
#define HID_KEYB_KEY_KP5  HID_KEYCODE(93)
#define HID_KEYB_KEY_KP6  HID_KEYCODE(94)
#define HID_KEYB_KEY_KP7  HID_KEYCODE(95)
#define HID_KEYB_KEY_KP8  HID_KEYCODE(96)
#define HID_KEYB_KEY_KP9  HID_KEYCODE(97)
#define HID_KEYB_KEY_KP0  HID_KEYCODE(98)
#define HID_KEYB_KEY_KPDL HID_KEYCODE(99)  /* keypad delete */

#define HID_KEYB_KEY_LCTRL   HID_KEYCODE(224)
#define HID_KEYB_KEY_LSHIFT  HID_KEYCODE(225)
#define HID_KEYB_KEY_LALT    HID_KEYCODE(226)
#define HID_KEYB_KEY_LGUI    HID_KEYCODE(227)
#define HID_KEYB_KEY_RCTRL   HID_KEYCODE(228)
#define HID_KEYB_KEY_RSHIFT  HID_KEYCODE(229)
#define HID_KEYB_KEY_RALT    HID_KEYCODE(230)
#define HID_KEYB_KEY_RGUI    HID_KEYCODE(231)


#endif /* __USB_HID_KEYCODE_H */

