hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/iio/qcom,spmi-vadc.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
 
&spmi_bus {
 
   pm8941_0: pm8941@0 {
       compatible = "qcom,pm8941", "qcom,spmi-pmic";
       reg = <0x0 SPMI_USID>;
       #address-cells = <1>;
       #size-cells = <0>;
 
       rtc@6000 {
           compatible = "qcom,pm8941-rtc";
           reg = <0x6000>,
                 <0x6100>;
           reg-names = "rtc", "alarm";
           interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
       };
 
       pwrkey@800 {
           compatible = "qcom,pm8941-pwrkey";
           reg = <0x800>;
           interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
           debounce = <15625>;
           bias-pull-up;
       };
 
       usb_id: misc@900 {
           compatible = "qcom,pm8941-misc";
           reg = <0x900>;
           interrupts = <0x0 0x9 0 IRQ_TYPE_EDGE_BOTH>;
           interrupt-names = "usb_id";
       };
 
       smbb: charger@1000 {
           compatible = "qcom,pm8941-charger";
           reg = <0x1000>;
           interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
                    <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
                    <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
                    <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
                    <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
                    <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
                    <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
                    <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
           interrupt-names = "chg-done",
                     "chg-fast",
                     "chg-trkl",
                     "bat-temp-ok",
                     "bat-present",
                     "chg-gone",
                     "usb-valid",
                     "dc-valid";
 
           usb-otg-in-supply = <&pm8941_5vs1>;
 
           chg_otg: otg-vbus { };
       };
 
       pm8941_gpios: gpios@c000 {
           compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio";
           reg = <0xc000>;
           gpio-controller;
           gpio-ranges = <&pm8941_gpios 0 0 36>;
           #gpio-cells = <2>;
           interrupt-controller;
           #interrupt-cells = <2>;
 
           boost_bypass_n_pin: boost-bypass {
               pins = "gpio21";
               function = "normal";
           };
       };
 
       pm8941_mpps: mpps@a000 {
           compatible = "qcom,pm8941-mpp", "qcom,spmi-mpp";
           reg = <0xa000>;
           gpio-controller;
           #gpio-cells = <2>;
           interrupts = <0 0xa0 0 IRQ_TYPE_NONE>,
                    <0 0xa1 0 IRQ_TYPE_NONE>,
                    <0 0xa2 0 IRQ_TYPE_NONE>,
                    <0 0xa3 0 IRQ_TYPE_NONE>,
                    <0 0xa4 0 IRQ_TYPE_NONE>,
                    <0 0xa5 0 IRQ_TYPE_NONE>,
                    <0 0xa6 0 IRQ_TYPE_NONE>,
                    <0 0xa7 0 IRQ_TYPE_NONE>;
       };
 
       pm8941_temp: temp-alarm@2400 {
           compatible = "qcom,spmi-temp-alarm";
           reg = <0x2400>;
           interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
           io-channels = <&pm8941_vadc VADC_DIE_TEMP>;
           io-channel-names = "thermal";
           #thermal-sensor-cells = <0>;
       };
 
       pm8941_vadc: vadc@3100 {
           compatible = "qcom,spmi-vadc";
           reg = <0x3100>;
           interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
           #address-cells = <1>;
           #size-cells = <0>;
           #io-channel-cells = <1>;
 
           bat_temp {
               reg = <VADC_LR_MUX1_BAT_THERM>;
           };
           die_temp {
               reg = <VADC_DIE_TEMP>;
           };
           ref_625mv {
               reg = <VADC_REF_625MV>;
           };
           ref_1250v {
               reg = <VADC_REF_1250MV>;
           };
           ref_gnd {
               reg = <VADC_GND_REF>;
           };
           ref_vdd {
               reg = <VADC_VDD_VADC>;
           };
           vbat_sns {
               reg = <VADC_VBAT_SNS>;
           };
       };
 
       pm8941_iadc: iadc@3600 {
           compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc";
           reg = <0x3600>;
           interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
           qcom,external-resistor-micro-ohms = <10000>;
       };
 
       coincell@2800 {
           compatible = "qcom,pm8941-coincell";
           reg = <0x2800>;
           status = "disabled";
       };
   };
 
   pm8941_1: pm8941@1 {
       compatible = "qcom,pm8941", "qcom,spmi-pmic";
       reg = <0x1 SPMI_USID>;
       #address-cells = <1>;
       #size-cells = <0>;
 
       pm8941_wled: wled@d800 {
           compatible = "qcom,pm8941-wled";
           reg = <0xd800>;
           label = "backlight";
 
           status = "disabled";
       };
 
       regulators {
           compatible = "qcom,pm8941-regulators";
           interrupts = <0x1 0x83 0x2 0>, <0x1 0x84 0x2 0>;
           interrupt-names = "ocp-5vs1", "ocp-5vs2";
           vin_5vs-supply = <&pm8941_5v>;
 
           pm8941_5v: s4 {
               regulator-min-microvolt = <5000000>;
               regulator-max-microvolt = <5000000>;
               regulator-enable-ramp-delay = <500>;
           };
 
           pm8941_5vs1: 5vs1 {
               regulator-enable-ramp-delay = <1000>;
               regulator-pull-down;
               regulator-over-current-protection;
               qcom,ocp-max-retries = <10>;
               qcom,ocp-retry-delay = <30>;
               qcom,vs-soft-start-strength = <0>;
               regulator-initial-mode = <1>;
           };
 
           pm8941_5vs2: 5vs2 {
               regulator-enable-ramp-delay = <1000>;
               regulator-pull-down;
               regulator-over-current-protection;
               qcom,ocp-max-retries = <10>;
               qcom,ocp-retry-delay = <30>;
               qcom,vs-soft-start-strength = <0>;
               regulator-initial-mode = <1>;
           };
       };
   };
};