# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/input/mediatek,pmic-keys.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: MediaTek PMIC Keys maintainers: - Chen Zhong <chen.zhong@mediatek.com> allOf: - $ref: input.yaml# description: | There are two key functions provided by MT6397, MT6323 and other MediaTek PMICs: pwrkey and homekey. The key functions are defined as the subnode of the function node provided by the PMIC that is defined as a Multi-Function Device (MFD). For MediaTek MT6323/MT6397 PMIC bindings see Documentation/devicetree/bindings/mfd/mt6397.txt properties: compatible: enum: - mediatek,mt6323-keys - mediatek,mt6331-keys - mediatek,mt6357-keys - mediatek,mt6358-keys - mediatek,mt6397-keys power-off-time-sec: true mediatek,long-press-mode: description: | Key long-press force shutdown setting 0 - disabled 1 - pwrkey 2 - pwrkey+homekey $ref: /schemas/types.yaml#/definitions/uint32 default: 0 maximum: 2 patternProperties: "^((power|home)|(key-[a-z0-9-]+|[a-z0-9-]+-key))$": $ref: input.yaml# properties: interrupts: minItems: 1 items: - description: Key press interrupt - description: Key release interrupt interrupt-names: true linux,keycodes: maxItems: 1 wakeup-source: true required: - linux,keycodes if: properties: interrupt-names: contains: const: powerkey then: properties: interrupt-names: minItems: 1 items: - const: powerkey - const: powerkey_r else: properties: interrupt-names: minItems: 1 items: - const: homekey - const: homekey_r unevaluatedProperties: false required: - compatible unevaluatedProperties: false examples: - | #include <dt-bindings/input/input.h> #include <dt-bindings/interrupt-controller/arm-gic.h> pmic { compatible = "mediatek,mt6397"; keys { compatible = "mediatek,mt6397-keys"; mediatek,long-press-mode = <1>; power-off-time-sec = <0>; key-power { linux,keycodes = <KEY_POWER>; wakeup-source; }; key-home { linux,keycodes = <KEY_VOLUMEDOWN>; }; }; };