[PATCH v4 0/4] input: add GPIO-based charlieplex keypad

Hugo Villeneuve hugo at hugovil.com
Thu Mar 5 11:23:50 PST 2026


On Thu,  5 Mar 2026 14:20:46 -0500
Hugo Villeneuve <hugo at hugovil.com> wrote:

> From: Hugo Villeneuve <hvilleneuve at dimonoff.com>
> 
> Hello,
> this patch series add a new GPIO charlieplex keypad driver.
> 
> The first two patches simply commonize two properties that are present in
> a few bindings, so that the actual patches for the charlieplex keypad driver
> can reuse them instead of also redefining them.
> 
> I have tested the driver on a custom board with a Solidrun RZ/G2LC SOM
> with three charlieplex keyboards, all connected thru a single PCAL6416 I2C GPIO
> expander.
> 
> Link: [v1] https://lore.kernel.org/all/20260203155023.536103-1-hugo@hugovil.com/
> Link: [v2] https://lore.kernel.org/all/20260213171431.2228814-1-hugo@hugovil.com/
> Link: [v3] https://lore.kernel.org/all/20260225155409.612478-1-hugo@hugovil.com/
> 
> Changes for v4:
> - Fix indentation in comments (Andy)
> - Add missing includes (Andy)
> - Remove OF dependency (Andy/Dmitry)
> - Uniformize return code variables to "err" (Andy/Dmitry)
> - Change signed iterator to unsigned and move within loop (Andy)
> - Remove unused platform_set_drvdata() (Andy)
> - Fixed typo in cover letter PCAL6416 (Geert)
> - Changed name in bindings example (Geert)
> - Added pull resistors to bindings doc and example (Geert)
> - Add debounce-delay-ms common property
> - Add settling-time-us common property

Please ignore the last two lines that were already mentioned for V3.

Hugo.


> 
> Changes for v3:
> - Add ASCII diagram in bindings, and reference to it in example
> - Reorder properties alphabetically
> - Add patch to define common input settling-time-us property
> - Add patch to define common input debounce-delay-ms property
> 
> Changes for v2:
> - Fix yamllint error for example
> - Remove unused debug variable (nkeys)
> - Remove support for custom linux,no-autorepeat DT property
> - Remove support for custom gpio-activelow DT property
> 
> Thank you.
> 
> Hugo Villeneuve (4):
>   dt-bindings: input: add debounce-delay-ms common property
>   dt-bindings: input: add settling-time-us common property
>   dt-bindings: input: add GPIO charlieplex keypad
>   Input: charlieplex_keypad: add GPIO charlieplex keypad
> 
>  .../bindings/auxdisplay/holtek,ht16k33.yaml   |   5 +-
>  .../bindings/input/cirrus,ep9307-keypad.yaml  |   7 +-
>  .../input/gpio-charlieplex-keypad.yaml        | 108 +++++++++
>  .../bindings/input/gpio-matrix-keypad.yaml    |   5 +-
>  .../devicetree/bindings/input/input.yaml      |  16 ++
>  .../input/mediatek,mt6779-keypad.yaml         |   1 +
>  .../devicetree/bindings/mfd/fsl,mc13xxx.yaml  |   2 -
>  MAINTAINERS                                   |   7 +
>  drivers/input/keyboard/Kconfig                |  14 ++
>  drivers/input/keyboard/Makefile               |   1 +
>  drivers/input/keyboard/charlieplex_keypad.c   | 214 ++++++++++++++++++
>  11 files changed, 368 insertions(+), 12 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/input/gpio-charlieplex-keypad.yaml
>  create mode 100644 drivers/input/keyboard/charlieplex_keypad.c
> 
> 
> base-commit: 3bf5404fc93825ddde89992acad095a297ed9a31
> -- 
> 2.47.3
> 
> 


-- 
Hugo Villeneuve



More information about the Linux-mediatek mailing list