lkml.org 
[lkml]   [2000]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectIBM Rapid Access Keyboard
    I would be very happy for some help here from an experienced kernel
    hacker.

    I have a Rapid Access keyboard with some (14) extra buttons and
    two more leds then a normal pc keyboard. To activate the extra buttons
    one have to send the sequence ec ea 71 ec ea 71 to the keyboard. Once
    that is done the extra keys generate normal e0xx sequences.

    So I added this to pc_keyb.c: pckbd_init_hw() just before the
    CONFIG_PSMOUSE.

    printk("ra: Init Rapid Access keyboard\n");
    kbd_write_output_w(0xec);
    kbd_write_output_w(0xea);
    kbd_write_output_w(0x71);
    kbd_write_output_w(0xec);
    kbd_write_output_w(0xea);
    kbd_write_output_w(0x71);

    One should probably make a loadable module instead, where
    this sequence is sent when the module is loaded, and the
    turn off sequence when the module is unloaded, or we could
    have an extra kernel argument. We might even want to always send
    this sequence if it does not do any harm to other keyboards.

    But thats only one problem. I don't know what to do with the extra
    e0xx sequences. Should I put in a translation in the e0_keys[] table?
    All the extra keys are now mapped to 0 (unused), so it would be easy.
    But then there is a question about keycodes since they can only be
    max 127.

    Next problem. We have two extra leds that should be changable from
    userland. For example the mute button have a small led that is normaly
    lit when one presses a button. How should I make these controlable.
    Intermix it with the other leds? Make a /proc entry where you can read
    and set there status? Maybe even use the /proc entry to activate and
    deactivate the rapid access keyboard? It fits nice with the idea to
    make a rapid_access.o module which creates the /proc entry.

    But I thnink this is a bad way to go. There are a lot of kayboard out
    there today with extra buttons and extra leds. Maybe we should have some
    unified way to use all these. Any suggestions are welcome.

    I also have trouble with setkeycodes. I thought that I could use it to map
    the e0xx sequences to something good and usable. But nothing seems to
    happen. What do I do wrong??

    [root@merlin /root]$ getkeycodes
    Plain scancodes xx (hex) versus keycodes (dec)
    0 is an error; for 1-88 (0x01-0x58) scancode equals keycode

    0x58: 88 124 125 126 127 0 0 0
    0x60: 0 0 0 0 0 0 0 0
    0x68: 0 0 0 0 0 122 0 123
    0x70: 0 0 0 89 120 0 0 90
    0x78: 91 92 93 94 95 124 121 0

    Escaped scancodes e0 xx (hex)

    e0 00: 0 0 0 0 0 0 0 0
    e0 08: 0 0 0 0 0 0 0 0
    e0 10: 0 0 0 0 0 0 0 0
    e0 18: 0 0 0 0 96 97 0 0
    e0 20: 0 0 0 0 0 0 0 0
    e0 28: 0 0 0 0 0 0 0 0
    e0 30: 0 0 0 0 0 98 0 99
    e0 38: 100 0 0 0 0 113 114 115
    e0 40: 116 117 0 0 0 0 101 102
    e0 48: 103 104 0 105 124 106 118 107
    e0 50: 108 109 110 111 0 0 0 0
    e0 58: 0 0 0 125 126 127 0 0
    e0 60: 0 0 0 0 0 0 0 0
    e0 68: 0 0 0 0 0 0 0 112
    e0 70: 0 0 0 0 0 0 0 0
    e0 78: 0 0 0 0 0 0 0 0
    [root@merlin /root]$ setkeycodes e020 112
    [root@merlin /root]$ getkeycodes
    Plain scancodes xx (hex) versus keycodes (dec)
    0 is an error; for 1-88 (0x01-0x58) scancode equals keycode

    0x58: 88 124 125 126 127 0 0 0
    0x60: 0 0 0 0 0 0 0 0
    0x68: 0 0 0 0 0 122 0 123
    0x70: 0 0 0 89 120 0 0 90
    0x78: 91 92 93 94 95 124 121 0

    Escaped scancodes e0 xx (hex)

    e0 00: 0 0 0 0 0 0 0 0
    e0 08: 0 0 0 0 0 0 0 0
    e0 10: 0 0 0 0 0 0 0 0
    e0 18: 0 0 0 0 96 97 0 0
    e0 20: 0 0 0 0 0 0 0 0
    e0 28: 0 0 0 0 0 0 0 0
    e0 30: 0 0 0 0 0 98 0 99
    e0 38: 100 0 0 0 0 113 114 115
    e0 40: 116 117 0 0 0 0 101 102
    e0 48: 103 104 0 105 124 106 118 107
    e0 50: 108 109 110 111 0 0 0 0
    e0 58: 0 0 0 125 126 127 0 0
    e0 60: 0 0 0 0 0 0 0 0
    e0 68: 0 0 0 0 0 0 0 112
    e0 70: 0 0 0 0 0 0 0 0
    e0 78: 0 0 0 0 0 0 0 0


    /Dennis


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.rutgers.edu
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:57    [W:0.025 / U:30.308 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site