blob: fc8105a7b9b268df5cb08ad32cde26c50ea955ce [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/power/reset/qcom,pon.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm PON Device
8
9maintainers:
10 - Vinod Koul <vkoul@kernel.org>
11
12description: |
13 The Power On device for Qualcomm PM8xxx is MFD supporting pwrkey
14 and resin along with the Android reboot-mode.
15
16 This DT node has pwrkey and resin as sub nodes.
17
18properties:
19 compatible:
20 enum:
21 - qcom,pm8916-pon
22 - qcom,pm8941-pon
23 - qcom,pms405-pon
24 - qcom,pm8998-pon
25 - qcom,pmk8350-pon
26
27 reg:
28 description: |
29 Specifies the SPMI base address for the PON (power-on) peripheral. For
30 PMICs that have the PON peripheral (GEN3) split into PON_HLOS and PON_PBS
31 (e.g. PMK8350), this can hold addresses of both PON_HLOS and PON_PBS
32 peripherals. In that case, the PON_PBS address needs to be specified to
33 facilitate software debouncing on some PMIC.
34 minItems: 1
35 maxItems: 2
36
37 reg-names:
38 minItems: 1
39 maxItems: 2
40
41 pwrkey:
42 type: object
43 $ref: /schemas/input/qcom,pm8941-pwrkey.yaml#
44
45 resin:
46 type: object
47 $ref: /schemas/input/qcom,pm8941-pwrkey.yaml#
48
49 watchdog:
50 type: object
51 $ref: /schemas/watchdog/qcom,pm8916-wdt.yaml
52
53required:
54 - compatible
55 - reg
56
57unevaluatedProperties: false
58
59allOf:
60 - if:
61 properties:
62 compatible:
63 contains:
64 enum:
65 - qcom,pm8916-pon
66 - qcom,pms405-pon
67 - qcom,pm8998-pon
68 then:
69 allOf:
70 - $ref: reboot-mode.yaml#
71
72 properties:
73 reg:
74 maxItems: 1
75 reg-names:
76 items:
77 - const: pon
78
79 # Special case for pm8941, which doesn't store reset mode
80 - if:
81 properties:
82 compatible:
83 contains:
84 const: qcom,pm8941-pon
85 then:
86 properties:
87 reg:
88 maxItems: 1
89 reg-names:
90 items:
91 - const: pon
92
93 - if:
94 properties:
95 compatible:
96 contains:
97 const: qcom,pmk8350-pon
98 then:
99 properties:
100 reg:
101 minItems: 1
102 maxItems: 2
103 reg-names:
104 minItems: 1
105 items:
106 - const: hlos
107 - const: pbs
108
109examples:
110 - |
111 #include <dt-bindings/interrupt-controller/irq.h>
112 #include <dt-bindings/input/linux-event-codes.h>
113 #include <dt-bindings/spmi/spmi.h>
Tom Rini93743d22024-04-01 09:08:13 -0400114
115 spmi@c440000 {
Tom Rini53633a82024-02-29 12:33:36 -0500116 reg = <0x0c440000 0x1100>;
117 #address-cells = <2>;
118 #size-cells = <0>;
Tom Rini93743d22024-04-01 09:08:13 -0400119
120 pmic@0 {
Tom Rini53633a82024-02-29 12:33:36 -0500121 reg = <0x0 SPMI_USID>;
122 #address-cells = <1>;
123 #size-cells = <0>;
Tom Rini93743d22024-04-01 09:08:13 -0400124
125 pon@800 {
Tom Rini53633a82024-02-29 12:33:36 -0500126 compatible = "qcom,pm8998-pon";
Tom Rini93743d22024-04-01 09:08:13 -0400127 reg = <0x800>;
Tom Rini53633a82024-02-29 12:33:36 -0500128
129 pwrkey {
130 compatible = "qcom,pm8941-pwrkey";
Tom Rini93743d22024-04-01 09:08:13 -0400131 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
Tom Rini53633a82024-02-29 12:33:36 -0500132 debounce = <15625>;
133 bias-pull-up;
134 linux,code = <KEY_POWER>;
135 };
136
137 resin {
138 compatible = "qcom,pm8941-resin";
139 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
140 debounce = <15625>;
141 bias-pull-up;
142 linux,code = <KEY_VOLUMEDOWN>;
143 };
144 };
145 };
146 };
147...