160b2a803Sfengping.yu# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 260b2a803Sfengping.yu%YAML 1.2 360b2a803Sfengping.yu--- 460b2a803Sfengping.yu$id: http://devicetree.org/schemas/input/mediatek,mt6779-keypad.yaml# 560b2a803Sfengping.yu$schema: http://devicetree.org/meta-schemas/core.yaml# 660b2a803Sfengping.yu 7dd3cb467SAndrew Lunntitle: Mediatek's Keypad Controller 860b2a803Sfengping.yu 960b2a803Sfengping.yumaintainers: 1070509676SMattijs Korpershoek - Mattijs Korpershoek <mkorpershoek@baylibre.com> 1160b2a803Sfengping.yu 1260b2a803Sfengping.yuallOf: 13*fcb52d7dSRob Herring - $ref: /schemas/input/matrix-keymap.yaml# 1460b2a803Sfengping.yu 1560b2a803Sfengping.yudescription: | 1660b2a803Sfengping.yu Mediatek's Keypad controller is used to interface a SoC with a matrix-type 1760b2a803Sfengping.yu keypad device. The keypad controller supports multiple row and column lines. 1860b2a803Sfengping.yu A key can be placed at each intersection of a unique row and a unique column. 1960b2a803Sfengping.yu The keypad controller can sense a key-press and key-release and report the 2060b2a803Sfengping.yu event using a interrupt to the cpu. 2160b2a803Sfengping.yu 2260b2a803Sfengping.yuproperties: 2360b2a803Sfengping.yu compatible: 2460b2a803Sfengping.yu oneOf: 2560b2a803Sfengping.yu - const: mediatek,mt6779-keypad 2660b2a803Sfengping.yu - items: 2760b2a803Sfengping.yu - enum: 2860b2a803Sfengping.yu - mediatek,mt6873-keypad 2960b2a803Sfengping.yu - const: mediatek,mt6779-keypad 3060b2a803Sfengping.yu 3160b2a803Sfengping.yu reg: 3260b2a803Sfengping.yu maxItems: 1 3360b2a803Sfengping.yu 3460b2a803Sfengping.yu interrupts: 3560b2a803Sfengping.yu maxItems: 1 3660b2a803Sfengping.yu 3760b2a803Sfengping.yu clocks: 3860b2a803Sfengping.yu maxItems: 1 3960b2a803Sfengping.yu 4060b2a803Sfengping.yu clock-names: 4160b2a803Sfengping.yu items: 4260b2a803Sfengping.yu - const: kpd 4360b2a803Sfengping.yu 4460b2a803Sfengping.yu wakeup-source: 4560b2a803Sfengping.yu description: use any event on keypad as wakeup event 4660b2a803Sfengping.yu type: boolean 4760b2a803Sfengping.yu 4860b2a803Sfengping.yu debounce-delay-ms: 4960b2a803Sfengping.yu maximum: 256 5060b2a803Sfengping.yu default: 16 5160b2a803Sfengping.yu 5224f9cde3SMattijs Korpershoek mediatek,keys-per-group: 5324f9cde3SMattijs Korpershoek description: each (row, column) group has multiple keys 5424f9cde3SMattijs Korpershoek $ref: /schemas/types.yaml#/definitions/uint32 5524f9cde3SMattijs Korpershoek default: 1 5624f9cde3SMattijs Korpershoek maximum: 2 5724f9cde3SMattijs Korpershoek 5860b2a803Sfengping.yurequired: 5960b2a803Sfengping.yu - compatible 6060b2a803Sfengping.yu - reg 6160b2a803Sfengping.yu - interrupts 6260b2a803Sfengping.yu - clocks 6360b2a803Sfengping.yu - clock-names 6460b2a803Sfengping.yu 65fe2281d6SMattijs KorpershoekunevaluatedProperties: false 6660b2a803Sfengping.yu 6760b2a803Sfengping.yuexamples: 6860b2a803Sfengping.yu - | 6960b2a803Sfengping.yu #include <dt-bindings/input/input.h> 7060b2a803Sfengping.yu #include <dt-bindings/interrupt-controller/arm-gic.h> 7160b2a803Sfengping.yu 7260b2a803Sfengping.yu soc { 7360b2a803Sfengping.yu #address-cells = <2>; 7460b2a803Sfengping.yu #size-cells = <2>; 7560b2a803Sfengping.yu 7660b2a803Sfengping.yu keyboard@10010000 { 7760b2a803Sfengping.yu compatible = "mediatek,mt6779-keypad"; 7860b2a803Sfengping.yu reg = <0 0x10010000 0 0x1000>; 7960b2a803Sfengping.yu interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>; 8060b2a803Sfengping.yu clocks = <&clk26m>; 8160b2a803Sfengping.yu clock-names = "kpd"; 8260b2a803Sfengping.yu }; 8360b2a803Sfengping.yu }; 84