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