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 <[email protected]> 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 - mediatek,mt8183-keypad 30 - mediatek,mt8365-keypad 31 - mediatek,mt8516-keypad 32 - const: mediatek,mt6779-keypad 33 34 reg: 35 maxItems: 1 36 37 interrupts: 38 maxItems: 1 39 40 clocks: 41 maxItems: 1 42 43 clock-names: 44 items: 45 - const: kpd 46 47 wakeup-source: 48 description: use any event on keypad as wakeup event 49 type: boolean 50 51 debounce-delay-ms: 52 maximum: 256 53 default: 16 54 55 mediatek,keys-per-group: 56 description: each (row, column) group has multiple keys 57 $ref: /schemas/types.yaml#/definitions/uint32 58 default: 1 59 maximum: 2 60 61required: 62 - compatible 63 - reg 64 - interrupts 65 - clocks 66 - clock-names 67 68unevaluatedProperties: false 69 70examples: 71 - | 72 #include <dt-bindings/input/input.h> 73 #include <dt-bindings/interrupt-controller/arm-gic.h> 74 75 soc { 76 #address-cells = <2>; 77 #size-cells = <2>; 78 79 keyboard@10010000 { 80 compatible = "mediatek,mt6779-keypad"; 81 reg = <0 0x10010000 0 0x1000>; 82 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>; 83 clocks = <&clk26m>; 84 clock-names = "kpd"; 85 }; 86 }; 87