1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/input/mediatek,mt6779-keypad.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Mediatek's Keypad Controller 8 9maintainers: 10 - Mattijs Korpershoek <mkorpershoek@baylibre.com> 11 12allOf: 13 - $ref: "/schemas/input/matrix-keymap.yaml#" 14 15description: | 16 Mediatek's Keypad controller is used to interface a SoC with a matrix-type 17 keypad device. The keypad controller supports multiple row and column lines. 18 A key can be placed at each intersection of a unique row and a unique column. 19 The keypad controller can sense a key-press and key-release and report the 20 event using a interrupt to the cpu. 21 22properties: 23 compatible: 24 oneOf: 25 - const: mediatek,mt6779-keypad 26 - items: 27 - enum: 28 - mediatek,mt6873-keypad 29 - const: mediatek,mt6779-keypad 30 31 reg: 32 maxItems: 1 33 34 interrupts: 35 maxItems: 1 36 37 clocks: 38 maxItems: 1 39 40 clock-names: 41 items: 42 - const: kpd 43 44 wakeup-source: 45 description: use any event on keypad as wakeup event 46 type: boolean 47 48 debounce-delay-ms: 49 maximum: 256 50 default: 16 51 52 mediatek,keys-per-group: 53 description: each (row, column) group has multiple keys 54 $ref: /schemas/types.yaml#/definitions/uint32 55 default: 1 56 maximum: 2 57 58required: 59 - compatible 60 - reg 61 - interrupts 62 - clocks 63 - clock-names 64 65unevaluatedProperties: false 66 67examples: 68 - | 69 #include <dt-bindings/input/input.h> 70 #include <dt-bindings/interrupt-controller/arm-gic.h> 71 72 soc { 73 #address-cells = <2>; 74 #size-cells = <2>; 75 76 keyboard@10010000 { 77 compatible = "mediatek,mt6779-keypad"; 78 reg = <0 0x10010000 0 0x1000>; 79 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>; 80 clocks = <&clk26m>; 81 clock-names = "kpd"; 82 }; 83 }; 84