88 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/input/cirrus,ep9307-keypad.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Cirrus ep93xx keypad8 9maintainers:10 - Alexander Sverdlin <alexander.sverdlin@gmail.com>11 12allOf:13 - $ref: /schemas/input/matrix-keymap.yaml#14 15description:16 The KPP is designed to interface with a keypad matrix with 2-point contact17 or 3-point contact keys. The KPP is designed to simplify the software task18 of scanning a keypad matrix. The KPP is capable of detecting, debouncing,19 and decoding one or multiple keys pressed simultaneously on a keypad.20 21properties:22 compatible:23 oneOf:24 - const: cirrus,ep9307-keypad25 - items:26 - enum:27 - cirrus,ep9312-keypad28 - cirrus,ep9315-keypad29 - const: cirrus,ep9307-keypad30 31 reg:32 maxItems: 133 34 interrupts:35 maxItems: 136 37 clocks:38 maxItems: 139 40 debounce-delay-ms:41 description: |42 Time in microseconds that key must be pressed or43 released for state change interrupt to trigger.44 45 cirrus,prescale:46 description: row/column counter pre-scaler load value47 $ref: /schemas/types.yaml#/definitions/uint1648 maximum: 102349 50required:51 - compatible52 - reg53 - interrupts54 - clocks55 - linux,keymap56 57unevaluatedProperties: false58 59examples:60 - |61 #include <dt-bindings/input/input.h>62 #include <dt-bindings/clock/cirrus,ep9301-syscon.h>63 keypad@800f0000 {64 compatible = "cirrus,ep9307-keypad";65 reg = <0x800f0000 0x0c>;66 interrupt-parent = <&vic0>;67 interrupts = <29>;68 clocks = <&eclk EP93XX_CLK_KEYPAD>;69 pinctrl-names = "default";70 pinctrl-0 = <&keypad_default_pins>;71 linux,keymap = <KEY_UP>,72 <KEY_DOWN>,73 <KEY_VOLUMEDOWN>,74 <KEY_HOME>,75 <KEY_RIGHT>,76 <KEY_LEFT>,77 <KEY_ENTER>,78 <KEY_VOLUMEUP>,79 <KEY_F6>,80 <KEY_F8>,81 <KEY_F9>,82 <KEY_F10>,83 <KEY_F1>,84 <KEY_F2>,85 <KEY_F3>,86 <KEY_POWER>;87 };88