mbox series

[v4,0/4] Pine64 PinePhone keyboard support

Message ID 20220618165747.55709-1-samuel@sholland.org (mailing list archive)
Headers show
Series Pine64 PinePhone keyboard support | expand

Message

Samuel Holland June 18, 2022, 4:57 p.m. UTC
This series adds support for the official keyboard case for the Pine64
PinePhone and PinePhone Pro. This accessory contains a keyboard MCU and
an IP5209 power bank IC. The keyboard MCU firmware[0] is free software.
It exposes the keyboard scan matrix over I2C, and also provides commands
for SMBus access to the IP5209. In order to keep the IP5209 driver
(CONFIG_IP5XXX_POWER) generic, this is modeled as a child I2C bus.

[0]: https://megous.com/git/pinephone-keyboard/about/

Changes in v4:
 - Rebase to resolve MAINTAINERS merge conflict
 - Add missing newlines in error messages

Changes in v3:
 - Replace unevaluatedProperties with additionalProperties
 - Rename i2c-bus to i2c
 - Rename i2c-bus to i2c

Changes in v2:
 - Drop keymap DT properties
 - Add vbat-supply property
 - Fix missing key release events when FN state changes
 - Add VBAT consumer to ensure enough power is available for the MCU
 - Use a single fixed-size, fixed-contents keymap for both layers

Samuel Holland (4):
  dt-bindings: input: Add the PinePhone keyboard binding
  Input: pinephone-keyboard - Add PinePhone keyboard driver
  Input: pinephone-keyboard - Support the proxied I2C bus
  [DO NOT MERGE] arm64: dts: allwinner: pinephone: Add keyboard

 .../input/pine64,pinephone-keyboard.yaml      |  66 +++
 MAINTAINERS                                   |   6 +
 .../dts/allwinner/sun50i-a64-pinephone.dtsi   |  18 +
 drivers/input/keyboard/Kconfig                |  10 +
 drivers/input/keyboard/Makefile               |   1 +
 drivers/input/keyboard/pinephone-keyboard.c   | 438 ++++++++++++++++++
 6 files changed, 539 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/input/pine64,pinephone-keyboard.yaml
 create mode 100644 drivers/input/keyboard/pinephone-keyboard.c