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