Files
Bahadir Balban 6fa4884a5a Changes since April
Clean up of build directories.
Simplifications to capability model.
2010-06-01 15:08:13 +03:00

60 lines
1.7 KiB
C
Executable File

#ifndef __PL050_KMI_H__
#define __PL050_KMI_H__
/* Register offsets */
#define PL050_KMICR 0x00
#define PL050_KMISTAT 0x04
#define PL050_KMIDATA 0x08
#define PL050_KMICLKDIV 0x0C
#define PL050_KMIIR 0x10
/* Bit definitions for KMI control register */
#define KMI_TYPE (1 << 0x5)
#define KMI_RXINTR (1 << 0x4)
#define KMI_TXINTR (1 << 0x3)
#define KMI_EN (1 << 0x2)
#define KMI_FD (1 << 0x1)
#define KMI_FC (1 << 0x0)
/* KMI generic defines */
#define KMI_DATA_RESET 0xFF
#define KMI_DATA_RTR 0xAA
/* Keyboard special defines */
#define KYBD_DATA_RESET KMI_DATA_RESET // Keyboard reset
#define KYBD_DATA_RTR KMI_DATA_RTR // Keyboard response to reset
#define KYBD_DATA_KEYUP 0xF0 // Key up control code
#define KYBD_DATA_SHIFTL 18 // Shift key left
#define KYBD_DATA_SHIFTR 89 // Shift key right
/* Bit definitions for KMI STAT register */
#define KMI_TXEMPTY (1 << 0x6)
#define KMI_TXBUSY (1 << 0x5)
#define KMI_RXFULL (1 << 0x4)
#define KMI_RXBUSY (1 << 0x3)
#define KMI_RXPARITY (1 << 0x2)
#define KMI_CLKIN (1 << 0x1)
#define KMI_DATAIN (1 << 0x0)
/* Mouse special defines */
#define MOUSE_DATA_RESET KMI_DATA_RESET // Mouse reset
#define MOUSE_DATA_RTR KMI_DATA_RTR // Mouse response to reset
#define MOUSE_DATA_ACK 0xFA
#define MOUSE_DATA_ENABLE 0xF4 // Mouse enable
/* Common functions */
void kmi_rx_irq_enable(unsigned long base);
int kmi_data_read(unsigned long base);
/* Keyboard specific calls */
char kmi_keyboard_read(unsigned long base, struct keyboard_state *state);
void kmi_keyboard_init(unsigned long base, unsigned int div);
/* Mouse specific calls */
void kmi_mouse_enable(unsigned long base);
void kmi_mouse_init(unsigned long base, unsigned int div);
#endif /* __PL050_KMI_H__ */