linux/Documentation/input/alps.txt
<<
19.8.14/spaue= .14/forme= .14a 19.8.1 href="../linux+v3o> 9/Documentavalu/input/alps.txt">19.8.14img src="../.stavac/gfx/right.png" alt=">>">194/spaue=194spau class="lxr_search">19.819.8.14input typ v3hidden" nam v3navtarget" > v3">19.8.14input typ v3text" nam v3search" idv3search">19.8.14butt typ v3submit">Search19.8.1Prefs= .14/a>194/spaue=.8.1 14/dive=.8.1 14form acvalu="ajax+*" method="post" onsubmit="return false;">194input typ v3hidden" nam v3ajax_lookup" idv3ajax_lookup" > v3">1.8.1 14/forme=1.8.1 14div class="headingbott m">1 114/a>ALPS Touchpad1Protocol 1 124/a>---------------------- 1 134/a>11 144/a>Introducvalu11 154/a>------------11 164/a>11 174/a>Currently the ALPS touchpad1driver supports four protocol versalus in use by11 184/a>ALPS touchpads, called versalus 1, 2, 3, and 4. Informavalu about the various11 194/a>protocol versalus is contained in the following secvalus.11 ptioa>11 114/a>Detecvalu11 124/a>---------11 134/a>11 144/a>All ALPS touchpads should respond to the "E6 report" command sequence:11 154/a>E8-E6-E6-E6-E9. An ALPS touchpad1should respond with either 00-00-0A or11 164/a>00-00-64 if no butt s are pressed. The bits 0-2 of the first byte will be 1s11 174/a>if some butt s are pressed.11 184/a>11 194/a>If the E6 report is successful, the touchpad1model is identified using the "E7 1 2tioa>report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is11 214/a>mavched against known models in the alps_model_data_array.11 224/a>11 234/a>With protocol versalus 3 and 4, the E7 report model signature is always11 244/a>73-02-64. To differentiate between these versalus, the response from the11 254/a>"Enter Command Mode" sequence must be inspecved as described below.11 264/a>11 274/a>Command Mode11 284/a>------------11 294/a>11 3tioa>Protocol versalus 3 and 4 have a command mode that is used to read and write11 314/a>one-byte device registers in a 16-bit address space. The command sequence11 324/a>EC-EC-EC-E9 places the device in command mode, and the device will respond11 334/a>with 88-07 followed by a third byte. This third byte can be used to determine11 344/a>whether the devices uses the versalu 3 or 4 protocol.11 354/a>11 364/a>To exit command mode, PSMOUSE_CMD_SETSTREAM (EA) is sent to the touchpad.11 374/a>11 384/a>While in command mode, register addresses can be set by first sending a11 394/a>specific command, either EC for v3 devices or F5 for v4 devices. Then the11 4tioa>address is sent one nibble at a time, where each nibble is encoded as a11 414/a>command with n valual data. This enoding differs slightly between the v3 and11 424/a>v4 protocols.11 434/a>11 444/a>Once an address has been set, the addressed register can be read by sending11 454/a>PSMOUSE_CMD_GETINFO (E9). The first two bytes of the response contains the11 46ioa>address of the register being read, and the third contains the > of the11 47ioa>register. Registers are written by writing the > one nibble at a time11 484/a>using the sam encoding used for addresses.11 494/a>11 5tioa>Packet Formav11 514/a>-------------11 524/a>11 534/a>In the following tables, the following notavalu is used.11 544/a>11 554/a> CAPITALS = stick, miniscules = touchpad11 564/a>11 57ioa>?'s can have different meanings on different models, such as wheel rotavalu,11 584/a>extra butt s, stick butt s lu a dualpoint, etc.11 594/a>11 6tioa>PS/2 packet formav11 614/a>------------------11 624/a>11 634/a> byte 0: 0.1 10 YSGN XSGN 1 11 1 1M 1 1R 1 1L11 644/a> byte 1: X71 1X61 1X51 1X41 1X31 1X21 1X1 1 X011 654/a> byte 2: Y71 1Y61 1Y51 1Y41 1Y31 1Y21 1Y1 1 Y011 664/a>11 67ioa>Note that the device never signals lverflow condivalu.11 684/a>11 694/a>ALPS Absolute Mode -1Protocol Veralu 111 704/a>--------------------------------------11 714/a>11 724/a> byte 0: 1.1 10 1 10 1 10 1 11.1 x9.1 x8.1 x7 1 734/a> byte 1: 10 1 x61 1x51 1x41 1x31 1x21 1x1.1 x011 744/a> byte 2: 10 1 1? 1 1? 1 1l 1 1r 1 1? 1fin ges11 754/a> byte 3: 10 1 1? 1 1? 1 1? 1 1? 1 y9.1 y8.1 y7 1 764/a> byte 4: 10 1 y61 1y51 1y41 1y31 1y21 1y1.1 y011 774/a> byte 5: 10 1 z61 1z51 1z41 1z31 1z21 1z1.1 z011 784/a>11 794/a>ALPS Absolute Mode -1Protocol Versalu 211 804/a>---------------------------------------11 814/a>11 824/a> byte 0: 1.1 1? 1 1? 1 1? 1 11.1 1? 1 1? 1 1?11 834/a> byte 1: 10 1 x61 1x51 1x41 1x31 1x21 1x1.1 x011 844/a> byte 2: 10 1x10.1 x9.1 x8.1 x7 1 1? 1fin ges11 854/a> byte 3: 10 1 y9.1 y8.1 y7 1 11 1 1M 1 1R 1 1L11 864/a> byte 4: 10 1 y61 1y51 1y41 1y31 1y21 1y1.1 y011 874/a> byte 5: 10 1 z61 1z51 1z41 1z31 1z21 1z1.1 z011 884/a>11 894/a>Dualpoint device -- interleaved packet formav11 904/a>---------------------------------------------11 914/a>11 924/a> byte 0: 11 1 11.1 10 1 10 1 11 1 11 1 11 1 1111 934/a> byte 1: 1 10 1 x61 1x51 1x41 1x31 1x21 1x1.1 x011 944/a> byte 2: 1 10 1x10.1 x9.1 x8.1 x7 1 10 1fin ges11 954/a> byte 3: 1 0.1 10 YSGN XSGN 1 11 1 11 1 11 1 1111 964/a> byte 4: 1 X71 1X61 1X51 1X41 1X31 1X21 1X1 1 X011 974/a> byte 5: 1 Y71 1Y61 1Y51 1Y41 1Y31 1Y21 1Y1 1 Y011 984/a> byte 6: 1 0.1 y9.1 y8.1 y7 1 11 1 1m 1 1r 1 1l 1 994/a> byte 7: 1 0.1 y61 1y51 1y41 1y31 1y21 1y1.1 y0111004/a> byte 8: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z0111014/a>111024/a>ALPS Absolute Mode -1Protocol Versalu 3111034/a>---------------------------------------111044/a>111054/a>ALPS protocol versalu 3 has three different packet formavs. The first two are11106ioa>associated with touchpad1events, and the third is associatd with trackstick111074/a>events.111084/a>111094/a>The first type is the touchpad1posivalu packet.111ptioa>111114/a> byte 0: 11 1 1?1 1x1.1 x0 1 11 1 11 1 11 1 11111124/a> byte 1: 1 10 1x10.1 x9.1 x8.1 x7 1 x61 1x51 1x4111134/a> byte 2: 1 10 1y10.1 y9.1 y8.1 y7 1 y61 1y51 1y4111144/a> byte 3: 1 0.1 1M 1 1R 1 1L 1 11 1 1m 1 1r 1 1l 11154/a> byte 4: 1 0.1 mt 1x31 1x21 1y31 1y21 1y1.1 y0111164/a> byte 5: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z0111174/a>111184/a>Note that for some devices the trackstick butt s are reported in this packet,111194/a>and lu others it is reported in the trackstick packets.1112tioa>111214/a>The second packet type contains bitmaps representing the x and y axes. In the111224/a>bitmaps a given bit is set if there is a1finger clvering that posivalu on the111234/a>given axis. Thus the bitmap packet can be used for low-resolutalu multi-touch111244/a>data, although1finger tracking is not possible. This packet also encodes the111254/a>number 7f contaca href="Documentavalu/inber 7f contaca href="Documentavalu/inber 722" idv3L122" class="line" nam v3L122">1f0nam v3L12s="l href=)ef="Documentavalu/input/alps.txt#L121" idv31 274/1a>Com1and Mode111124/a> byte 1: 1 10 1x10.1 x9.1 x8.1 x7 1 x61 1x51 1x4#L29" idv13L29" class="line" nam v13L29"128" idv3L113" class="v3L113">11134/a> byte 2e" nam v3L: 1 10 1x10.1 x9.1 x8.1 x7 1 x61 1x51 1x4#ckets.11 3tio1a>Pro129" idv3L114" class="4">11144/a> byte 3116">11164/a> bDocumentavalu/input/alps.txt#L14" idv3L14"L121" clato read and write111124/a> byte 1: 1 10 1x10.1 x9.1 x8.1 x7 1 x61 1x51 1x4e. The co1mmand sequence11 3">1f"linf5: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z0 " class="lline" nam v3L14">1 144/a>f="Do3LPS touchpads should respond to the "E6 rol.111ptioa>111074/v3L2ts.txtdv3L4ocols.11 364/1a>To 1xit cousuall12onl122ppeaL48wress isavchavcasso" nmoreine" nam v3input/alls.11 384/1a>Whi1e in command mode, register addresses can be s1et by fir1st sending a11 994/a4/a> byte 1: 1 10 1x10.1 x9.1 x8.1 x7 1 x61 1x51 1x4lightly b1etween the v3 and11 944/a> byte 2: 1 10 1x10.1 x9.1 x8.1 x7 1 10 1fin ges1<1t#L43" id1v3L43" class="line" nam 1v3L43142" idv3L114" class="4"ne" nam v3L100">11004/a> byte 8: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z04" class=1"line" nam v3L44">1 444/1a>Onc143" idv3L115" class="li" nam v3L93">1 934/a v3L93">1 8: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z04eport"t; command sequence:111174/a>11 3: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z04" class=1se contains the11 934/a934/a934/a934/a934/a9: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z0411034/a>------3: 1 0.1 1M 1 1R 1 1L 1 11 1 1m 1 1r 1 1lf="Docume1ntavalu/input/alps.txt#L149" i14 294/a>111044/a>11 5tio1a>Pac1et Formav11 534/1a>In 15" idv3L93" class="linene" nam v3L112">11124/a> byte 1: 1 10 1x10.1 x9.1 x8.1 x7 1 x61 1x51 1x4 used.111134/a> byte 2: 1 10 1y10.1 y9.1 y8.1 y7 1 y61 1y51 1y45" class=1"line" nam v3L55">1 554/1a> CA15" idv3L95" class="liline" nam v3L114">11144/a> byte 3: 1 0.1 1M 1 1R 1 1L 1 11 1 1m 1 1r 1 1lDocumenta1valu/input/alps.txt#L56"1 idv315" idv3L96" class="line1">1 944/a> by">11004/a> byte 8: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z07" class=1"line" nam v3L57">1 57io1a>?" idv3L97" class="line" nam v3L76">1 "line" nambyte 4: 1 0.1 mt 1x31 1x21 1y31 1y21 1y1.1 y0odels, su1ch as wheel rotavalu,111174/a>111 6tio1a>PS/150" idv3L100" clasL124" iaval (264/a>1arti#L4L124" idv3L12,iut/al3 fulla>11 634/1a> by1e 0: requir44/a>wne"struct31" clplett#L124" idv3L12. alu/inssembledne" na6nput/ond packet type contains bitmaps represenpused.11am v3LE6-E9. An ALPS touchpad1should respond withref="Doc1umentavalu/input/alps.tx1t#L6516PS protocol versalu 3 has three different packhref="Doc1umentavalu/input/alps.tx1t#L661 idv3L66" cl0lass="line1">1 >11134/a> byte 2e" nam v3L: 1 10 1x10.1 x9.1 x8.1 x7 1 x61 1x51 1x46 the firstt byte will be 1s1?¦" idv3L113" class="v3am v3L1123L100">11004/a> byte 8: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z0alu.11 694/1a>ALP168 idv3L96" class="linnam v3L113nam v3L114">11144/a> b: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z0a" class=1lu/input/alps.txt#L70" i1dv3L7169 idv3L97" class="line"line"line"line"line"line"line": 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z0cumentava1lu/input/alps.txt#L71" i1dv3L7170" idv3L117" class="l=3">1 3">1 3">1 3">1 3">1 3">yin: 1 0.1 z61 1z51 1z41 1z31 1z21 1z1.1 z02" class=1"line" nam v3L72">1 724/1a> by1e 0: 1.1 10 1 10 1 10 1 11.1 x9.1 x8.1 x7 1 1fragd re="lia#L124" idv3L12.ouchpads should respond to the "E6 rh the firsumentavalu/input/alps.tx1t#L7717nd Mode11 794/1a>ALP1 Absol7777 v3Ldv3L124laya>pris06" class=.ouchpads should respond to the "E6 rh" class=1alu/input/alps.txt#L80" 1idv3L17t Formav1wbL31" cure="litheine" nam lass=sinpyne" nanam v3Lv3: 1 0.1 1M 1 1R 1 1L 1 11 1 1m 1 1r 1 1l2" class=1"line" nam v3L82">1 824/1a> by1e 0: 7777/input/al>1w1 rspon="li>11ptioa>1wb124" idv3L12s.clasavam /ond packet type contains bitmaps represenhref="Doc1umentavalu/input/alps.tx1t#L8618idv3L7777MTi>11ptioa>" clpnl12ass=pdput/ae" ne" ny="line"STi>11ptioa>=pdputL4ocols.1rond packet type contains bitmaps represenhref="Doc1umentavalu/input/alps.tx1t#L881 idv3L8888wel="Documentavalu/input/alps.txt#L36" idv3L319" class=aow1 rspon="li>11ptioa>11 904So farine"bble at a ntavalu/input/als="lineL45">mentu----L19" idv3L19" class="line" nam v3L19">1 194/t#L91" id1v3L91" class="line" nam 1v3L911>1 914 val orig" claLXR softwisavbidv3L1 idv3L19"http://sourctmapge.net/v3ojects/lx-">LXR " clunity 914,ed in expsi=ss="lnam v3Lef=bid idv3L19"mailto:lx-@l"lxr.no">lx-@l"lxr.no 914. ef="Docmenta1" classubfoo---"> lx-.l"lxr.no kind">rhostam v3L idv3L19"http://www.-L1pill-l"lv3o.no">RL1pill L"lv3o AS 914,ev3ov#L12s="lL"lxrL12. g isine"3L12psiline"ss shot a nsiket 1995. ef="Docum/bodyocm/htmlnt