summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/power/reset/qcom,pon.yaml
blob: 5e460128b0d10911a541c959a9581efcb8b4d393 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/reset/qcom,pon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm PON Device

maintainers:
  - Vinod Koul <vkoul@kernel.org>

description: |
  The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
  and resin along with the Android reboot-mode.

  This DT node has pwrkey and resin as sub nodes.

properties:
  compatible:
    enum:
      - qcom,pm8916-pon
      - qcom,pm8941-pon
      - qcom,pms405-pon
      - qcom,pm8998-pon
      - qcom,pmk8350-pon

  reg:
    description: |
      Specifies the SPMI base address for the PON (power-on) peripheral.  For
      PMICs that have the PON peripheral (GEN3) split into PON_HLOS and PON_PBS
      (e.g. PMK8350), this can hold addresses of both PON_HLOS and PON_PBS
      peripherals.  In that case, the PON_PBS address needs to be specified to
      facilitate software debouncing on some PMIC.
    minItems: 1
    maxItems: 2

  reg-names:
    minItems: 1
    maxItems: 2

  pwrkey:
    type: object
    $ref: /schemas/input/qcom,pm8941-pwrkey.yaml#

  resin:
    type: object
    $ref: /schemas/input/qcom,pm8941-pwrkey.yaml#

  watchdog:
    type: object
    $ref: /schemas/watchdog/qcom,pm8916-wdt.yaml

required:
  - compatible
  - reg

unevaluatedProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,pm8916-pon
              - qcom,pms405-pon
              - qcom,pm8998-pon
    then:
      allOf:
        - $ref: reboot-mode.yaml#

      properties:
        reg:
          maxItems: 1
        reg-names:
          items:
            - const: pon

    # Special case for pm8941, which doesn't store reset mode
  - if:
      properties:
        compatible:
          contains:
            const: qcom,pm8941-pon
    then:
      properties:
        reg:
          maxItems: 1
        reg-names:
          items:
            - const: pon

  - if:
      properties:
        compatible:
          contains:
            const: qcom,pmk8350-pon
    then:
      properties:
        reg:
          minItems: 1
          maxItems: 2
        reg-names:
          minItems: 1
          items:
            - const: hlos
            - const: pbs

examples:
  - |
   #include <dt-bindings/interrupt-controller/irq.h>
   #include <dt-bindings/input/linux-event-codes.h>
   #include <dt-bindings/spmi/spmi.h>
   spmi_bus: spmi@c440000 {
     reg = <0x0c440000 0x1100>;
     #address-cells = <2>;
     #size-cells = <0>;
     pmk8350: pmic@0 {
       reg = <0x0 SPMI_USID>;
       #address-cells = <1>;
       #size-cells = <0>;
       pmk8350_pon: pon_hlos@1300 {
         reg = <0x1300>;
         compatible = "qcom,pm8998-pon";

         pwrkey {
            compatible = "qcom,pm8941-pwrkey";
            interrupts = < 0x0 0x8 0 IRQ_TYPE_EDGE_BOTH >;
            debounce = <15625>;
            bias-pull-up;
            linux,code = <KEY_POWER>;
         };

         resin {
            compatible = "qcom,pm8941-resin";
            interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
            debounce = <15625>;
            bias-pull-up;
            linux,code = <KEY_VOLUMEDOWN>;
         };
       };
     };
   };
...