[PATCH v4 0/4] Pine64 PinePhone keyboard support

From: Samuel Holland
Date: Sat Jun 18 2022 - 13:06:11 EST


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

--
2.35.1