xref: /openbmc/linux/Documentation/devicetree/bindings/input/mediatek,mt6779-keypad.yaml (revision db6da59cf27b5661ced03754ae0550f8914eda9e)
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