[PATCH v3 00/10] Remove support for platform data from samsung keypad

From: Dmitry Torokhov

Date: Sat Jul 11 2026 - 22:13:13 EST


Hi,

This series converts the Samsung keypad driver and the Cragganmore 6410
board to generic device properties, allowing the removal of legacy platform
data and GPIO lookup tables.

We rework the Samsung keypad driver to stop using platform data, utilizing
a new compact matrix keypad binding. To support this on the Cragganmore
board, we add infrastructure to associate software nodes with Samsung
gpio_chips, and add software node propagation support to the wm831x MFD
core to route DVS GPIO to the PMIC regulator.

Finally, we convert all peripherals on the Cragganmore board (including
keypad, GPIO keys, PMIC, WM1250, SPI0, basic-mmio-gpio, and LEDs) to
software properties. This allows us to eliminate all legacy GPIO lookup
tables and fixes incorrect GPIO chip names from previous conversions.

Mark, it would be great if you could give this a spin on Cragganmore.

The majority of changes are in arch/board code, with a couple of input
matches and one for MFD. If everyone agrees maybe we can merge it all
through the soc tree?

Thanks!

Changes in v3:
- Fixed legacy property handling regression in the keypad driver by
separating compact and verbose binding paths
- Removed redundant registration of crag6410_mmgpio_node from
mach-crag6410.c
- Removed dead S3C64XX_SETUP_KEYPAD Kconfig symbol definition and
selection
- Fixed missing newline in pr_err() message in mach-crag6410.c
- Redesigned PMIC DVS support to keep regulator driver changes minimal
(untouched) and only use software nodes for GPIO routing via MFD core
- Link to v2: https://patch.msgid.link/20260708-samsung-kp-v2-0-3c6ed4c9b3b6@xxxxxxxxx

Changes in v2:
- Patches 1-8 of v1 were merged into mainline, dropping them from this
series
- Rebased remaining patches (9-14 of v1) onto latest next
- Resolved conflicts in mach-crag6410.c
- Removed redundant "out of memory" error messages from the keypad
driver
- Added an infrastructure patch to register and attach software nodes
for Samsung gpio_chips
- Converted basic-mmio-gpio and LEDs on Cragganmore 6410 to software
properties in a new separate patch
- Addressed DT bindings feedback on the compact binding patch
- Fixed proximity switch event type for GPIO keys
- Added support for software nodes in wm831x regulator driver
- Converted PMIC DVS on Cragganmore 6410 to software properties using
the new driver support
- Removed legacy DVS platform data fields and cleaned up driver
fallback.

---
Dmitry Torokhov (10):
dt-bindings: input: samsung,s3c6410-keypad: introduce compact binding
Input: samsung-keypad - handle compact binding
ARM: s3c: register and attach software nodes for Samsung gpio_chips
ARM: s3c: crag6410: switch keypad device to software properties
Input: samsung-keypad - remove support for platform data
ARM: s3c: crag6410: use software nodes/properties to set up GPIO keys
mfd: wm831x: support software nodes for DCDC regulators
ARM: s3c: crag6410: convert PMIC DVS GPIO to software properties
ARM: s3c: crag6410: convert basic-mmio-gpio and LEDs to software properties
ARM: s3c: crag6410: convert remaining GPIO lookup tables to property entries

.../bindings/input/samsung,s3c6410-keypad.yaml | 53 ++-
arch/arm/mach-s3c/Kconfig | 5 -
arch/arm/mach-s3c/Kconfig.s3c64xx | 7 -
arch/arm/mach-s3c/Makefile.s3c64xx | 1 -
arch/arm/mach-s3c/devs.c | 62 ----
arch/arm/mach-s3c/devs.h | 2 -
arch/arm/mach-s3c/gpio-core.h | 3 +
arch/arm/mach-s3c/gpio-samsung-s3c64xx.h | 5 +
arch/arm/mach-s3c/gpio-samsung.c | 72 +++-
arch/arm/mach-s3c/keypad.h | 27 --
arch/arm/mach-s3c/mach-crag6410.c | 369 +++++++++++++--------
arch/arm/mach-s3c/setup-keypad-s3c64xx.c | 20 --
drivers/input/keyboard/samsung-keypad.c | 200 +++++------
drivers/mfd/wm831x-core.c | 47 ++-
include/linux/input/samsung-keypad.h | 39 ---
include/linux/mfd/wm831x/pdata.h | 2 +
16 files changed, 472 insertions(+), 442 deletions(-)
---
base-commit: 8e9685d3c41c35dd1b37df70d854137abcb2fbac
change-id: 20240819-samsung-kp-ceedd4f2f720

Thanks.

--
Dmitry