| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/input/mediatek,mt6779-keypad.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Mediatek's Keypad Controller |
| |
| maintainers: |
| - Mattijs Korpershoek <mkorpershoek@baylibre.com> |
| |
| allOf: |
| - $ref: /schemas/input/matrix-keymap.yaml# |
| |
| description: | |
| Mediatek's Keypad controller is used to interface a SoC with a matrix-type |
| keypad device. The keypad controller supports multiple row and column lines. |
| A key can be placed at each intersection of a unique row and a unique column. |
| The keypad controller can sense a key-press and key-release and report the |
| event using a interrupt to the cpu. |
| |
| properties: |
| compatible: |
| oneOf: |
| - const: mediatek,mt6779-keypad |
| - items: |
| - enum: |
| - mediatek,mt6873-keypad |
| - const: mediatek,mt6779-keypad |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| clocks: |
| maxItems: 1 |
| |
| clock-names: |
| items: |
| - const: kpd |
| |
| wakeup-source: |
| description: use any event on keypad as wakeup event |
| type: boolean |
| |
| debounce-delay-ms: |
| maximum: 256 |
| default: 16 |
| |
| mediatek,keys-per-group: |
| description: each (row, column) group has multiple keys |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| default: 1 |
| maximum: 2 |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - clocks |
| - clock-names |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/input/input.h> |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| |
| soc { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| keyboard@10010000 { |
| compatible = "mediatek,mt6779-keypad"; |
| reg = <0 0x10010000 0 0x1000>; |
| interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_FALLING>; |
| clocks = <&clk26m>; |
| clock-names = "kpd"; |
| }; |
| }; |