12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /*
- *
- * $Id: s3c-keypad.h,v 1.5 2008/05/23 06:22:53 dark0351 Exp $
- */
- #ifndef _S3C_KEYPAD_H_
- #define _S3C_KEYPAD_H_
- static void __iomem *key_base;
- #if defined(CONFIG_CPU_S3C6400) || defined (CONFIG_CPU_S3C6410)
- #define KEYPAD_COLUMNS 8
- #define KEYPAD_ROWS 8
- #define MAX_KEYPAD_NR 64 /* 8*8 */
- #define MAX_KEYMASK_NR 32
- int keypad_keycode[] = {
- 1, 2, KEY_1, KEY_Q, KEY_A, 6, 7, KEY_LEFT,
- 9, 10, KEY_2, KEY_W, KEY_S, KEY_Z, KEY_RIGHT, 16,
- 17, 18, KEY_3, KEY_E, KEY_D, KEY_X, 23, KEY_UP,
- 25, 26, KEY_4, KEY_R, KEY_F, KEY_C, 31, 32,
- 33, KEY_O, KEY_5, KEY_T, KEY_G, KEY_V, KEY_DOWN, KEY_BACKSPACE,
- KEY_P, KEY_0, KEY_6, KEY_Y, KEY_H, KEY_SPACE, 47, 48,
- KEY_M, KEY_L, KEY_7, KEY_U, KEY_J, KEY_N, 55, KEY_ENTER,
- KEY_LEFTSHIFT, KEY_9, KEY_8, KEY_I, KEY_K, KEY_B, 63, KEY_COMMA
- };
- #define KEYPAD_DELAY (50)
- #define KEYPAD_ROW_GPIOCON S3C_GPK1CON
- #define KEYPAD_ROW_GPIOPUD S3C_GPKPU
- #define KEYPAD_COL_GPIOCON S3C_GPL0CON
- #define KEYPAD_COL_GPIOPUD S3C_GPLPU
- #define KEYPAD_ROW_GPIO_SET \
- ((readl(KEYPAD_ROW_GPIOCON) & ~(0xfffffff)) | 0x33333333)
-
- #define KEYPAD_COL_GPIO_SET \
- ((readl(KEYPAD_COL_GPIOCON) & ~(0xfffffff)) | 0x33333333)
- #define KEYPAD_ROW_GPIOPUD_DIS (readl(KEYPAD_ROW_GPIOPUD) & ~(0xffff<<16))
- #define KEYPAD_COL_GPIOPUD_DIS (readl(KEYPAD_COL_GPIOPUD) & ~0xffff)
- #define KEYIFCOL_CLEAR (readl(key_base+S3C_KEYIFCOL) & ~0xffff)
- #define KEYIFCON_CLEAR (readl(key_base+S3C_KEYIFCON) & ~0x1f)
- #define KEYIFFC_DIV (readl(key_base+S3C_KEYIFFC) | 0x1)
- #else
- #error "Not supported S3C Configuration!!"
- #endif
- struct s3c_keypad {
- struct input_dev *dev;
- int nr_rows;
- int no_cols;
- int total_keys;
- int keycodes[MAX_KEYPAD_NR];
- };
- #endif /* _S3C_KEYIF_H_ */
|