[U-Boot] [PATCH 00/28] dm: input: Move keyboard drivers to driver model
Simon Glass
sjg at chromium.org
Wed Sep 9 06:32:23 CEST 2015
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.
Simon Glass (28):
dm: input: Create a keyboard uclass
input: Add a device pointer to the input config
input: Return -ENOSPC when there is not space
input: Add the keycode translation tables separately
cros_ec: Use udevice instead of cros_ec_dev for keyboard functions
dm: stdio: Plumb in the new keyboard uclass
dm: tegra: Convert keyboard driver to driver model
dm: cros_ec: Convert cros_ec keyboard driver to driver model
video: Drop unused console functions
i8042: Use functions to handle register access
i8042: Handle a duplicate power-on-reset response
i8042: Adjust kbd_reset() to collect all failures
i8042: Adjust keyboard init to assume success
input: Correct keycode for Ctrl-Y
input: Add a few more keyboard keycodes
input: Add a function to add a keycode to the existing set
input: Allow repeat filtering to be disabled
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
video: input: Clean up after i8042 conversion
input: Convert 'keyboard' driver to use input library
README | 42 +--
arch/arm/Kconfig | 1 +
arch/arm/mach-tegra/Kconfig | 1 +
arch/sandbox/Kconfig | 3 +
arch/x86/Kconfig | 6 +
arch/x86/dts/bayleybay.dts | 1 +
arch/x86/dts/chromebook_link.dts | 1 +
arch/x86/dts/keyboard.dtsi | 5 +
board/kosagi/novena/novena.c | 1 +
board/mpl/pip405/README | 4 -
common/stdio.c | 31 +-
common/usb_kbd.c | 6 -
drivers/input/Kconfig | 19 ++
drivers/input/Makefile | 4 +-
drivers/input/cros_ec_keyb.c | 147 ++++-----
drivers/input/i8042.c | 632 ++++++++++-----------------------------
drivers/input/input.c | 202 ++++++++++---
drivers/input/keyboard-uclass.c | 84 ++++++
drivers/input/keyboard.c | 290 +++---------------
drivers/input/tegra-kbc.c | 242 +++++++--------
drivers/misc/cros_ec.c | 14 +-
drivers/video/cfb_console.c | 82 +----
include/configs/MIP405.h | 5 -
include/configs/MPC8536DS.h | 1 -
include/configs/MPC8544DS.h | 1 -
include/configs/MPC8572DS.h | 1 -
include/configs/MPC8641HPCN.h | 1 -
include/configs/PIP405.h | 5 -
include/configs/x86-chromebook.h | 2 +-
include/configs/x86-common.h | 2 +-
include/cros_ec.h | 4 +-
include/fdtdec.h | 1 -
include/i8042.h | 6 -
include/input.h | 65 +++-
include/keyboard.h | 83 +++++
lib/fdtdec.c | 1 -
36 files changed, 866 insertions(+), 1130 deletions(-)
create mode 100644 arch/x86/dts/keyboard.dtsi
create mode 100644 drivers/input/keyboard-uclass.c
--
2.6.0.rc0.131.gf624c3d
More information about the U-Boot
mailing list