Linux(Kernel 4.4.0-96)のキーボードのデバイスドライバ一覧の概要を調べてみた

# 概要

- 苦手な下位の学習を兼ねて、調べてみた
- 以下の環境で、各ソースコードの頭の部分を確認する（コピペ）

```
ubuntu# uname -r
4.4.0-96-generic
ubuntu# pwd
/usr/local/src/linux-4.12.7/drivers/input/keyboard
ubuntu# ls
Kconfig         cap11xx.c           imx_keypad.c       max7359_keypad.c      pxa930_rotary.c     sunkbd.c
Makefile        clps711x-keypad.c   ipaq-micro-keys.c  mcs_touchkey.c        qt1070.c            tc3589x-keypad.c
adc-keys.c      cros_ec_keyb.c      jornada680_kbd.c   mpr121_touchkey.c     qt2160.c            tca6416-keypad.c
adp5520-keys.c  davinci_keyscan.c   jornada720_kbd.c   newtonkbd.c           samsung-keypad.c    tca8418_keypad.c
adp5588-keys.c  ep93xx_keypad.c     lkkbd.c            nomadik-ske-keypad.c  sh_keysc.c          tegra-kbc.c
adp5589-keys.c  goldfish_events.c   lm8323.c           nspire-keypad.c       snvs_pwrkey.c       tm2-touchkey.c
amikbd.c        gpio_keys.c         lm8333.c           omap-keypad.c         spear-keyboard.c    twl4030_keypad.c
atakbd.c        gpio_keys_polled.c  locomokbd.c        omap4-keypad.c        st-keyscan.c        w90p910_keypad.c
atkbd.c         hil_kbd.c           lpc32xx-keys.c     opencores-kbd.c       stmpe-keypad.c      xtkbd.c
bcm-keypad.c    hilkbd.c            maple_keyb.c       pmic8xxx-keypad.c     stowaway.c
bf54x-keys.c    hpps2atkbd.h        matrix_keypad.c    pxa27x_keypad.c       sun4i-lradc-keys.c
```

# 一覧

