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

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [libdev/] [kmi/] [pl050/] [kmi.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
 
2
#ifndef __PL050_KMI_H__
3
#define __PL050_KMI_H__
4
 
5
/* Register offsets */
6
#define PL050_KMICR             0x00
7
#define PL050_KMISTAT           0x04
8
#define PL050_KMIDATA           0x08
9
#define PL050_KMICLKDIV         0x0C
10
#define PL050_KMIIR             0x10
11
 
12
/* Bit definitions for KMI control register */
13
#define KMI_TYPE                (1 << 0x5)
14
#define KMI_RXINTR              (1 << 0x4)
15
#define KMI_TXINTR              (1 << 0x3)
16
#define KMI_EN                  (1 << 0x2)
17
#define KMI_FD                  (1 << 0x1)
18
#define KMI_FC                  (1 << 0x0)
19
 
20
/* KMI generic defines */
21
#define KMI_DATA_RESET     0xFF
22
#define KMI_DATA_RTR       0xAA
23
 
24
/* Keyboard special defines */
25
#define KYBD_DATA_RESET     KMI_DATA_RESET      // Keyboard reset
26
#define KYBD_DATA_RTR       KMI_DATA_RTR        // Keyboard response to reset
27
 
28
#define KYBD_DATA_KEYUP         0xF0    // Key up control code
29
#define KYBD_DATA_SHIFTL        18      // Shift key left
30
#define KYBD_DATA_SHIFTR        89      // Shift key right
31
 
32
/* Bit definitions for KMI STAT register */
33
#define KMI_TXEMPTY     (1 << 0x6)
34
#define KMI_TXBUSY      (1 << 0x5)
35
#define KMI_RXFULL      (1 << 0x4)
36
#define KMI_RXBUSY      (1 << 0x3)
37
#define KMI_RXPARITY    (1 << 0x2)
38
#define KMI_CLKIN       (1 << 0x1)
39
#define KMI_DATAIN      (1 << 0x0)
40
 
41
/* Mouse special defines */
42
#define MOUSE_DATA_RESET        KMI_DATA_RESET  // Mouse reset
43
#define MOUSE_DATA_RTR          KMI_DATA_RTR    // Mouse response to reset
44
#define MOUSE_DATA_ACK          0xFA
45
#define MOUSE_DATA_ENABLE       0xF4            // Mouse enable
46
 
47
/* Common functions */
48
void kmi_rx_irq_enable(unsigned long base);
49
int kmi_data_read(unsigned long base);
50
 
51
/* Keyboard specific calls */
52
char kmi_keyboard_read(unsigned long base, struct keyboard_state *state);
53
void kmi_keyboard_init(unsigned long base, unsigned int div);
54
 
55
/* Mouse specific calls */
56
void kmi_mouse_enable(unsigned long base);
57
void kmi_mouse_init(unsigned long base, unsigned int div);
58
 
59
#endif /* __PL050_KMI_H__ */

powered by: WebSVN 2.1.0

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