On Thu, Jun 01, 2023 at 08:45:32AM +0300, Nikita Shubin wrote: > Add YAML bindings for ep93xx SoC keypad. > > Signed-off-by: Nikita Shubin <nikita.shubin@xxxxxxxxxxx> > --- > > Notes: > v0 -> v1: > > - remove almost all but debounce-delay-ms and prescale > - s/ep9301-keypad/ep9307-keypad/ it's actually only for > ep9307, ep9312, ep9315 > > Krzysztof Kozlowski: > - renamed file > - changed maintainers > - dropped quotes > - dropped clock-names > - use fallback compatible and list all possible compatibles > - fix ident > > .../bindings/input/cirrus,ep9307-keypad.yaml | 86 +++++++++++++++++++ > 1 file changed, 86 insertions(+) > create mode 100644 Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml > > diff --git a/Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml b/Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml > new file mode 100644 > index 000000000000..c7eb10a84a6b > --- /dev/null > +++ b/Documentation/devicetree/bindings/input/cirrus,ep9307-keypad.yaml > @@ -0,0 +1,86 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/input/cirrus,ep9307-keypad.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Cirrus ep93xx keypad > + > +maintainers: > + - Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > + > +allOf: > + - $ref: /schemas/input/matrix-keymap.yaml# > + > +description: | Don't need '|'. > + The KPP is designed to interface with a keypad matrix with 2-point contact > + or 3-point contact keys. The KPP is designed to simplify the software task > + of scanning a keypad matrix. The KPP is capable of detecting, debouncing, > + and decoding one or multiple keys pressed simultaneously on a keypad. > + > +properties: > + compatible: > + oneOf: > + - const: cirrus,ep9307-keypad > + - items: > + - enum: > + - cirrus,ep9312-keypad > + - cirrus,ep9315-keypad > + - const: cirrus,ep9307-keypad > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + cirrus,debounce-delay-ms: Use the somewhat standard 'debounce-delay-ms'. > + description: | > + Time in microseconds that key must be pressed or > + released for state change interrupt to trigger. > + > + cirrus,prescale: > + description: row/column counter pre-scaler load value > + $ref: /schemas/types.yaml#/definitions/uint32 Constraints? > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - linux,keymap > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/cirrus,ep93xx-clock.h> > + #include <dt-bindings/input/input.h> > + keypad@800f0000 { > + compatible = "cirrus,ep9301-keypad"; > + reg = <0x800f0000 0x0c>; > + interrupt-parent = <&vic0>; > + interrupts = <29>; > + clocks = <&syscon EP93XX_CLK_KEYPAD>; > + pinctrl-names = "default"; > + pinctrl-0 = <&keypad_default_pins>; > + linux,keymap = <KEY_UP>, > + <KEY_DOWN>, > + <KEY_VOLUMEDOWN>, > + <KEY_HOME>, > + <KEY_RIGHT>, > + <KEY_LEFT>, > + <KEY_ENTER>, > + <KEY_VOLUMEUP>, > + <KEY_F6>, > + <KEY_F8>, > + <KEY_F9>, > + <KEY_F10>, > + <KEY_F1>, > + <KEY_F2>, > + <KEY_F3>, > + <KEY_POWER>; > + }; > -- > 2.37.4 >