162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/input/mediatek,pmic-keys.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: MediaTek PMIC Keys 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Chen Zhong <chen.zhong@mediatek.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciallOf: 1362306a36Sopenharmony_ci - $ref: input.yaml# 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cidescription: | 1662306a36Sopenharmony_ci There are two key functions provided by MT6397, MT6323 and other MediaTek 1762306a36Sopenharmony_ci PMICs: pwrkey and homekey. 1862306a36Sopenharmony_ci The key functions are defined as the subnode of the function node provided 1962306a36Sopenharmony_ci by the PMIC that is defined as a Multi-Function Device (MFD). 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci For MediaTek MT6323/MT6397 PMIC bindings see 2262306a36Sopenharmony_ci Documentation/devicetree/bindings/mfd/mt6397.txt 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciproperties: 2562306a36Sopenharmony_ci compatible: 2662306a36Sopenharmony_ci enum: 2762306a36Sopenharmony_ci - mediatek,mt6323-keys 2862306a36Sopenharmony_ci - mediatek,mt6331-keys 2962306a36Sopenharmony_ci - mediatek,mt6357-keys 3062306a36Sopenharmony_ci - mediatek,mt6358-keys 3162306a36Sopenharmony_ci - mediatek,mt6397-keys 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci power-off-time-sec: true 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci mediatek,long-press-mode: 3662306a36Sopenharmony_ci description: | 3762306a36Sopenharmony_ci Key long-press force shutdown setting 3862306a36Sopenharmony_ci 0 - disabled 3962306a36Sopenharmony_ci 1 - pwrkey 4062306a36Sopenharmony_ci 2 - pwrkey+homekey 4162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 4262306a36Sopenharmony_ci default: 0 4362306a36Sopenharmony_ci maximum: 2 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_cipatternProperties: 4662306a36Sopenharmony_ci "^((power|home)|(key-[a-z0-9-]+|[a-z0-9-]+-key))$": 4762306a36Sopenharmony_ci $ref: input.yaml# 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci properties: 5062306a36Sopenharmony_ci interrupts: 5162306a36Sopenharmony_ci minItems: 1 5262306a36Sopenharmony_ci items: 5362306a36Sopenharmony_ci - description: Key press interrupt 5462306a36Sopenharmony_ci - description: Key release interrupt 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci interrupt-names: true 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci linux,keycodes: 5962306a36Sopenharmony_ci maxItems: 1 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci wakeup-source: true 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci required: 6462306a36Sopenharmony_ci - linux,keycodes 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci if: 6762306a36Sopenharmony_ci properties: 6862306a36Sopenharmony_ci interrupt-names: 6962306a36Sopenharmony_ci contains: 7062306a36Sopenharmony_ci const: powerkey 7162306a36Sopenharmony_ci then: 7262306a36Sopenharmony_ci properties: 7362306a36Sopenharmony_ci interrupt-names: 7462306a36Sopenharmony_ci minItems: 1 7562306a36Sopenharmony_ci items: 7662306a36Sopenharmony_ci - const: powerkey 7762306a36Sopenharmony_ci - const: powerkey_r 7862306a36Sopenharmony_ci else: 7962306a36Sopenharmony_ci properties: 8062306a36Sopenharmony_ci interrupt-names: 8162306a36Sopenharmony_ci minItems: 1 8262306a36Sopenharmony_ci items: 8362306a36Sopenharmony_ci - const: homekey 8462306a36Sopenharmony_ci - const: homekey_r 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci unevaluatedProperties: false 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_cirequired: 8962306a36Sopenharmony_ci - compatible 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciunevaluatedProperties: false 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ciexamples: 9462306a36Sopenharmony_ci - | 9562306a36Sopenharmony_ci #include <dt-bindings/input/input.h> 9662306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci pmic { 9962306a36Sopenharmony_ci compatible = "mediatek,mt6397"; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci keys { 10262306a36Sopenharmony_ci compatible = "mediatek,mt6397-keys"; 10362306a36Sopenharmony_ci mediatek,long-press-mode = <1>; 10462306a36Sopenharmony_ci power-off-time-sec = <0>; 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci key-power { 10762306a36Sopenharmony_ci linux,keycodes = <KEY_POWER>; 10862306a36Sopenharmony_ci wakeup-source; 10962306a36Sopenharmony_ci }; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci key-home { 11262306a36Sopenharmony_ci linux,keycodes = <KEY_VOLUMEDOWN>; 11362306a36Sopenharmony_ci }; 11462306a36Sopenharmony_ci }; 11562306a36Sopenharmony_ci }; 116