| 1 |
|
| 2 | |
| 3 | * Finger Sensing Pad PS/2 mouse driver.
|
| 4 | *
|
| 5 | * Copyright (C) 2005-2007 Asia Vital Components Co., Ltd.
|
| 6 | * Copyright (C) 2005-2012 Tai-hwa Liang, Sentelic Corporation.
|
| 7 |
|
| 8 |
|
| 9 | #ifndef __SENTELIC_H
|
| 10 | #define __SENTELIC_H
|
| 11 |
|
| 12 |
|
| 13 | #define FSP_REG_DEVICE_ID 0x00
|
| 14 | #define FSP_REG_VERSION 0x01
|
| 15 | #define FSP_REG_REVISION 0x04
|
| 16 | #define FSP_REG_TMOD_STATUS1 0x0B
|
| 17 | #define FSP_BIT_NO_ROTATION BIT(3)
|
| 18 | #define FSP_REG_PAGE_CTRL 0x0F
|
| 19 |
|
| 20 |
|
| 21 | #define FSP_REG_SYSCTL1 0x10
|
| 22 | #define FSP_BIT_EN_REG_CLK BIT(5)
|
| 23 | #define FSP_REG_TMOD_STATUS 0x20
|
| 24 | #define FSP_REG_OPC_QDOWN 0x31
|
| 25 | #define FSP_BIT_EN_OPC_TAG BIT(7)
|
| 26 | #define FSP_REG_OPTZ_XLO 0x34
|
| 27 | #define FSP_REG_OPTZ_XHI 0x35
|
| 28 | #define FSP_REG_OPTZ_YLO 0x36
|
| 29 | #define FSP_REG_OPTZ_YHI 0x37
|
| 30 | #define FSP_REG_SYSCTL5 0x40
|
| 31 | #define FSP_BIT_90_DEGREE BIT(0)
|
| 32 | #define FSP_BIT_EN_MSID6 BIT(1)
|
| 33 | #define FSP_BIT_EN_MSID7 BIT(2)
|
| 34 | #define FSP_BIT_EN_MSID8 BIT(3)
|
| 35 | #define FSP_BIT_EN_AUTO_MSID8 BIT(5)
|
| 36 | #define FSP_BIT_EN_PKT_G0 BIT(6)
|
| 37 |
|
| 38 | #define FSP_REG_ONPAD_CTL 0x43
|
| 39 | #define FSP_BIT_ONPAD_ENABLE BIT(0)
|
| 40 | #define FSP_BIT_ONPAD_FBBB BIT(1)
|
| 41 | #define FSP_BIT_FIX_VSCR BIT(3)
|
| 42 | #define FSP_BIT_FIX_HSCR BIT(5)
|
| 43 | #define FSP_BIT_DRAG_LOCK BIT(6)
|
| 44 |
|
| 45 | #define FSP_REG_SWC1 (0x90)
|
| 46 | #define FSP_BIT_SWC1_EN_ABS_1F BIT(0)
|
| 47 | #define FSP_BIT_SWC1_EN_GID BIT(1)
|
| 48 | #define FSP_BIT_SWC1_EN_ABS_2F BIT(2)
|
| 49 | #define FSP_BIT_SWC1_EN_FUP_OUT BIT(3)
|
| 50 | #define FSP_BIT_SWC1_EN_ABS_CON BIT(4)
|
| 51 | #define FSP_BIT_SWC1_GST_GRP0 BIT(5)
|
| 52 | #define FSP_BIT_SWC1_GST_GRP1 BIT(6)
|
| 53 | #define FSP_BIT_SWC1_BX_COMPAT BIT(7)
|
| 54 |
|
| 55 | #define FSP_PAGE_0B (0x0b)
|
| 56 | #define FSP_PAGE_82 (0x82)
|
| 57 | #define FSP_PAGE_DEFAULT FSP_PAGE_82
|
| 58 |
|
| 59 | #define FSP_REG_SN0 (0x40)
|
| 60 | #define FSP_REG_SN1 (0x41)
|
| 61 | #define FSP_REG_SN2 (0x42)
|
| 62 |
|
| 63 |
|
| 64 |
|
| 65 |
|
| 66 | #define FSP_PKT_TYPE_NORMAL (0x00)
|
| 67 | #define FSP_PKT_TYPE_ABS (0x01)
|
| 68 | #define FSP_PKT_TYPE_NOTIFY (0x02)
|
| 69 | #define FSP_PKT_TYPE_NORMAL_OPC (0x03)
|
| 70 | #define FSP_PKT_TYPE_SHIFT (6)
|
| 71 |
|
| 72 |
|
| 73 | #define FSP_PB0_LBTN BIT(0)
|
| 74 | #define FSP_PB0_RBTN BIT(1)
|
| 75 | #define FSP_PB0_MBTN BIT(2)
|
| 76 | #define FSP_PB0_MFMC_FGR2 FSP_PB0_MBTN
|
| 77 | #define FSP_PB0_MUST_SET BIT(3)
|
| 78 | #define FSP_PB0_PHY_BTN BIT(4)
|
| 79 | #define FSP_PB0_MFMC BIT(5)
|
| 80 |
|
| 81 |
|
| 82 | #define FSP_VER_STL3888_A4 (0xC1)
|
| 83 | #define FSP_VER_STL3888_B0 (0xD0)
|
| 84 | #define FSP_VER_STL3888_B1 (0xD1)
|
| 85 | #define FSP_VER_STL3888_B2 (0xD2)
|
| 86 | #define FSP_VER_STL3888_C0 (0xE0)
|
| 87 | #define FSP_VER_STL3888_C1 (0xE1)
|
| 88 | #define FSP_VER_STL3888_D0 (0xE2)
|
| 89 | #define FSP_VER_STL3888_D1 (0xE3)
|
| 90 | #define FSP_VER_STL3888_E0 (0xE4)
|
| 91 |
|
| 92 | #ifdef __KERNEL__
|
| 93 |
|
| 94 | struct fsp_data {
|
| 95 | unsigned char ver;
|
| 96 | unsigned char rev;
|
| 97 | unsigned int buttons;
|
| 98 | unsigned int flags;
|
| 99 | #define FSPDRV_FLAG_EN_OPC (0x001)
|
| 100 |
|
| 101 | bool vscroll;
|
| 102 | bool hscroll;
|
| 103 |
|
| 104 | unsigned char last_reg;
|
| 105 | unsigned char last_val;
|
| 106 | unsigned int last_mt_fgr;
|
| 107 | };
|
| 108 |
|
| 109 | extern int fsp_detect(struct psmouse *psmouse, bool set_properties);
|
| 110 | extern int fsp_init(struct psmouse *psmouse);
|
| 111 |
|
| 112 | #endif
|
| 113 |
|
| 114 | #endif
|