OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [tc/] [lk201.h] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *      Commands to the keyboard processor
3
 */
4
 
5
#define LK_PARAM                0x80    /* start/end parameter list */
6
 
7
#define LK_CMD_RESUME           0x8b    /* resume transmission to the host */
8
#define LK_CMD_INHIBIT          0x89    /* stop transmission to the host */
9
#define LK_CMD_LEDS_ON          0x13    /* light LEDs */
10
                                        /* 1st param: led bitmask */
11
#define LK_CMD_LEDS_OFF         0x11    /* turn off LEDs */
12
                                        /* 1st param: led bitmask */
13
#define LK_CMD_DIS_KEYCLK       0x99    /* disable the keyclick */
14
#define LK_CMD_ENB_KEYCLK       0x1b    /* enable the keyclick */
15
                                        /* 1st param: volume */
16
#define LK_CMD_DIS_CTLCLK       0xb9    /* disable the Ctrl keyclick */
17
#define LK_CMD_ENB_CTLCLK       0xbb    /* enable the Ctrl keyclick */
18
#define LK_CMD_SOUND_CLK        0x9f    /* emit a keyclick */
19
#define LK_CMD_DIS_BELL         0xa1    /* disable the bell */
20
#define LK_CMD_ENB_BELL         0x23    /* enable the bell */
21
                                        /* 1st param: volume */
22
#define LK_CMD_BELL             0xa7    /* emit a bell */
23
#define LK_CMD_TMP_NORPT        0xd1    /* disable typematic */
24
                                        /* for the currently pressed key */
25
#define LK_CMD_ENB_RPT          0xe3    /* enable typematic */
26
                                        /* for RPT_DOWN groups */
27
#define LK_CMD_DIS_RPT          0xe1    /* disable typematic */
28
                                        /* for RPT_DOWN groups */
29
#define LK_CMD_RPT_TO_DOWN      0xd9    /* set RPT_DOWN groups to DOWN */
30
#define LK_CMD_REQ_ID           0xab    /* request the keyboard ID */
31
#define LK_CMD_POWER_UP         0xfd    /* init power-up sequence */
32
#define LK_CMD_TEST_MODE        0xcb    /* enter the factory test mode */
33
#define LK_CMD_TEST_EXIT        0x80    /* exit the factory test mode */
34
#define LK_CMD_SET_DEFAULTS     0xd3    /* set power-up defaults */
35
 
36
#define LK_CMD_MODE(m,div)      (LK_PARAM|(((div)&0xf)<<3)|(((m)&0x3)<<1))
37
                                        /* select the repeat mode */
38
                                        /* for the selected key group */
39
#define LK_CMD_MODE_AR(m,div)   ((((div)&0xf)<<3)|(((m)&0x3)<<1))
40
                                        /* select the repeat mode */
41
                                        /* and the repeat register */
42
                                        /* for the selected key group */
43
                                        /* 1st param: register number */
44
#define LK_CMD_RPT_RATE(r)      (0x78|(((r)&0x3)<<1))
45
                                        /* set the delay and repeat rate */
46
                                        /* for the selected repeat register */
47
                                        /* 1st param: initial delay */
48
                                        /* 2nd param: repeat rate */
49
 
50
/* there are 4 leds, represent them in the low 4 bits of a byte */
51
#define LK_PARAM_LED_MASK(ledbmap)      (LK_PARAM|((ledbmap)&0xf))
52
#define LK_LED_WAIT             0x1     /* Wait LED */
53
#define LK_LED_COMP             0x2     /* Compose LED */
54
#define LK_LED_LOCK             0x4     /* Lock LED */
55
#define LK_LED_HOLD             0x8     /* Hold Screen LED */
56
 
57
/* max volume is 0, lowest is 0x7 */
58
#define LK_PARAM_VOLUME(v)              (LK_PARAM|((v)&0x7))
59
 
60
/* mode set command details, div is a key group number */
61
#define LK_MODE_DOWN            0x0     /* make only */
62
#define LK_MODE_RPT_DOWN        0x1     /* make and typematic */
63
#define LK_MODE_DOWN_UP         0x3     /* make and release */
64
 
65
/* there are 4 repeat registers */
66
#define LK_PARAM_AR(r)          (LK_PARAM|((v)&0x3))
67
 
68
/*
69
 * Mappings between key groups and keycodes are as follows:
70
 *
71
 *  1: 0xbf - 0xff -- alphanumeric,
72
 *  2: 0x91 - 0xa5 -- numeric keypad,
73
 *  3: 0xbc        -- Backspace,
74
 *  4: 0xbd - 0xbe -- Tab, Return,
75
 *  5: 0xb0 - 0xb2 -- Lock, Compose Character,
76
 *  6: 0xad - 0xaf -- Ctrl, Shift,
77
 *  7: 0xa6 - 0xa8 -- Left Arrow, Right Arrow,
78
 *  8: 0xa9 - 0xac -- Up Arrow, Down Arrow, Right Shift,
79
 *  9: 0x88 - 0x90 -- editor keypad,
80
 * 10: 0x56 - 0x62 -- F1 - F5,
81
 * 11: 0x63 - 0x6e -- F6 - F10,
82
 * 12: 0x6f - 0x7a -- F11 - F14,
83
 * 13: 0x7b - 0x7d -- Help, Do,
84
 * 14: 0x7e - 0x87 -- F17 - F20.
85
 *
86
 * Notes:
87
 * 1. Codes in the 0x00 - 0x40 range are reserved.
88
 * 2. The assignment of the 0x41 - 0x55 range is undiscovered, probably 10.
89
 */
90
 
91
/* delay is 5 - 630 ms; 0x00 and 0x7f are reserved */
92
#define LK_PARAM_DELAY(t)       ((t)&0x7f)
93
 
94
/* rate is 12 - 127 Hz; 0x00 - 0x0b and 0x7d (power-up!) are reserved */
95
#define LK_PARAM_RATE(r)        (LK_PARAM|((r)&0x7f))
96
 
97
#define LK_SHIFT 1<<0
98
#define LK_CTRL 1<<1
99
#define LK_LOCK 1<<2
100
#define LK_COMP 1<<3
101
 
102
#define LK_KEY_SHIFT            0xae
103
#define LK_KEY_CTRL             0xaf
104
#define LK_KEY_LOCK             0xb0
105
#define LK_KEY_COMP             0xb1
106
 
107
#define LK_KEY_RELEASE          0xb3    /* all keys released */
108
#define LK_KEY_REPEAT           0xb4    /* repeat the last key */
109
 
110
/* status responses */
111
#define LK_STAT_RESUME_ERR      0xb5    /* keystrokes lost while inhibited */
112
#define LK_STAT_ERROR           0xb6    /* an invalid command received */
113
#define LK_STAT_INHIBIT_ACK     0xb7    /* transmission inhibited */
114
#define LK_STAT_TEST_ACK        0xb8    /* the factory test mode entered */
115
#define LK_STAT_MODE_KEYDOWN    0xb9    /* a key is down on a change */
116
                                        /* to the DOWN_UP mode; */
117
                                        /* the keycode follows */
118
#define LK_STAT_MODE_ACK        0xba    /* the mode command succeeded */
119
 
120
#define LK_STAT_PWRUP_ID        0x01    /* the power-up response start mark */
121
#define LK_STAT_PWRUP_OK        0x00    /* the power-up self test OK */
122
#define LK_STAT_PWRUP_KDOWN     0x3d    /* a key was down during the test */
123
#define LK_STAT_PWRUP_ERROR     0x3e    /* keyboard self test failure */
124
 
125
extern unsigned char scancodeRemap[256];

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.