* [PATCH v2 1/2] dt-bindings: input: Convert TI Keypad Controller to DT schema
2026-07-19 13:37 [PATCH v2 0/2] dt-bindings: input: Convert TI Keypad Controller to DT schema Eduard Bostina
@ 2026-07-19 13:37 ` Eduard Bostina
2026-07-21 13:48 ` Rob Herring (Arm)
2026-07-19 13:37 ` [PATCH v2 2/2] ARM: dts: ti: omap: Disable keypad and enable it on the boards that use it Eduard Bostina
1 sibling, 1 reply; 4+ messages in thread
From: Eduard Bostina @ 2026-07-19 13:37 UTC (permalink / raw)
To: Aaro Koskinen, Andreas Kemnade, Conor Dooley, devicetree,
Dmitry Torokhov, Eduard Bostina, Kevin Hilman,
Krzysztof Kozlowski, linux-input, linux-kernel, linux-omap,
Rob Herring, Roger Quadros, Tony Lindgren
Cc: daniel.baluta, simona.toaca, goledhruva, m-chawdhry
Convert the Texas Instruments Keypad Controller bindings
to DT schema.
During the conversion, the following updates were made:
- Corrected the documented property 'linux,keypad-no-autorepeat'
to 'linux,input-no-autorepeat'. The old text binding documented
the property incorrectly. The standard input subsystem property is
'linux,input-no-autorepeat', which is actively used in device
trees and parsed by the kernel.
- Added the 'reg-names' property ("mpu"), which was omitted from
the original text binding but is actively used in device trees.
Signed-off-by: Eduard Bostina <egbostina@gmail.com>
---
.../devicetree/bindings/input/omap-keypad.txt | 28 ---------
.../bindings/input/ti,omap4-keypad.yaml | 63 +++++++++++++++++++
2 files changed, 63 insertions(+), 28 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/input/omap-keypad.txt
create mode 100644 Documentation/devicetree/bindings/input/ti,omap4-keypad.yaml
diff --git a/Documentation/devicetree/bindings/input/omap-keypad.txt b/Documentation/devicetree/bindings/input/omap-keypad.txt
deleted file mode 100644
index 34ed1c60ff95..000000000000
--- a/Documentation/devicetree/bindings/input/omap-keypad.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-* TI's Keypad Controller device tree bindings
-
-TI's Keypad controller is used to interface a SoC with a matrix-type
-keypad device. The keypad controller supports multiple row and column lines.
-A key can be placed at each intersection of a unique row and a unique column.
-The keypad controller can sense a key-press and key-release and report the
-event using a interrupt to the cpu.
-
-This binding is based on the matrix-keymap binding with the following
-changes:
-
-keypad,num-rows and keypad,num-columns are required.
-
-Required SoC Specific Properties:
-- compatible: should be one of the following
- - "ti,omap4-keypad": For controllers compatible with omap4 keypad
- controller.
-
-Optional Properties specific to linux:
-- linux,keypad-no-autorepeat: do no enable autorepeat feature.
-
-Example:
- keypad@4ae1c000{
- compatible = "ti,omap4-keypad";
- keypad,num-rows = <2>;
- keypad,num-columns = <8>;
- linux,keypad-no-autorepeat;
- };
diff --git a/Documentation/devicetree/bindings/input/ti,omap4-keypad.yaml b/Documentation/devicetree/bindings/input/ti,omap4-keypad.yaml
new file mode 100644
index 000000000000..5e0c101f9ba0
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/ti,omap4-keypad.yaml
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/ti,omap4-keypad.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Keypad Controller
+
+maintainers:
+ - Eduard Bostina <egbostina@gmail.com>
+
+description:
+ TI's Keypad controller is used to interface a SoC with a matrix-type
+ keypad device. The keypad controller supports multiple row and column lines.
+ A key can be placed at each intersection of a unique row and a unique column.
+ The keypad controller can sense a key-press and key-release and report the
+ event using a interrupt to the cpu.
+
+allOf:
+ - $ref: /schemas/input/matrix-keymap.yaml#
+
+properties:
+ compatible:
+ const: ti,omap4-keypad
+
+ reg:
+ maxItems: 1
+
+ reg-names:
+ const: mpu
+
+ interrupts:
+ maxItems: 1
+
+ linux,input-no-autorepeat:
+ type: boolean
+ description: Do not enable autorepeat feature.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - keypad,num-rows
+ - keypad,num-columns
+ - linux,keymap
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ keypad@4ae1c000 {
+ compatible = "ti,omap4-keypad";
+ reg = <0x4ae1c000 0x400>;
+ reg-names = "mpu";
+ interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
+ keypad,num-rows = <2>;
+ keypad,num-columns = <8>;
+ linux,keymap = <0x00000011 /* KEY_W */
+ 0x0001001f>; /* KEY_S */
+ linux,input-no-autorepeat;
+ };
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v2 2/2] ARM: dts: ti: omap: Disable keypad and enable it on the boards that use it
2026-07-19 13:37 [PATCH v2 0/2] dt-bindings: input: Convert TI Keypad Controller to DT schema Eduard Bostina
2026-07-19 13:37 ` [PATCH v2 1/2] " Eduard Bostina
@ 2026-07-19 13:37 ` Eduard Bostina
1 sibling, 0 replies; 4+ messages in thread
From: Eduard Bostina @ 2026-07-19 13:37 UTC (permalink / raw)
To: Aaro Koskinen, Andreas Kemnade, Conor Dooley, devicetree,
Dmitry Torokhov, Eduard Bostina, Kevin Hilman,
Krzysztof Kozlowski, linux-input, linux-kernel, linux-omap,
Rob Herring, Roger Quadros, Tony Lindgren
Cc: daniel.baluta, simona.toaca, goledhruva, m-chawdhry
The keypad node in omap4-l4.dtsi and omap5-l4.dtsi lacks the matrix keymap,
which is board specific. The binding requires the matrix properties, so the
incomplete template nodes fail dtbs_check.
Mark the keypad disabled in the SoC files and enable it on the boards
that actually complete the node with a keymap.
Signed-off-by: Eduard Bostina <egbostina@gmail.com>
---
arch/arm/boot/dts/ti/omap/motorola-mapphone-mz607-mz617.dtsi | 2 ++
arch/arm/boot/dts/ti/omap/omap4-droid-bionic-xt875.dts | 2 ++
arch/arm/boot/dts/ti/omap/omap4-droid4-xt894.dts | 2 ++
arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts | 2 ++
arch/arm/boot/dts/ti/omap/omap4-l4.dtsi | 1 +
arch/arm/boot/dts/ti/omap/omap4-sdp.dts | 2 ++
arch/arm/boot/dts/ti/omap/omap5-l4.dtsi | 1 +
7 files changed, 12 insertions(+)
diff --git a/arch/arm/boot/dts/ti/omap/motorola-mapphone-mz607-mz617.dtsi b/arch/arm/boot/dts/ti/omap/motorola-mapphone-mz607-mz617.dtsi
index a356b3a2f24e..b97ab2906950 100644
--- a/arch/arm/boot/dts/ti/omap/motorola-mapphone-mz607-mz617.dtsi
+++ b/arch/arm/boot/dts/ti/omap/motorola-mapphone-mz607-mz617.dtsi
@@ -4,6 +4,8 @@
#include "motorola-mapphone-common.dtsi"
&keypad {
+ status = "okay";
+
keypad,num-rows = <8>;
keypad,num-columns = <8>;
linux,keymap = <MATRIX_KEY(5, 0, KEY_VOLUMEUP)>,
diff --git a/arch/arm/boot/dts/ti/omap/omap4-droid-bionic-xt875.dts b/arch/arm/boot/dts/ti/omap/omap4-droid-bionic-xt875.dts
index 1d9000f84f1b..e72ac17fdd96 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-droid-bionic-xt875.dts
+++ b/arch/arm/boot/dts/ti/omap/omap4-droid-bionic-xt875.dts
@@ -18,6 +18,8 @@ aliases {
};
&keypad {
+ status = "okay";
+
keypad,num-rows = <8>;
keypad,num-columns = <8>;
linux,keymap = <
diff --git a/arch/arm/boot/dts/ti/omap/omap4-droid4-xt894.dts b/arch/arm/boot/dts/ti/omap/omap4-droid4-xt894.dts
index cc3f3e1b65ea..62f87cf95f74 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-droid4-xt894.dts
+++ b/arch/arm/boot/dts/ti/omap/omap4-droid4-xt894.dts
@@ -46,6 +46,8 @@ slider {
};
&keypad {
+ status = "okay";
+
keypad,num-rows = <8>;
keypad,num-columns = <8>;
linux,keymap = <
diff --git a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
index e11d1931c42a..d51913620f06 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
+++ b/arch/arm/boot/dts/ti/omap/omap4-epson-embt2ws.dts
@@ -428,6 +428,8 @@ mpu9150: imu@68 {
};
&keypad {
+ status = "okay";
+
pinctrl-names = "default";
pinctrl-0 = <&keypad_pins>;
keypad,num-rows = <2>;
diff --git a/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi b/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
index c1afc49f456c..00f98991cc5c 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap4-l4.dtsi
@@ -1200,6 +1200,7 @@ keypad: keypad@0 {
reg = <0x0 0x80>;
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
reg-names = "mpu";
+ status = "disabled";
};
};
diff --git a/arch/arm/boot/dts/ti/omap/omap4-sdp.dts b/arch/arm/boot/dts/ti/omap/omap4-sdp.dts
index b550105585a1..a04234b3be2a 100644
--- a/arch/arm/boot/dts/ti/omap/omap4-sdp.dts
+++ b/arch/arm/boot/dts/ti/omap/omap4-sdp.dts
@@ -531,6 +531,8 @@ &emif2 {
};
&keypad {
+ status = "okay";
+
keypad,num-rows = <8>;
keypad,num-columns = <8>;
linux,keymap = <0x00000012 /* KEY_E */
diff --git a/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi b/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
index 72849e1c95b0..af32ca329930 100644
--- a/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
+++ b/arch/arm/boot/dts/ti/omap/omap5-l4.dtsi
@@ -2449,6 +2449,7 @@ target-module@c000 { /* 0x4ae1c000, ap 11 1c.0 */
keypad: keypad@0 {
compatible = "ti,omap4-keypad";
reg = <0x0 0x400>;
+ status = "disabled";
};
};
};
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread