diff options
| -rw-r--r-- | Documentation/input/alps.txt | 68 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf527/boards/ad7160eval.c | 15 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf527/boards/ezkit.c | 15 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf548/boards/ezkit.c | 7 | ||||
| -rw-r--r-- | arch/blackfin/mach-bf609/boards/ezkit.c | 7 | ||||
| -rw-r--r-- | drivers/input/joystick/adi.c | 3 | ||||
| -rw-r--r-- | drivers/input/keyboard/pxa27x_keypad.c | 4 | ||||
| -rw-r--r-- | drivers/input/misc/bfin_rotary.c | 208 | ||||
| -rw-r--r-- | drivers/input/misc/soc_button_array.c | 2 | ||||
| -rw-r--r-- | drivers/input/mouse/alps.c | 516 | ||||
| -rw-r--r-- | drivers/input/mouse/alps.h | 65 | ||||
| -rw-r--r-- | drivers/input/mouse/cypress_ps2.c | 5 | ||||
| -rw-r--r-- | drivers/input/mouse/cypress_ps2.h | 5 | ||||
| -rw-r--r-- | drivers/input/mouse/focaltech.c | 10 | ||||
| -rw-r--r-- | drivers/input/mouse/focaltech.h | 1 | ||||
| -rw-r--r-- | drivers/input/mouse/psmouse-base.c | 6 | ||||
| -rw-r--r-- | drivers/input/mouse/synaptics.c | 10 | ||||
| -rw-r--r-- | drivers/input/mouse/synaptics.h | 1 | ||||
| -rw-r--r-- | include/linux/platform_data/bfin_rotary.h (renamed from arch/blackfin/include/asm/bfin_rotary.h) | 1 |
19 files changed, 577 insertions, 372 deletions
diff --git a/Documentation/input/alps.txt b/Documentation/input/alps.txt index 90bca6f988e1..a63e5e013a8c 100644 --- a/Documentation/input/alps.txt +++ b/Documentation/input/alps.txt | |||
| @@ -3,8 +3,8 @@ ALPS Touchpad Protocol | |||
| 3 | 3 | ||
| 4 | Introduction | 4 | Introduction |
| 5 | ------------ | 5 | ------------ |
| 6 | Currently the ALPS touchpad driver supports five protocol versions in use by | 6 | Currently the ALPS touchpad driver supports seven protocol versions in use by |
| 7 | ALPS touchpads, called versions 1, 2, 3, 4 and 5. | 7 | ALPS touchpads, called versions 1, 2, 3, 4, 5, 6 and 7. |
| 8 | 8 | ||
| 9 | Since roughly mid-2010 several new ALPS touchpads have been released and | 9 | Since roughly mid-2010 several new ALPS touchpads have been released and |
| 10 | integrated into a variety of laptops and netbooks. These new touchpads | 10 | integrated into a variety of laptops and netbooks. These new touchpads |
| @@ -240,3 +240,67 @@ For mt, the format is: | |||
| 240 | byte 3: 0 x23 x22 x21 x20 x19 x18 x17 | 240 | byte 3: 0 x23 x22 x21 x20 x19 x18 x17 |
| 241 | byte 4: 0 x9 x8 x7 x6 x5 x4 x3 | 241 | byte 4: 0 x9 x8 x7 x6 x5 x4 x3 |
| 242 | byte 5: 0 x16 x15 x14 x13 x12 x11 x10 | 242 | byte 5: 0 x16 x15 x14 x13 x12 x11 x10 |
| 243 | |||
| 244 | ALPS Absolute Mode - Protocol Version 6 | ||
| 245 | --------------------------------------- | ||
| 246 | |||
| 247 | For trackstick packet, the format is: | ||
| 248 | |||
| 249 | byte 0: 1 1 1 1 1 1 1 1 | ||
| 250 | byte 1: 0 X6 X5 X4 X3 X2 X1 X0 | ||
| 251 | byte 2: 0 Y6 Y5 Y4 Y3 Y2 Y1 Y0 | ||
| 252 | byte 3: ? Y7 X7 ? ? M R L | ||
| 253 | byte 4: Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 | ||
| 254 | byte 5: 0 1 1 1 1 1 1 1 | ||
| 255 | |||
| 256 | For touchpad packet, the format is: | ||
| 257 | |||
| 258 | byte 0: 1 1 1 1 1 1 1 1 | ||
| 259 | byte 1: 0 0 0 0 x3 x2 x1 x0 | ||
| 260 | byte 2: 0 0 0 0 y3 y2 y1 y0 | ||
| 261 | byte 3: ? x7 x6 x5 x4 ? r l | ||
| 262 | byte 4: ? y7 y6 y5 y4 ? ? ? | ||
| 263 | byte 5: z7 z6 z5 z4 z3 z2 z1 z0 | ||
| 264 | |||
| 265 | (v6 touchpad does not have middle button) | ||
| 266 | |||
| 267 | ALPS Absolute Mode - Protocol Version 7 | ||
| 268 | --------------------------------------- | ||
| 269 | |||
| 270 | For trackstick packet, the format is: | ||
| 271 | |||
| 272 | byte 0: 0 1 0 0 1 0 0 0 | ||
| 273 | byte 1: 1 1 * * 1 M R L | ||
| 274 | byte 2: X7 1 X5 X4 X3 X2 X1 X0 | ||
| 275 | byte 3: Z6 1 Y6 X6 1 Y2 Y1 Y0 | ||
| 276 | byte 4: Y7 0 Y5 Y4 Y3 1 1 0 | ||
| 277 | byte 5: T&P 0 Z5 Z4 Z3 Z2 Z1 Z0 | ||
| 278 | |||
| 279 | For touchpad packet, the format is: | ||
| 280 | |||
| 281 | packet-fmt b7 b6 b5 b4 b3 b2 b1 b0 | ||
| 282 | byte 0: TWO & MULTI L 1 R M 1 Y0-2 Y0-1 Y0-0 | ||
| 283 | byte 0: NEW L 1 X1-5 1 1 Y0-2 Y0-1 Y0-0 | ||
| 284 | byte 1: Y0-10 Y0-9 Y0-8 Y0-7 Y0-6 Y0-5 Y0-4 Y0-3 | ||
| 285 | byte 2: X0-11 1 X0-10 X0-9 X0-8 X0-7 X0-6 X0-5 | ||
| 286 | byte 3: X1-11 1 X0-4 X0-3 1 X0-2 X0-1 X0-0 | ||
| 287 | byte 4: TWO X1-10 TWO X1-9 X1-8 X1-7 X1-6 X1-5 X1-4 | ||
| 288 | byte 4: MULTI X1-10 TWO X1-9 X1-8 X1-7 X1-6 Y1-5 1 | ||
| 289 | byte 4: NEW X1-10 TWO X1-9 X1-8 X1-7 X1-6 0 0 | ||
| 290 | byte 5: TWO & NEW Y1-10 0 Y1-9 Y1-8 Y1-7 Y1-6 Y1-5 Y1-4 | ||
| 291 | byte 5: MULTI Y1-10 0 Y1-9 Y1-8 Y1-7 Y1-6 F-1 F-0 | ||
| 292 | |||
| 293 | L: Left button | ||
| 294 | R / M: Non-clickpads: Right / Middle button | ||
| 295 | Clickpads: When > 2 fingers are down, and some fingers | ||
| 296 | are in the button area, then the 2 coordinates reported | ||
| 297 | are for fingers outside the button area and these report | ||
| 298 | extra fingers being present in the right / left button | ||
| 299 | area. Note these fingers are not added to the F field! | ||
| 300 | so if a TWO packet is received and R = 1 then there are | ||
| 301 | 3 fingers down, etc. | ||
| 302 | TWO: 1: Two touches present, byte 0/4/5 are in TWO fmt | ||
| 303 | 0: If byte 4 bit 0 is 1, then byte 0/4/5 are in MULTI fmt | ||
| 304 | otherwise byte 0 bit 4 must be set and byte 0/4/5 are | ||
| 305 | in NEW fmt | ||
| 306 | F: Number of fingers - 3, 0 means 3 fingers, 1 means 4 ... | ||
diff --git a/arch/blackfin/mach-bf527/boards/ad7160eval.c b/arch/blackfin/mach-bf527/boards/ad7160eval.c index 9501bd8d9cd1..68f2a8a806ea 100644 --- a/arch/blackfin/mach-bf527/boards/ad7160eval.c +++ b/arch/blackfin/mach-bf527/boards/ad7160eval.c | |||
| @@ -666,7 +666,14 @@ static struct platform_device bfin_sport1_uart_device = { | |||
| 666 | #endif | 666 | #endif |
| 667 | 667 | ||
| 668 | #if IS_ENABLED(CONFIG_INPUT_BFIN_ROTARY) | 668 | #if IS_ENABLED(CONFIG_INPUT_BFIN_ROTARY) |
| 669 | #include <asm/bfin_rotary.h> | 669 | #include <linux/platform_data/bfin_rotary.h> |
| 670 | |||
| 671 | static const u16 per_cnt[] = { | ||
| 672 | P_CNT_CUD, | ||
| 673 | P_CNT_CDG, | ||
| 674 | P_CNT_CZM, | ||
| 675 | 0 | ||
| 676 | }; | ||
| 670 | 677 | ||
| 671 | static struct bfin_rotary_platform_data bfin_rotary_data = { | 678 | static struct bfin_rotary_platform_data bfin_rotary_data = { |
| 672 | /*.rotary_up_key = KEY_UP,*/ | 679 | /*.rotary_up_key = KEY_UP,*/ |
| @@ -676,10 +683,16 @@ static struct bfin_rotary_platform_data bfin_rotary_data = { | |||
| 676 | .debounce = 10, /* 0..17 */ | 683 | .debounce = 10, /* 0..17 */ |
| 677 | .mode = ROT_QUAD_ENC | ROT_DEBE, | 684 | .mode = ROT_QUAD_ENC | ROT_DEBE, |
| 678 | .pm_wakeup = 1, | 685 | .pm_wakeup = 1, |
| 686 | .pin_list = per_cnt, | ||
| 679 | }; | 687 | }; |
| 680 | 688 | ||
| 681 | static struct resource bfin_rotary_resources[] = { | 689 | static struct resource bfin_rotary_resources[] = { |
| 682 | { | 690 | { |
| 691 | .start = CNT_CONFIG, | ||
| 692 | .end = CNT_CONFIG + 0xff, | ||
| 693 | .flags = IORESOURCE_MEM, | ||
| 694 | }, | ||
| 695 | { | ||
| 683 | .start = IRQ_CNT, | 696 | .start = IRQ_CNT, |
| 684 | .end = IRQ_CNT, | 697 | .end = IRQ_CNT, |
| 685 | .flags = IORESOURCE_IRQ, | 698 | .flags = IORESOURCE_IRQ, |
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c index d64f565dc2a0..d4219e8e5ab8 100644 --- a/arch/blackfin/mach-bf527/boards/ezkit.c +++ b/arch/blackfin/mach-bf527/boards/ezkit.c | |||
| @@ -1092,7 +1092,14 @@ static struct platform_device bfin_device_gpiokeys = { | |||
| 1092 | #endif | 1092 | #endif |
| 1093 | 1093 | ||
| 1094 | #if IS_ENABLED(CONFIG_INPUT_BFIN_ROTARY) | 1094 | #if IS_ENABLED(CONFIG_INPUT_BFIN_ROTARY) |
| 1095 | #include <asm/bfin_rotary.h> | 1095 | #include <linux/platform_data/bfin_rotary.h> |
| 1096 | |||
| 1097 | static const u16 per_cnt[] = { | ||
| 1098 | P_CNT_CUD, | ||
| 1099 | P_CNT_CDG, | ||
| 1100 | P_CNT_CZM, | ||
| 1101 | 0 | ||
| 1102 | }; | ||
| 1096 | 1103 | ||
| 1097 | static struct bfin_rotary_platform_data bfin_rotary_data = { | 1104 | static struct bfin_rotary_platform_data bfin_rotary_data = { |
| 1098 | /*.rotary_up_key = KEY_UP,*/ | 1105 | /*.rotary_up_key = KEY_UP,*/ |
| @@ -1102,10 +1109,16 @@ static struct bfin_rotary_platform_data bfin_rotary_data = { | |||
| 1102 | .debounce = 10, /* 0..17 */ | 1109 | .debounce = 10, /* 0..17 */ |
| 1103 | .mode = ROT_QUAD_ENC | ROT_DEBE, | 1110 | .mode = ROT_QUAD_ENC | ROT_DEBE, |
| 1104 | .pm_wakeup = 1, | 1111 | .pm_wakeup = 1, |
| 1112 | .pin_list = per_cnt, | ||
| 1105 | }; | 1113 | }; |
| 1106 | 1114 | ||
| 1107 | static struct resource bfin_rotary_resources[] = { | 1115 | static struct resource bfin_rotary_resources[] = { |
| 1108 | { | 1116 | { |
| 1117 | .start = CNT_CONFIG, | ||
| 1118 | .end = CNT_CONFIG + 0xff, | ||
| 1119 | .flags = IORESOURCE_MEM, | ||
| 1120 | }, | ||
| 1121 | { | ||
| 1109 | .start = IRQ_CNT, | 1122 | .start = IRQ_CNT, |
| 1110 | .end = IRQ_CNT, | 1123 | .end = IRQ_CNT, |
| 1111 | .flags = IORESOURCE_IRQ, | 1124 | .flags = IORESOURCE_IRQ, |
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index 1fe7ff286619..4204b9842532 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
| @@ -159,7 +159,7 @@ static struct platform_device bf54x_kpad_device = { | |||
| 159 | #endif | 159 | #endif |
| 160 | 160 | ||
| 161 | #if IS_ENABLED(CONFIG_INPUT_BFIN_ROTARY) | 161 | #if IS_ENABLED(CONFIG_INPUT_BFIN_ROTARY) |
| 162 | #include <asm/bfin_rotary.h> | 162 | #include <linux/platform_data/bfin_rotary.h> |
| 163 | 163 | ||
