lkml.org 
[lkml]   [2011]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/7] Input: ALPS - Move protocol information to Documentation
    Date
    In preparation for new protocol support, move the protocol
    information currently documented in alps.c to
    Documentation/input/alps.txt, where it can be expanded without
    cluttering up the driver.

    Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
    ---
    Documentation/input/alps.txt | 75 ++++++++++++++++++++++++++++++++++++++++++
    drivers/input/mouse/alps.c | 37 +--------------------
    2 files changed, 76 insertions(+), 36 deletions(-)
    create mode 100644 Documentation/input/alps.txt

    diff --git a/Documentation/input/alps.txt b/Documentation/input/alps.txt
    new file mode 100644
    index 0000000..ab5478f
    --- /dev/null
    +++ b/Documentation/input/alps.txt
    @@ -0,0 +1,75 @@
    +ALPS Touchpad Protocol
    +----------------------
    +
    +Introduction
    +------------
    +
    +Currently the ALPS touchpad driver supports two protocol versions in use by
    +ALPS touchpads, the "old" and "new" protocol versions. Fundamentally these
    +differ only in the format of their event packets (in reality many features may
    +be found on new protocol devices that aren't found on the old protocol
    +devices, but these are handled transparently as feature differences rather
    +than protocol differences).
    +
    +Detection
    +---------
    +
    +All ALPS touchpads should respond to the "E6 report" command sequence:
    +E8-E6-E6-E6-E9. An ALPS touchpad should respond with either 00-00-0A or
    +00-00-64.
    +
    +If the E6 report is successful, the touchpad model is identified using the "E7
    +report" sequence: E8-E7-E7-E7-E9. The response is the model signature and is
    +matched against known models in the alps_model_data_array.
    +
    +Packet Format
    +-------------
    +
    +In the following tables, the following notation us used.
    +
    + CAPITALS = stick, miniscules = touchpad
    +
    +?'s can have different meanings on different models, such as wheel rotation,
    +extra buttons, stick buttons on a dualpoint, etc.
    +
    +PS/2 packet format
    +------------------
    +
    + byte 0: 0 0 YSGN XSGN 1 M R L
    + byte 1: X7 X6 X5 X4 X3 X2 X1 X0
    + byte 2: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
    +
    +Note that the device never signals overflow condition.
    +
    +ALPS Absolute Mode - Old Format
    +-------------------------------
    +
    + byte 0: 1 0 0 0 1 x9 x8 x7
    + byte 1: 0 x6 x5 x4 x3 x2 x1 x0
    + byte 2: 0 ? ? l r ? fin ges
    + byte 3: 0 ? ? ? ? y9 y8 y7
    + byte 4: 0 y6 y5 y4 y3 y2 y1 y0
    + byte 5: 0 z6 z5 z4 z3 z2 z1 z0
    +
    +ALPS Absolute Mode - New Format
    +-------------------------------
    +
    + byte 0: 1 ? ? ? 1 ? ? ?
    + byte 1: 0 x6 x5 x4 x3 x2 x1 x0
    + byte 2: 0 x10 x9 x8 x7 ? fin ges
    + byte 3: 0 y9 y8 y7 1 M R L
    + byte 4: 0 y6 y5 y4 y3 y2 y1 y0
    + byte 5: 0 z6 z5 z4 z3 z2 z1 z0
    +
    +Dualpoint device -- interleaved packet format
    +---------------------------------------------
    +
    + byte 0: 1 1 0 0 1 1 1 1
    + byte 1: 0 x6 x5 x4 x3 x2 x1 x0
    + byte 2: 0 x10 x9 x8 x7 0 fin ges
    + byte 3: 0 0 YSGN XSGN 1 1 1 1
    + byte 4: X7 X6 X5 X4 X3 X2 X1 X0
    + byte 5: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
    + byte 6: 0 y9 y8 y7 1 m r l
    + byte 7: 0 y6 y5 y4 y3 y2 y1 y0
    + byte 8: 0 z6 z5 z4 z3 z2 z1 z0
    diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
    index 99d5876..ad15e7c 100644
    --- a/drivers/input/mouse/alps.c
    +++ b/drivers/input/mouse/alps.c
    @@ -74,42 +74,7 @@ static const struct alps_model_info alps_model_data[] = {
    * isn't valid per PS/2 spec.
    */

    -/*
    - * PS/2 packet format
    - *
    - * byte 0: 0 0 YSGN XSGN 1 M R L
    - * byte 1: X7 X6 X5 X4 X3 X2 X1 X0
    - * byte 2: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
    - *
    - * Note that the device never signals overflow condition.
    - *
    - * ALPS absolute Mode - new format
    - *
    - * byte 0: 1 ? ? ? 1 ? ? ?
    - * byte 1: 0 x6 x5 x4 x3 x2 x1 x0
    - * byte 2: 0 x10 x9 x8 x7 ? fin ges
    - * byte 3: 0 y9 y8 y7 1 M R L
    - * byte 4: 0 y6 y5 y4 y3 y2 y1 y0
    - * byte 5: 0 z6 z5 z4 z3 z2 z1 z0
    - *
    - * Dualpoint device -- interleaved packet format
    - *
    - * byte 0: 1 1 0 0 1 1 1 1
    - * byte 1: 0 x6 x5 x4 x3 x2 x1 x0
    - * byte 2: 0 x10 x9 x8 x7 0 fin ges
    - * byte 3: 0 0 YSGN XSGN 1 1 1 1
    - * byte 4: X7 X6 X5 X4 X3 X2 X1 X0
    - * byte 5: Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
    - * byte 6: 0 y9 y8 y7 1 m r l
    - * byte 7: 0 y6 y5 y4 y3 y2 y1 y0
    - * byte 8: 0 z6 z5 z4 z3 z2 z1 z0
    - *
    - * CAPITALS = stick, miniscules = touchpad
    - *
    - * ?'s can have different meanings on different models,
    - * such as wheel rotation, extra buttons, stick buttons
    - * on a dualpoint, etc.
    - */
    +/* Packet formats are described in Documentation/input/alps.txt */

    static bool alps_is_valid_first_byte(const struct alps_model_info *model,
    unsigned char data)
    --
    1.7.5.4


    \
     
     \ /
      Last update: 2011-10-26 23:17    [W:0.026 / U:121.364 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site