Blame view

doc/driver-model/UDM-keyboard.txt 1.81 KB
15c6935b0   Marek Vasut   dm: Initial impor...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  The U-Boot Driver Model Project
  ===============================
  Keyboard input analysis
  =======================
  Marek Vasut <marek.vasut@gmail.com>
  2012-02-20
  
  I) Overview
  -----------
  
  The keyboard drivers are most often registered with STDIO subsystem. There are
  components of the keyboard drivers though, which operate in severe ad-hoc
  manner, often being related to interrupt-driven keypress reception. This
  components will require the most sanitization of all parts of keyboard input
  subsystem.
  
  Otherwise, the keyboard is no different from other standard input but with the
  necessity to decode scancodes. These are decoded using tables provided by
  keyboard drivers. These tables are often driver specific.
  
  II) Approach
  ------------
  
  The most problematic part is the interrupt driven keypress reception. For this,
  the buffers that are currently shared throughout the whole U-Boot would need to
  be converted into driver's private data.
  
  III) Analysis of in-tree drivers
  --------------------------------
566c6e437   Masahiro Yamada   cosmetic: doc: dr...
30
31
    board/mpl/common/kbd.c
    ----------------------
15c6935b0   Marek Vasut   dm: Initial impor...
32
33
    This driver is a classic STDIO driver, no problem with conversion is expected.
    Only necessary change will be to move this driver to a proper location.
566c6e437   Masahiro Yamada   cosmetic: doc: dr...
34
35
    board/rbc823/kbd.c
    ------------------
15c6935b0   Marek Vasut   dm: Initial impor...
36
37
    This driver is a classic STDIO driver, no problem with conversion is expected.
    Only necessary change will be to move this driver to a proper location.
566c6e437   Masahiro Yamada   cosmetic: doc: dr...
38
39
    drivers/input/keyboard.c
    ------------------------
15c6935b0   Marek Vasut   dm: Initial impor...
40
41
42
43
44
    This driver is special in many ways. Firstly because this is a universal stub
    driver for converting scancodes from i8042 and the likes. Secondly because the
    buffer is filled by various other ad-hoc implementations of keyboard input by
    using this buffer as an extern. This will need to be fixed by allowing drivers
    to pass certain routines to this driver via platform data.