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
28*60a884daSAngeloGioacchino Del Regno      - mediatek,mt6331-keys
29612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6358-keys
30612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6397-keys
31612a0f0bSAngeloGioacchino Del Regno
32612a0f0bSAngeloGioacchino Del Regno  power-off-time-sec: true
33612a0f0bSAngeloGioacchino Del Regno
34612a0f0bSAngeloGioacchino Del Regno  mediatek,long-press-mode:
35612a0f0bSAngeloGioacchino Del Regno    description: |
36612a0f0bSAngeloGioacchino Del Regno      Key long-press force shutdown setting
37612a0f0bSAngeloGioacchino Del Regno      0 - disabled
38612a0f0bSAngeloGioacchino Del Regno      1 - pwrkey
39612a0f0bSAngeloGioacchino Del Regno      2 - pwrkey+homekey
40612a0f0bSAngeloGioacchino Del Regno    $ref: /schemas/types.yaml#/definitions/uint32
41612a0f0bSAngeloGioacchino Del Regno    default: 0
42612a0f0bSAngeloGioacchino Del Regno    maximum: 2
43612a0f0bSAngeloGioacchino Del Regno
44612a0f0bSAngeloGioacchino Del RegnopatternProperties:
45612a0f0bSAngeloGioacchino Del Regno  "^((power|home)|(key-[a-z0-9-]+|[a-z0-9-]+-key))$":
46612a0f0bSAngeloGioacchino Del Regno    $ref: input.yaml#
47612a0f0bSAngeloGioacchino Del Regno
48612a0f0bSAngeloGioacchino Del Regno    properties:
49612a0f0bSAngeloGioacchino Del Regno      interrupts:
50612a0f0bSAngeloGioacchino Del Regno        minItems: 1
51612a0f0bSAngeloGioacchino Del Regno        items:
52612a0f0bSAngeloGioacchino Del Regno          - description: Key press interrupt
53612a0f0bSAngeloGioacchino Del Regno          - description: Key release interrupt
54612a0f0bSAngeloGioacchino Del Regno
55612a0f0bSAngeloGioacchino Del Regno      interrupt-names: true
56612a0f0bSAngeloGioacchino Del Regno
57612a0f0bSAngeloGioacchino Del Regno      linux-keycodes:
58612a0f0bSAngeloGioacchino Del Regno        maxItems: 1
59612a0f0bSAngeloGioacchino Del Regno
60612a0f0bSAngeloGioacchino Del Regno      wakeup-source: true
61612a0f0bSAngeloGioacchino Del Regno
62612a0f0bSAngeloGioacchino Del Regno    required:
63612a0f0bSAngeloGioacchino Del Regno      - linux,keycodes
64612a0f0bSAngeloGioacchino Del Regno
65612a0f0bSAngeloGioacchino Del Regno    if:
66612a0f0bSAngeloGioacchino Del Regno      properties:
67612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
68612a0f0bSAngeloGioacchino Del Regno          contains:
69612a0f0bSAngeloGioacchino Del Regno            const: powerkey
70612a0f0bSAngeloGioacchino Del Regno    then:
71612a0f0bSAngeloGioacchino Del Regno      properties:
72612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
73612a0f0bSAngeloGioacchino Del Regno          minItems: 1
74612a0f0bSAngeloGioacchino Del Regno          items:
75612a0f0bSAngeloGioacchino Del Regno            - const: powerkey
76612a0f0bSAngeloGioacchino Del Regno            - const: powerkey_r
77612a0f0bSAngeloGioacchino Del Regno    else:
78612a0f0bSAngeloGioacchino Del Regno      properties:
79612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
80612a0f0bSAngeloGioacchino Del Regno          minItems: 1
81612a0f0bSAngeloGioacchino Del Regno          items:
82612a0f0bSAngeloGioacchino Del Regno            - const: homekey
83612a0f0bSAngeloGioacchino Del Regno            - const: homekey_r
84612a0f0bSAngeloGioacchino Del Regno
85612a0f0bSAngeloGioacchino Del Regno    unevaluatedProperties: false
86612a0f0bSAngeloGioacchino Del Regno
87612a0f0bSAngeloGioacchino Del Regnorequired:
88612a0f0bSAngeloGioacchino Del Regno  - compatible
89612a0f0bSAngeloGioacchino Del Regno
90612a0f0bSAngeloGioacchino Del RegnounevaluatedProperties: false
91612a0f0bSAngeloGioacchino Del Regno
92612a0f0bSAngeloGioacchino Del Regnoexamples:
93612a0f0bSAngeloGioacchino Del Regno  - |
94612a0f0bSAngeloGioacchino Del Regno    #include <dt-bindings/input/input.h>
95612a0f0bSAngeloGioacchino Del Regno    #include <dt-bindings/interrupt-controller/arm-gic.h>
96612a0f0bSAngeloGioacchino Del Regno
97612a0f0bSAngeloGioacchino Del Regno    pmic {
98612a0f0bSAngeloGioacchino Del Regno        compatible = "mediatek,mt6397";
99612a0f0bSAngeloGioacchino Del Regno
100612a0f0bSAngeloGioacchino Del Regno        keys {
101612a0f0bSAngeloGioacchino Del Regno          compatible = "mediatek,mt6397-keys";
102612a0f0bSAngeloGioacchino Del Regno          mediatek,long-press-mode = <1>;
103612a0f0bSAngeloGioacchino Del Regno          power-off-time-sec = <0>;
104612a0f0bSAngeloGioacchino Del Regno
105612a0f0bSAngeloGioacchino Del Regno          key-power {
106612a0f0bSAngeloGioacchino Del Regno            linux,keycodes = <KEY_POWER>;
107612a0f0bSAngeloGioacchino Del Regno            wakeup-source;
108612a0f0bSAngeloGioacchino Del Regno          };
109612a0f0bSAngeloGioacchino Del Regno
110612a0f0bSAngeloGioacchino Del Regno          key-home {
111612a0f0bSAngeloGioacchino Del Regno            linux,keycodes = <KEY_VOLUMEDOWN>;
112612a0f0bSAngeloGioacchino Del Regno          };
113612a0f0bSAngeloGioacchino Del Regno        };
114612a0f0bSAngeloGioacchino Del Regno    };
115