1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/iio/qcom,spmi-vadc.h>
3#include <dt-bindings/interrupt-controller/irq.h>
4#include <dt-bindings/spmi/spmi.h>
5
6&spmi_bus {
7
8	pm8941_0: pm8941@0 {
9		compatible = "qcom,pm8941", "qcom,spmi-pmic";
10		reg = <0x0 SPMI_USID>;
11		#address-cells = <1>;
12		#size-cells = <0>;
13
14		rtc@6000 {
15			compatible = "qcom,pm8941-rtc";
16			reg = <0x6000>,
17			      <0x6100>;
18			reg-names = "rtc", "alarm";
19			interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
20		};
21
22		pwrkey@800 {
23			compatible = "qcom,pm8941-pwrkey";
24			reg = <0x800>;
25			interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
26			debounce = <15625>;
27			bias-pull-up;
28		};
29
30		usb_id: misc@900 {
31			compatible = "qcom,pm8941-misc";
32			reg = <0x900>;
33			interrupts = <0x0 0x9 0 IRQ_TYPE_EDGE_BOTH>;
34			interrupt-names = "usb_id";
35		};
36
37		smbb: charger@1000 {
38			compatible = "qcom,pm8941-charger";
39			reg = <0x1000>;
40			interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
41				     <0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
42				     <0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
43				     <0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
44				     <0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
45				     <0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
46				     <0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
47				     <0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
48			interrupt-names = "chg-done",
49					  "chg-fast",
50					  "chg-trkl",
51					  "bat-temp-ok",
52					  "bat-present",
53					  "chg-gone",
54					  "usb-valid",
55					  "dc-valid";
56
57			usb-otg-in-supply = <&pm8941_5vs1>;
58
59			chg_otg: otg-vbus { };
60		};
61
62		pm8941_gpios: gpios@c000 {
63			compatible = "qcom,pm8941-gpio", "qcom,spmi-gpio";
64			reg = <0xc000>;
65			gpio-controller;
66			#gpio-cells = <2>;
67			interrupts = <0 0xc0 0 IRQ_TYPE_NONE>,
68				     <0 0xc1 0 IRQ_TYPE_NONE>,
69				     <0 0xc2 0 IRQ_TYPE_NONE>,
70				     <0 0xc3 0 IRQ_TYPE_NONE>,
71				     <0 0xc4 0 IRQ_TYPE_NONE>,
72				     <0 0xc5 0 IRQ_TYPE_NONE>,
73				     <0 0xc6 0 IRQ_TYPE_NONE>,
74				     <0 0xc7 0 IRQ_TYPE_NONE>,
75				     <0 0xc8 0 IRQ_TYPE_NONE>,
76				     <0 0xc9 0 IRQ_TYPE_NONE>,
77				     <0 0xca 0 IRQ_TYPE_NONE>,
78				     <0 0xcb 0 IRQ_TYPE_NONE>,
79				     <0 0xcc 0 IRQ_TYPE_NONE>,
80				     <0 0xcd 0 IRQ_TYPE_NONE>,
81				     <0 0xce 0 IRQ_TYPE_NONE>,
82				     <0 0xcf 0 IRQ_TYPE_NONE>,
83				     <0 0xd0 0 IRQ_TYPE_NONE>,
84				     <0 0xd1 0 IRQ_TYPE_NONE>,
85				     <0 0xd2 0 IRQ_TYPE_NONE>,
86				     <0 0xd3 0 IRQ_TYPE_NONE>,
87				     <0 0xd4 0 IRQ_TYPE_NONE>,
88				     <0 0xd5 0 IRQ_TYPE_NONE>,
89				     <0 0xd6 0 IRQ_TYPE_NONE>,
90				     <0 0xd7 0 IRQ_TYPE_NONE>,
91				     <0 0xd8 0 IRQ_TYPE_NONE>,
92				     <0 0xd9 0 IRQ_TYPE_NONE>,
93				     <0 0xda 0 IRQ_TYPE_NONE>,
94				     <0 0xdb 0 IRQ_TYPE_NONE>,
95				     <0 0xdc 0 IRQ_TYPE_NONE>,
96				     <0 0xdd 0 IRQ_TYPE_NONE>,
97				     <0 0xde 0 IRQ_TYPE_NONE>,
98				     <0 0xdf 0 IRQ_TYPE_NONE>,
99				     <0 0xe0 0 IRQ_TYPE_NONE>,
100				     <0 0xe1 0 IRQ_TYPE_NONE>,
101				     <0 0xe2 0 IRQ_TYPE_NONE>,
102				     <0 0xe3 0 IRQ_TYPE_NONE>;
103
104			boost_bypass_n_pin: boost-bypass {
105				pins = "gpio21";
106				function = "normal";
107			};
108		};
109
110		pm8941_mpps: mpps@a000 {
111			compatible = "qcom,pm8941-mpp", "qcom,spmi-mpp";
112			reg = <0xa000>;
113			gpio-controller;
114			#gpio-cells = <2>;
115			interrupts = <0 0xa0 0 IRQ_TYPE_NONE>,
116				     <0 0xa1 0 IRQ_TYPE_NONE>,
117				     <0 0xa2 0 IRQ_TYPE_NONE>,
118				     <0 0xa3 0 IRQ_TYPE_NONE>,
119				     <0 0xa4 0 IRQ_TYPE_NONE>,
120				     <0 0xa5 0 IRQ_TYPE_NONE>,
121				     <0 0xa6 0 IRQ_TYPE_NONE>,
122				     <0 0xa7 0 IRQ_TYPE_NONE>;
123		};
124
125		pm8941_temp: temp-alarm@2400 {
126			compatible = "qcom,spmi-temp-alarm";
127			reg = <0x2400>;
128			interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
129			io-channels = <&pm8941_vadc VADC_DIE_TEMP>;
130			io-channel-names = "thermal";
131			#thermal-sensor-cells = <0>;
132		};
133
134		pm8941_vadc: vadc@3100 {
135			compatible = "qcom,spmi-vadc";
136			reg = <0x3100>;
137			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
138			#address-cells = <1>;
139			#size-cells = <0>;
140			#io-channel-cells = <1>;
141
142			bat_temp {
143				reg = <VADC_LR_MUX1_BAT_THERM>;
144			};
145			die_temp {
146				reg = <VADC_DIE_TEMP>;
147			};
148			ref_625mv {
149				reg = <VADC_REF_625MV>;
150			};
151			ref_1250v {
152				reg = <VADC_REF_1250MV>;
153			};
154			ref_gnd {
155				reg = <VADC_GND_REF>;
156			};
157			ref_vdd {
158				reg = <VADC_VDD_VADC>;
159			};
160			vbat_sns {
161				reg = <VADC_VBAT_SNS>;
162			};
163		};
164
165		pm8941_iadc: iadc@3600 {
166			compatible = "qcom,pm8941-iadc", "qcom,spmi-iadc";
167			reg = <0x3600>;
168			interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
169			qcom,external-resistor-micro-ohms = <10000>;
170		};
171
172		coincell@2800 {
173			compatible = "qcom,pm8941-coincell";
174			reg = <0x2800>;
175			status = "disabled";
176		};
177	};
178
179	pm8941_1: pm8941@1 {
180		compatible = "qcom,pm8941", "qcom,spmi-pmic";
181		reg = <0x1 SPMI_USID>;
182		#address-cells = <1>;
183		#size-cells = <0>;
184
185		pm8941_wled: wled@d800 {
186			compatible = "qcom,pm8941-wled";
187			reg = <0xd800>;
188			label = "backlight";
189
190			status = "disabled";
191		};
192
193		regulators {
194			compatible = "qcom,pm8941-regulators";
195			interrupts = <0x1 0x83 0x2 0>, <0x1 0x84 0x2 0>;
196			interrupt-names = "ocp-5vs1", "ocp-5vs2";
197			vin_5vs-supply = <&pm8941_5v>;
198
199			pm8941_5v: s4 {
200				regulator-min-microvolt = <5000000>;
201				regulator-max-microvolt = <5000000>;
202				regulator-enable-ramp-delay = <500>;
203			};
204
205			pm8941_5vs1: 5vs1 {
206				regulator-enable-ramp-delay = <1000>;
207				regulator-pull-down;
208				regulator-over-current-protection;
209				qcom,ocp-max-retries = <10>;
210				qcom,ocp-retry-delay = <30>;
211				qcom,vs-soft-start-strength = <0>;
212				regulator-initial-mode = <1>;
213			};
214		};
215	};
216};
217