| ファイル名|作成元（組織or人）| 概要 |備考|
|:-----|----:|:----:|:----:|
| mcs_touchkey.c | Samsung Electronics Co.Ltd | Touchkey driver for MELFAS MCS5000/5080 controller | [melfas](http://www.melfas.com/jpn/product/tech.html) |
| adc-keys.c | Alexandre Belloni | Input driver for resistor ladder connected on ADC |  |
| adp5520-keys.c | Analog Devices Inc. | Keypad driver for Analog Devices ADP5520 MFD PMICs | [ADP5520](http://www.analog.com/jp/products/interface-isolation/mobile-io-expander-and-keypad-controller/adp5520.html#product-overview) |
| adp5588-keys.c | Analog Devices Inc. | keypad driver for ADP5588 and ADP5587 I2C QWERTY Keypad and IO Expander | [ADP5588](http://www.analog.com/jp/products/interface-isolation/mobile-io-expander-and-keypad-controller/adp5588.html) |
| adp5589-keys.c | Analog Devices Inc | keypad driver for ADP5589, ADP5585 I2C QWERTY Keypad and IO Expander ||
| amikbd.c | Vojtech Pavlik | Amiga keyboard driver for Linux/m68k | |
| atakbd.c | Michael Schmitz | Atari keyboard driver for Linux/m68k |  |
| bcm-keypad.c | Broadcom Corporation |  | |
| bf54x-keys.c | Michael Henneric | keypad driver for Analog Devices Blackfin BF54x Processors | |
| cap11xx.c | Daniel Mack | Input driver for Microchip CAP11xx based capacitive touch sensors ||
| clps711x-keypad.c | Alexander Shiyan | Cirrus Logic CLPS711X Keypad driver |  |
| cros_ec_keyb.c | Google, Inc | ChromeOS EC keyboard driver |  |
| davinci_keyscan.c | Texas Instruments, Inc | DaVinci Key Scan Driver for TI platforms |  |
| ep93xx_keypad.c | H Hartley Sweeten | Driver for the Cirrus EP93xx matrix keypad controller. |  |
| goldfish_events.c | Google, Inc., Intel, Inc. |  |  |
| gpio_keys.c | Phil Blundell, Copyright 2010, 2011 | Driver for keys on GPIO lines capable of generating interrupts. |  |
| gpio_keys_polled.c | Gabor Juhos, Nuno Goncalves | Driver for buttons on GPIO lines not capable of generating interrupts |  |
| hil_kbd.c | Brian S. Julin | Generic linux-input device driver for keyboard devices |  |
| hilkbd.c | Philip Blundell | Very basic HP Human Interface Loop (HIL) driver. |  |
| hpps2atkbd.h | Helge Deller | HP PS/2 AT-compatible Keyboard, found in PA/RISC Workstations & Laptops |  |
| imx_keypad.c | Alberto Panizzo | Driver for the IMX keypad port. |  |
| ipaq-micro-keys.c | Alessandro Gardich | h3600 atmel micro companion support, key subdevice |  |
| jornada680_kbd.c | Kristoffer Ericson | HP Jornada 620/660/680/690 scan keyboard platform driver |  |
| jornada720_kbd.c | Kristoffer Ericson | HP Jornada 720 keyboard platform driver |  |
| lkkbd.c | Jan-Benedict Glaw | LK keyboard driver for Linux, based on sunkbd.c (C) by Vojtech Pavlik |  |
| lm8323.c | Nokia Corporation |  |  |
| lm8333.c | Wolfram Sang, Pengutronix | LM8333 keypad driver |  |
| locomokbd.c | John Lenz | LoCoMo keyboard driver for Linux-based ARM PDAs: |  |
| lpc32xx-keys.c | Kevin Wells | NXP LPC32xx SoC Key Scan Interface |  |
| maple_keyb.c | YAEGASHI Takeshi, | SEGA Dreamcast keyboard driver |  |
| matrix_keypad.c | Marek Vasut | GPIO driven matrix keyboard driver |  |
| max7359_keypad.c | Samsung Electronics | MAX7359 Key Switch Controller Driver |  |
| mpr121_touchkey.c | Freescale Semiconductor, Inc | Touchkey driver for Freescale MPR121 Controllor |  |
| newtonkbd.c | Justin Cormack | Newton keyboard driver for Linux |  |
| nomadik-ske-keypad.c | ST-Ericsson SA | Keypad controller driver for the SKE (Scroll Key Encoder) module used in the Nomadik 8815 and Ux500 platforms. |  |
| nspire-keypad.c | Daniel Tang |  |  |
| omap-keypad.c | Nokia Corporation | OMAP Keypad Driver |  |
| omap4-keypad.c | Texas Instruments | OMAP4 Keypad Driver |  |
| opencores-kbd.c | HV Sistemas S.L | OpenCores Keyboard Controller Driver |  |
| pmic8xxx-keypad.c | Code Aurora Forum |  |  |
| pxa27x_keypad.c | Rodolfo Giometti | Driver for the pxa27x matrix keyboard controller |  |
| pxa930_rotary.c |  | Driver for the enhanced rotary controller on pxa930 and pxa935 |  |
| qt1070.c | Atmel | Atmel AT42QT1070 QTouch Sensor Controller |  |
| qt2160.c | Raphael Derosso Pereira | Atmel AT42QT2160 Touch Sense Controller |  |
| samsung-keypad.c | Samsung Electronics Co.Ltd | Samsung keypad driver |  |
| sh_keysc.c | Magnus Damm |  SuperH KEYSC Keypad Driver |  |
| snvs_pwrkey.c | Freescale Semiconductor, Inc. | Driver for the IMX SNVS ON/OFF Power Key |  |
| spear-keyboard.c | ST Microelectronics | SPEAr Keyboard Driver |  |
| st-keyscan.c | STMicroelectonics Ltd. | STMicroelectronics Key Scanning driver |  |
| stmpe-keypad.c | ST-Ericsson SA |  |  |
| stowaway.c |  Marek Vasut | Stowaway keyboard driver for Linux |  |
| sun4i-lradc-keys.c | Hans de Goede | Allwinner sun4i low res adc attached tablet keys driver |  |
| sunkbd.c | Vojtech Pavlik | Sun keyboard driver for Linux |  |
| tc3589x-keypad.c | ST-Ericsson SA | TC35893 MFD Keypad Controller driver |  |
| tca6416-keypad.c | Texas Instruments | Driver for keys on TCA6416 I2C IO expander |  |
| tca8418_keypad.c | Fuel7, Inc | Driver for TCA8418 I2C keyboard |  |
| tegra-kbc.c | NVIDIA Corporation | Keyboard class input driver for the NVIDIA Tegra SoC internal matrix keyboard controller |  |
| tm2-touchkey.c | Phil Blundell, Samsung Electronics Co., Ltd. | TM2 touchkey device driver |  |
| twl4030_keypad.c | Texas Instruments, Inc | driver for 8x8 keypad controller in twl4030 chips |  |
| w90p910_keypad.c | Nuvoton technology corporation |  |  |
| xtkbd.c | Vojtech Pavlik | XT keyboard driver for Linux |  |