1612a0f0bSAngeloGioacchino Del Regno# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2612a0f0bSAngeloGioacchino Del Regno%YAML 1.2
3612a0f0bSAngeloGioacchino Del Regno---
4612a0f0bSAngeloGioacchino Del Regno$id: http://devicetree.org/schemas/input/mediatek,pmic-keys.yaml#
5612a0f0bSAngeloGioacchino Del Regno$schema: http://devicetree.org/meta-schemas/core.yaml#
6612a0f0bSAngeloGioacchino Del Regno
7612a0f0bSAngeloGioacchino Del Regnotitle: MediaTek PMIC Keys
8612a0f0bSAngeloGioacchino Del Regno
9612a0f0bSAngeloGioacchino Del Regnomaintainers:
10612a0f0bSAngeloGioacchino Del Regno  - Chen Zhong <chen.zhong@mediatek.com>
11612a0f0bSAngeloGioacchino Del Regno
12612a0f0bSAngeloGioacchino Del RegnoallOf:
13612a0f0bSAngeloGioacchino Del Regno  - $ref: input.yaml#
14612a0f0bSAngeloGioacchino Del Regno
15612a0f0bSAngeloGioacchino Del Regnodescription: |
16612a0f0bSAngeloGioacchino Del Regno  There are two key functions provided by MT6397, MT6323 and other MediaTek
17612a0f0bSAngeloGioacchino Del Regno  PMICs: pwrkey and homekey.
18612a0f0bSAngeloGioacchino Del Regno  The key functions are defined as the subnode of the function node provided
19612a0f0bSAngeloGioacchino Del Regno  by the PMIC that is defined as a Multi-Function Device (MFD).
20612a0f0bSAngeloGioacchino Del Regno
21612a0f0bSAngeloGioacchino Del Regno  For MediaTek MT6323/MT6397 PMIC bindings see
22612a0f0bSAngeloGioacchino Del Regno  Documentation/devicetree/bindings/mfd/mt6397.txt
23612a0f0bSAngeloGioacchino Del Regno
24612a0f0bSAngeloGioacchino Del Regnoproperties:
25612a0f0bSAngeloGioacchino Del Regno  compatible:
26612a0f0bSAngeloGioacchino Del Regno    enum:
27612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6323-keys
2860a884daSAngeloGioacchino Del Regno      - mediatek,mt6331-keys
29f32397bfSFabien Parent      - mediatek,mt6357-keys
30612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6358-keys
31612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6397-keys
32612a0f0bSAngeloGioacchino Del Regno
33612a0f0bSAngeloGioacchino Del Regno  power-off-time-sec: true
34612a0f0bSAngeloGioacchino Del Regno
35612a0f0bSAngeloGioacchino Del Regno  mediatek,long-press-mode:
36612a0f0bSAngeloGioacchino Del Regno    description: |
37612a0f0bSAngeloGioacchino Del Regno      Key long-press force shutdown setting
38612a0f0bSAngeloGioacchino Del Regno      0 - disabled
39612a0f0bSAngeloGioacchino Del Regno      1 - pwrkey
40612a0f0bSAngeloGioacchino Del Regno      2 - pwrkey+homekey
41612a0f0bSAngeloGioacchino Del Regno    $ref: /schemas/types.yaml#/definitions/uint32
42612a0f0bSAngeloGioacchino Del Regno    default: 0
43612a0f0bSAngeloGioacchino Del Regno    maximum: 2
44612a0f0bSAngeloGioacchino Del Regno
45612a0f0bSAngeloGioacchino Del RegnopatternProperties:
46612a0f0bSAngeloGioacchino Del Regno  "^((power|home)|(key-[a-z0-9-]+|[a-z0-9-]+-key))$":
47612a0f0bSAngeloGioacchino Del Regno    $ref: input.yaml#
48612a0f0bSAngeloGioacchino Del Regno
49612a0f0bSAngeloGioacchino Del Regno    properties:
50612a0f0bSAngeloGioacchino Del Regno      interrupts:
51612a0f0bSAngeloGioacchino Del Regno        minItems: 1
52612a0f0bSAngeloGioacchino Del Regno        items:
53612a0f0bSAngeloGioacchino Del Regno          - description: Key press interrupt
54612a0f0bSAngeloGioacchino Del Regno          - description: Key release interrupt
55612a0f0bSAngeloGioacchino Del Regno
56612a0f0bSAngeloGioacchino Del Regno      interrupt-names: true
57612a0f0bSAngeloGioacchino Del Regno
58*f30e0430SRob Herring      linux,keycodes:
59612a0f0bSAngeloGioacchino Del Regno        maxItems: 1
60612a0f0bSAngeloGioacchino Del Regno
61612a0f0bSAngeloGioacchino Del Regno      wakeup-source: true
62612a0f0bSAngeloGioacchino Del Regno
63612a0f0bSAngeloGioacchino Del Regno    required:
64612a0f0bSAngeloGioacchino Del Regno      - linux,keycodes
65612a0f0bSAngeloGioacchino Del Regno
66612a0f0bSAngeloGioacchino Del Regno    if:
67612a0f0bSAngeloGioacchino Del Regno      properties:
68612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
69612a0f0bSAngeloGioacchino Del Regno          contains:
70612a0f0bSAngeloGioacchino Del Regno            const: powerkey
71612a0f0bSAngeloGioacchino Del Regno    then:
72612a0f0bSAngeloGioacchino Del Regno      properties:
73612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
74612a0f0bSAngeloGioacchino Del Regno          minItems: 1
75612a0f0bSAngeloGioacchino Del Regno          items:
76612a0f0bSAngeloGioacchino Del Regno            - const: powerkey
77612a0f0bSAngeloGioacchino Del Regno            - const: powerkey_r
78612a0f0bSAngeloGioacchino Del Regno    else:
79612a0f0bSAngeloGioacchino Del Regno      properties:
80612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
81612a0f0bSAngeloGioacchino Del Regno          minItems: 1
82612a0f0bSAngeloGioacchino Del Regno          items:
83612a0f0bSAngeloGioacchino Del Regno            - const: homekey
84612a0f0bSAngeloGioacchino Del Regno            - const: homekey_r
85612a0f0bSAngeloGioacchino Del Regno
86612a0f0bSAngeloGioacchino Del Regno    unevaluatedProperties: false
87612a0f0bSAngeloGioacchino Del Regno
88612a0f0bSAngeloGioacchino Del Regnorequired:
89612a0f0bSAngeloGioacchino Del Regno  - compatible
90612a0f0bSAngeloGioacchino Del Regno
91612a0f0bSAngeloGioacchino Del RegnounevaluatedProperties: false
92612a0f0bSAngeloGioacchino Del Regno
93612a0f0bSAngeloGioacchino Del Regnoexamples:
94612a0f0bSAngeloGioacchino Del Regno  - |
95612a0f0bSAngeloGioacchino Del Regno    #include <dt-bindings/input/input.h>
96612a0f0bSAngeloGioacchino Del Regno    #include <dt-bindings/interrupt-controller/arm-gic.h>
97612a0f0bSAngeloGioacchino Del Regno
98612a0f0bSAngeloGioacchino Del Regno    pmic {
99612a0f0bSAngeloGioacchino Del Regno        compatible = "mediatek,mt6397";
100612a0f0bSAngeloGioacchino Del Regno
101612a0f0bSAngeloGioacchino Del Regno        keys {
102612a0f0bSAngeloGioacchino Del Regno          compatible = "mediatek,mt6397-keys";
103612a0f0bSAngeloGioacchino Del Regno          mediatek,long-press-mode = <1>;
104612a0f0bSAngeloGioacchino Del Regno          power-off-time-sec = <0>;
105612a0f0bSAngeloGioacchino Del Regno
106612a0f0bSAngeloGioacchino Del Regno          key-power {
107612a0f0bSAngeloGioacchino Del Regno            linux,keycodes = <KEY_POWER>;
108612a0f0bSAngeloGioacchino Del Regno            wakeup-source;
109612a0f0bSAngeloGioacchino Del Regno          };
110612a0f0bSAngeloGioacchino Del Regno
111612a0f0bSAngeloGioacchino Del Regno          key-home {
112612a0f0bSAngeloGioacchino Del Regno            linux,keycodes = <KEY_VOLUMEDOWN>;
113612a0f0bSAngeloGioacchino Del Regno          };
114612a0f0bSAngeloGioacchino Del Regno        };
115612a0f0bSAngeloGioacchino Del Regno    };
116