[PATCH v2 00/11] Remove support for platform data from samsung keypad
From: Dmitry Torokhov
Date: Thu Jul 09 2026 - 00:53:17 EST
Hi,
This is a reworked and extended version of the series previously posted
to convert the Samsung keypad driver and Cragganmore 6410 board to
generic device properties. The first 8 patches of the original series
(general cleanups) have been merged into mainline, and this version
focuses on the remaining keypad rework and extends the board conversion.
Specifically, we rework the Samsung keypad driver to stop using platform
data and instead rely on generic device properties, and convert the
Cragganmore board to use software nodes for all its peripherals, removing
legacy GPIO lookup tables.
We start by introducing a compact matrix keypad binding and implementing
it in the driver. To support referencing Samsung GPIO chips in board
properties, we add infrastructure to register and attach software nodes
to Samsung gpio_chips. We then switch the Cragganmore keypad to use
software properties and drop platform data support from the driver.
To convert the PMIC DVS regulator on Cragganmore, we add software node
support to the wm831x regulator driver, allowing DVS configuration via
device properties. Once the board is converted, we clean up the driver
by removing legacy DVS platform data fields.
Finally, we convert the remaining peripherals on Cragganmore (GPIO keys,
PMIC, WM1250, SPI0, basic-mmio-gpio, and LEDs) to software properties.
This allows us to eliminate all legacy GPIO lookup tables, which also
fixes incorrect GPIO chip names ("GPIO<N>" vs "GP<N>") from previous
descriptor conversions.
Mark, it would be great if you could give this a spin on Cragganmore.
Thanks!
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 (11):
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
regulator: wm831x: support software node in platform data
ARM: s3c: crag6410: convert PMIC to software properties
regulator: wm831x: remove legacy DVS platform data
ARM: s3c: crag6410: convert remaining GPIO lookup tables to property entries
ARM: s3c: crag6410: convert basic-mmio-gpio and LEDs to software properties
.../bindings/input/samsung,s3c6410-keypad.yaml | 53 ++-
arch/arm/mach-s3c/Kconfig | 5 -
arch/arm/mach-s3c/Kconfig.s3c64xx | 1 -
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 | 368 +++++++++++++--------
arch/arm/mach-s3c/setup-keypad-s3c64xx.c | 20 --
drivers/input/keyboard/samsung-keypad.c | 192 ++++-------
drivers/regulator/wm831x-dcdc.c | 24 +-
include/linux/input/samsung-keypad.h | 39 ---
include/linux/mfd/wm831x/pdata.h | 5 +-
16 files changed, 445 insertions(+), 434 deletions(-)
---
base-commit: 8e9685d3c41c35dd1b37df70d854137abcb2fbac
change-id: 20240819-samsung-kp-ceedd4f2f720
Thanks.
--
Dmitry