| # 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@kernel.org> | |
| allOf: | |
| - $ref: input.yaml# | |
| - $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,mt6572-keypad | |
| - mediatek,mt6873-keypad | |
| - mediatek,mt8183-keypad | |
| - mediatek,mt8365-keypad | |
| - mediatek,mt8516-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"; | |
| }; | |
| }; |