[U-Boot] [PATCH v3 00/12] dm: input: Move keyboard drivers to driver model

Simon Glass sjg at chromium.org
Wed Nov 11 22:56:09 CET 2015


Hi Bin,

On 11 November 2015 at 10:05, Simon Glass <sjg at chromium.org> wrote:
> This series adds a new uclass for keyboards and converts some drivers
> over to use it.
>
> This series includes some work to remove code duplication in the keyboard
> drivers by updating them to use the input library (input.c). This unifies
> the keycode decoding logic in one place. In order to do this some
> enhancements are needed to the input library and these are also included.
>
> The cros_ec and tegra_kbc drivers are converted to use driver model.
>
> The i8042 driver is converted also, after various tidy-ups. The driver has
> some strange interactions with the cfb_console driver. This is removed in
> this series which is possible because the only user is x86. Some i8042
> features have been dropped (the only deliberate one is the flashing cursor
> which does not seem to be used by any board).
>
> Also the i8042 driver currently has its own keycode-decoding logic. This
> series removes it in favour of the input library. Therefore testing of this
> new driver would be appreciated. So far I have only been able to test on
> link, which does not have a full keyboard. Also, while German keyboard
> support is implemented, I am unable to test that either.
>
> These changes can be considered the first step towards moving stdio to
> driver model. For that to be useful we need to convert LCD and video also.
>
> Note: This series is missing the code to call the update_leds() method when
> the LEDs change. This needs to be added to keyboard_tstc() and
> keyboard_getc(). If someone is able to test this I can send a patch for that
> also.
>
> This series is available at u-boot-dm branch input-working.

Can you please try testing this for your crash when pressing 'caps
lock'? I'm not sure what is going on there and I don't have hardware
to test with.

>
> Changes in v3:
> - Refactor the German keyboard code to use data rather than code
> - Drop unrelated cros_keyb change
> - Fix 'QUICK' typo
> - Fix missing 'use' word
> - Drop patches already applied
>
> Changes in v2:
> - Update input_add_tables() to add error checking
> - Convert two multi-line comments to single-line comments
> - Correct call to input_init()
> - Drop CONFIG_VGA_AS_SINGLE_DEVICE from all x86 board config files
> - Use device tree to handle this quirk
>
> Simon Glass (12):
>   input: Support the German keymap
>   input: Adjust structure of code in process_modifier()
>   input: Handle caps lock
>   input: Allow updating of keyboard LEDs
>   input: i8042: Convert to use the input library
>   input: Add a Kconfig option for the i8042 keyboard
>   x86: Add an i8042 device for boards that have it
>   Drop CONFIG_ISA_KEYBOARD
>   input: Convert i8042 to driver model
>   i8042: Handle a duplicate power-on-reset response
>   video: input: Clean up after i8042 conversion
>   input: Convert 'keyboard' driver to use input library
>
>  README                                   |  30 +-
>  arch/x86/Kconfig                         |   6 +
>  arch/x86/dts/bayleybay.dts               |   1 +
>  arch/x86/dts/chromebook_link.dts         |   5 +
>  arch/x86/dts/keyboard.dtsi               |   5 +
>  board/kosagi/novena/novena.c             |   2 +-
>  board/mpl/pip405/README                  |   4 -
>  doc/device-tree-bindings/input/i8042.txt |  10 +
>  drivers/input/Kconfig                    |  10 +
>  drivers/input/Makefile                   |   2 +-
>  drivers/input/cros_ec_keyb.c             |   2 +-
>  drivers/input/i8042.c                    | 563 ++++++++-----------------------
>  drivers/input/input.c                    | 158 +++++++--
>  drivers/input/keyboard.c                 | 290 +++-------------
>  drivers/input/tegra-kbc.c                |   2 +-
>  drivers/video/cfb_console.c              |  20 +-
>  include/configs/MIP405.h                 |   5 -
>  include/configs/PIP405.h                 |   5 -
>  include/configs/bayleybay.h              |   3 -
>  include/configs/chromebox_panther.h      |   2 -
>  include/configs/minnowmax.h              |   1 -
>  include/configs/x86-chromebook.h         |   2 +-
>  include/configs/x86-common.h             |   2 +-
>  include/i8042.h                          |   6 -
>  include/input.h                          |  17 +-
>  include/keyboard.h                       |   5 +
>  26 files changed, 376 insertions(+), 782 deletions(-)
>  create mode 100644 arch/x86/dts/keyboard.dtsi
>  create mode 100644 doc/device-tree-bindings/input/i8042.txt
>
> --
> 2.6.0.rc2.230.g3dd15c0
>

Regards,
Simon


More information about the U-Boot mailing list