1*612a0f0bSAngeloGioacchino Del Regno# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*612a0f0bSAngeloGioacchino Del Regno%YAML 1.2
3*612a0f0bSAngeloGioacchino Del Regno---
4*612a0f0bSAngeloGioacchino Del Regno$id: http://devicetree.org/schemas/input/mediatek,pmic-keys.yaml#
5*612a0f0bSAngeloGioacchino Del Regno$schema: http://devicetree.org/meta-schemas/core.yaml#
6*612a0f0bSAngeloGioacchino Del Regno
7*612a0f0bSAngeloGioacchino Del Regnotitle: MediaTek PMIC Keys
8*612a0f0bSAngeloGioacchino Del Regno
9*612a0f0bSAngeloGioacchino Del Regnomaintainers:
10*612a0f0bSAngeloGioacchino Del Regno  - Chen Zhong <chen.zhong@mediatek.com>
11*612a0f0bSAngeloGioacchino Del Regno
12*612a0f0bSAngeloGioacchino Del RegnoallOf:
13*612a0f0bSAngeloGioacchino Del Regno  - $ref: input.yaml#
14*612a0f0bSAngeloGioacchino Del Regno
15*612a0f0bSAngeloGioacchino Del Regnodescription: |
16*612a0f0bSAngeloGioacchino Del Regno  There are two key functions provided by MT6397, MT6323 and other MediaTek
17*612a0f0bSAngeloGioacchino Del Regno  PMICs: pwrkey and homekey.
18*612a0f0bSAngeloGioacchino Del Regno  The key functions are defined as the subnode of the function node provided
19*612a0f0bSAngeloGioacchino Del Regno  by the PMIC that is defined as a Multi-Function Device (MFD).
20*612a0f0bSAngeloGioacchino Del Regno
21*612a0f0bSAngeloGioacchino Del Regno  For MediaTek MT6323/MT6397 PMIC bindings see
22*612a0f0bSAngeloGioacchino Del Regno  Documentation/devicetree/bindings/mfd/mt6397.txt
23*612a0f0bSAngeloGioacchino Del Regno
24*612a0f0bSAngeloGioacchino Del Regnoproperties:
25*612a0f0bSAngeloGioacchino Del Regno  compatible:
26*612a0f0bSAngeloGioacchino Del Regno    enum:
27*612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6323-keys
28*612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6358-keys
29*612a0f0bSAngeloGioacchino Del Regno      - mediatek,mt6397-keys
30*612a0f0bSAngeloGioacchino Del Regno
31*612a0f0bSAngeloGioacchino Del Regno  power-off-time-sec: true
32*612a0f0bSAngeloGioacchino Del Regno
33*612a0f0bSAngeloGioacchino Del Regno  mediatek,long-press-mode:
34*612a0f0bSAngeloGioacchino Del Regno    description: |
35*612a0f0bSAngeloGioacchino Del Regno      Key long-press force shutdown setting
36*612a0f0bSAngeloGioacchino Del Regno      0 - disabled
37*612a0f0bSAngeloGioacchino Del Regno      1 - pwrkey
38*612a0f0bSAngeloGioacchino Del Regno      2 - pwrkey+homekey
39*612a0f0bSAngeloGioacchino Del Regno    $ref: /schemas/types.yaml#/definitions/uint32
40*612a0f0bSAngeloGioacchino Del Regno    default: 0
41*612a0f0bSAngeloGioacchino Del Regno    maximum: 2
42*612a0f0bSAngeloGioacchino Del Regno
43*612a0f0bSAngeloGioacchino Del RegnopatternProperties:
44*612a0f0bSAngeloGioacchino Del Regno  "^((power|home)|(key-[a-z0-9-]+|[a-z0-9-]+-key))$":
45*612a0f0bSAngeloGioacchino Del Regno    $ref: input.yaml#
46*612a0f0bSAngeloGioacchino Del Regno
47*612a0f0bSAngeloGioacchino Del Regno    properties:
48*612a0f0bSAngeloGioacchino Del Regno      interrupts:
49*612a0f0bSAngeloGioacchino Del Regno        minItems: 1
50*612a0f0bSAngeloGioacchino Del Regno        items:
51*612a0f0bSAngeloGioacchino Del Regno          - description: Key press interrupt
52*612a0f0bSAngeloGioacchino Del Regno          - description: Key release interrupt
53*612a0f0bSAngeloGioacchino Del Regno
54*612a0f0bSAngeloGioacchino Del Regno      interrupt-names: true
55*612a0f0bSAngeloGioacchino Del Regno
56*612a0f0bSAngeloGioacchino Del Regno      linux-keycodes:
57*612a0f0bSAngeloGioacchino Del Regno        maxItems: 1
58*612a0f0bSAngeloGioacchino Del Regno
59*612a0f0bSAngeloGioacchino Del Regno      wakeup-source: true
60*612a0f0bSAngeloGioacchino Del Regno
61*612a0f0bSAngeloGioacchino Del Regno    required:
62*612a0f0bSAngeloGioacchino Del Regno      - linux,keycodes
63*612a0f0bSAngeloGioacchino Del Regno
64*612a0f0bSAngeloGioacchino Del Regno    if:
65*612a0f0bSAngeloGioacchino Del Regno      properties:
66*612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
67*612a0f0bSAngeloGioacchino Del Regno          contains:
68*612a0f0bSAngeloGioacchino Del Regno            const: powerkey
69*612a0f0bSAngeloGioacchino Del Regno    then:
70*612a0f0bSAngeloGioacchino Del Regno      properties:
71*612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
72*612a0f0bSAngeloGioacchino Del Regno          minItems: 1
73*612a0f0bSAngeloGioacchino Del Regno          items:
74*612a0f0bSAngeloGioacchino Del Regno            - const: powerkey
75*612a0f0bSAngeloGioacchino Del Regno            - const: powerkey_r
76*612a0f0bSAngeloGioacchino Del Regno    else:
77*612a0f0bSAngeloGioacchino Del Regno      properties:
78*612a0f0bSAngeloGioacchino Del Regno        interrupt-names:
79*612a0f0bSAngeloGioacchino Del Regno          minItems: 1
80*612a0f0bSAngeloGioacchino Del Regno          items:
81*612a0f0bSAngeloGioacchino Del Regno            - const: homekey
82*612a0f0bSAngeloGioacchino Del Regno            - const: homekey_r
83*612a0f0bSAngeloGioacchino Del Regno
84*612a0f0bSAngeloGioacchino Del Regno    unevaluatedProperties: false
85*612a0f0bSAngeloGioacchino Del Regno
86*612a0f0bSAngeloGioacchino Del Regnorequired:
87*612a0f0bSAngeloGioacchino Del Regno  - compatible
88*612a0f0bSAngeloGioacchino Del Regno
89*612a0f0bSAngeloGioacchino Del RegnounevaluatedProperties: false
90*612a0f0bSAngeloGioacchino Del Regno
91*612a0f0bSAngeloGioacchino Del Regnoexamples:
92*612a0f0bSAngeloGioacchino Del Regno  - |
93*612a0f0bSAngeloGioacchino Del Regno    #include <dt-bindings/input/input.h>
94*612a0f0bSAngeloGioacchino Del Regno    #include <dt-bindings/interrupt-controller/arm-gic.h>
95*612a0f0bSAngeloGioacchino Del Regno
96*612a0f0bSAngeloGioacchino Del Regno    pmic {
97*612a0f0bSAngeloGioacchino Del Regno        compatible = "mediatek,mt6397";
98*612a0f0bSAngeloGioacchino Del Regno
99*612a0f0bSAngeloGioacchino Del Regno        keys {
100*612a0f0bSAngeloGioacchino Del Regno          compatible = "mediatek,mt6397-keys";
101*612a0f0bSAngeloGioacchino Del Regno          mediatek,long-press-mode = <1>;
102*612a0f0bSAngeloGioacchino Del Regno          power-off-time-sec = <0>;
103*612a0f0bSAngeloGioacchino Del Regno
104*612a0f0bSAngeloGioacchino Del Regno          key-power {
105*612a0f0bSAngeloGioacchino Del Regno            linux,keycodes = <KEY_POWER>;
106*612a0f0bSAngeloGioacchino Del Regno            wakeup-source;
107*612a0f0bSAngeloGioacchino Del Regno          };
108*612a0f0bSAngeloGioacchino Del Regno
109*612a0f0bSAngeloGioacchino Del Regno          key-home {
110*612a0f0bSAngeloGioacchino Del Regno            linux,keycodes = <KEY_VOLUMEDOWN>;
111*612a0f0bSAngeloGioacchino Del Regno          };
112*612a0f0bSAngeloGioacchino Del Regno        };
113*612a0f0bSAngeloGioacchino Del Regno    };
114