blob: 5e460128b0d10911a541c959a9581efcb8b4d393 [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>
114 spmi_bus: spmi@c440000 {
115 reg = <0x0c440000 0x1100>;
116 #address-cells = <2>;
117 #size-cells = <0>;
118 pmk8350: pmic@0 {
119 reg = <0x0 SPMI_USID>;
120 #address-cells = <1>;
121 #size-cells = <0>;
122 pmk8350_pon: pon_hlos@1300 {
123 reg = <0x1300>;
124 compatible = "qcom,pm8998-pon";
125
126 pwrkey {
127 compatible = "qcom,pm8941-pwrkey";
128 interrupts = < 0x0 0x8 0 IRQ_TYPE_EDGE_BOTH >;
129 debounce = <15625>;
130 bias-pull-up;
131 linux,code = <KEY_POWER>;
132 };
133
134 resin {
135 compatible = "qcom,pm8941-resin";
136 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
137 debounce = <15625>;
138 bias-pull-up;
139 linux,code = <KEY_VOLUMEDOWN>;
140 };
141 };
142 };
143 };
144...