1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/iio/qcom,spmi-vadc.h>
3 #include <dt-bindings/input/linux-event-codes.h>
4 #include <dt-bindings/interrupt-controller/irq.h>
5 #include <dt-bindings/spmi/spmi.h>
10 compatible = "qcom,pm8916", "qcom,spmi-pmic";
11 reg = <0x0 SPMI_USID>;
16 compatible = "qcom,pm8916-pon";
18 mode-bootloader = <0x2>;
19 mode-recovery = <0x1>;
22 compatible = "qcom,pm8941-pwrkey";
23 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
26 linux,code = <KEY_POWER>;
30 compatible = "qcom,pm8941-resin";
31 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
38 compatible = "qcom,pm8916-wdt";
39 interrupts = <0x0 0x8 6 IRQ_TYPE_EDGE_RISING>;
44 pm8916_charger: charger@1000 {
45 compatible = "qcom,pm8916-lbc";
46 reg = <0x1000>, <0x1200>, <0x1300>, <0x1600>;
47 reg-names = "chgr", "bat_if", "usb", "misc";
49 interrupts = <0x0 0x10 0 IRQ_TYPE_EDGE_BOTH>,
50 <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
51 <0x0 0x10 6 IRQ_TYPE_EDGE_BOTH>,
52 <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
53 <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
54 <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
55 <0x0 0x13 0 IRQ_TYPE_EDGE_BOTH>,
56 <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
57 <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
58 <0x0 0x13 4 IRQ_TYPE_EDGE_BOTH>;
59 interrupt-names = "vbat_det",
73 pm8916_usbin: usb-detect@1300 {
74 compatible = "qcom,pm8941-misc";
76 interrupts = <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>;
77 interrupt-names = "usb_vbus";
81 pm8916_temp: temp-alarm@2400 {
82 compatible = "qcom,spmi-temp-alarm";
84 interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
85 io-channels = <&pm8916_vadc VADC_DIE_TEMP>;
86 io-channel-names = "thermal";
87 #thermal-sensor-cells = <0>;
90 pm8916_vadc: adc@3100 {
91 compatible = "qcom,spmi-vadc";
93 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
96 #io-channel-cells = <1>;
100 qcom,pre-scaling = <1 10>;
104 qcom,pre-scaling = <1 3>;
107 reg = <VADC_DIE_TEMP>;
110 reg = <VADC_REF_625MV>;
113 reg = <VADC_REF_1250MV>;
116 reg = <VADC_GND_REF>;
119 reg = <VADC_VDD_VADC>;
123 pm8916_bms: battery@4000 {
124 compatible = "qcom,pm8916-bms-vm";
126 interrupts = <0x0 0x40 0 IRQ_TYPE_EDGE_RISING>,
127 <0x0 0x40 1 IRQ_TYPE_EDGE_RISING>,
128 <0x0 0x40 2 IRQ_TYPE_EDGE_RISING>,
129 <0x0 0x40 3 IRQ_TYPE_EDGE_RISING>,
130 <0x0 0x40 4 IRQ_TYPE_EDGE_RISING>,
131 <0x0 0x40 5 IRQ_TYPE_EDGE_RISING>;
132 interrupt-names = "cv_leave",
143 compatible = "qcom,pm8941-rtc";
144 reg = <0x6000>, <0x6100>;
145 reg-names = "rtc", "alarm";
146 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
149 pm8916_mpps: mpps@a000 {
150 compatible = "qcom,pm8916-mpp", "qcom,spmi-mpp";
154 gpio-ranges = <&pm8916_mpps 0 0 4>;
155 interrupt-controller;
156 #interrupt-cells = <2>;
159 pm8916_gpios: gpio@c000 {
160 compatible = "qcom,pm8916-gpio", "qcom,spmi-gpio";
163 gpio-ranges = <&pm8916_gpios 0 0 4>;
165 interrupt-controller;
166 #interrupt-cells = <2>;
171 compatible = "qcom,pm8916", "qcom,spmi-pmic";
172 reg = <0x1 SPMI_USID>;
173 #address-cells = <1>;
177 compatible = "qcom,pm8916-pwm";
184 pm8916_vib: vibrator@c000 {
185 compatible = "qcom,pm8916-vib";
190 pm8916_codec: audio-codec@f000 {
191 compatible = "qcom,pm8916-wcd-analog-codec";
193 interrupt-parent = <&spmi_bus>;
194 interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
195 <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
196 <0x1 0xf0 0x2 IRQ_TYPE_NONE>,
197 <0x1 0xf0 0x3 IRQ_TYPE_NONE>,
198 <0x1 0xf0 0x4 IRQ_TYPE_NONE>,
199 <0x1 0xf0 0x5 IRQ_TYPE_NONE>,
200 <0x1 0xf0 0x6 IRQ_TYPE_NONE>,
201 <0x1 0xf0 0x7 IRQ_TYPE_NONE>,
202 <0x1 0xf1 0x0 IRQ_TYPE_NONE>,
203 <0x1 0xf1 0x1 IRQ_TYPE_NONE>,
204 <0x1 0xf1 0x2 IRQ_TYPE_NONE>,
205 <0x1 0xf1 0x3 IRQ_TYPE_NONE>,
206 <0x1 0xf1 0x4 IRQ_TYPE_NONE>,
207 <0x1 0xf1 0x5 IRQ_TYPE_NONE>;
208 interrupt-names = "cdc_spk_cnp_int",
213 "mbhc_but_press_det",
222 #sound-dai-cells = <1>;