123a6da79SAlexey Minnekhanov// SPDX-License-Identifier: GPL-2.0-only
223a6da79SAlexey Minnekhanov/*
323a6da79SAlexey Minnekhanov * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com>
4*262a8ad1SDang Huynh * Copyright (c) 2021, Dang Huynh <danct12@riseup.net>
523a6da79SAlexey Minnekhanov */
623a6da79SAlexey Minnekhanov
723a6da79SAlexey Minnekhanov/dts-v1/;
823a6da79SAlexey Minnekhanov
923a6da79SAlexey Minnekhanov#include "sdm660.dtsi"
10*262a8ad1SDang Huynh#include "pm660.dtsi"
11*262a8ad1SDang Huynh#include "pm660l.dtsi"
1223a6da79SAlexey Minnekhanov
1323a6da79SAlexey Minnekhanov/ {
1423a6da79SAlexey Minnekhanov	model = "Xiaomi Redmi Note 7";
1523a6da79SAlexey Minnekhanov	compatible = "xiaomi,lavender", "qcom,sdm660";
16eaa744b1SArnaud Ferraris	chassis-type = "handset";
1723a6da79SAlexey Minnekhanov
1823a6da79SAlexey Minnekhanov	aliases {
1923a6da79SAlexey Minnekhanov		serial0 = &blsp1_uart2;
2023a6da79SAlexey Minnekhanov	};
2123a6da79SAlexey Minnekhanov
2223a6da79SAlexey Minnekhanov	chosen {
2323a6da79SAlexey Minnekhanov		stdout-path = "serial0:115200n8";
2423a6da79SAlexey Minnekhanov	};
2523a6da79SAlexey Minnekhanov
26*262a8ad1SDang Huynh	vph_pwr: vph-pwr-regulator {
27*262a8ad1SDang Huynh		compatible = "regulator-fixed";
28*262a8ad1SDang Huynh		regulator-name = "vph_pwr";
29*262a8ad1SDang Huynh		regulator-min-microvolt = <3700000>;
30*262a8ad1SDang Huynh		regulator-max-microvolt = <3700000>;
31*262a8ad1SDang Huynh
32*262a8ad1SDang Huynh		regulator-always-on;
33*262a8ad1SDang Huynh		regulator-boot-on;
34*262a8ad1SDang Huynh	};
35*262a8ad1SDang Huynh
3623a6da79SAlexey Minnekhanov	reserved-memory {
3723a6da79SAlexey Minnekhanov		#address-cells = <2>;
3823a6da79SAlexey Minnekhanov		#size-cells = <2>;
3923a6da79SAlexey Minnekhanov		ranges;
4023a6da79SAlexey Minnekhanov
4123a6da79SAlexey Minnekhanov		ramoops@a0000000 {
4223a6da79SAlexey Minnekhanov			compatible = "ramoops";
4323a6da79SAlexey Minnekhanov			reg = <0x0 0xa0000000 0x0 0x400000>;
4423a6da79SAlexey Minnekhanov			console-size = <0x20000>;
4523a6da79SAlexey Minnekhanov			record-size = <0x20000>;
4623a6da79SAlexey Minnekhanov			ftrace-size = <0x0>;
4723a6da79SAlexey Minnekhanov			pmsg-size = <0x20000>;
4823a6da79SAlexey Minnekhanov		};
4923a6da79SAlexey Minnekhanov	};
5023a6da79SAlexey Minnekhanov};
5123a6da79SAlexey Minnekhanov
5223a6da79SAlexey Minnekhanov&blsp1_uart2 {
5323a6da79SAlexey Minnekhanov	status = "okay";
5423a6da79SAlexey Minnekhanov};
5523a6da79SAlexey Minnekhanov
56*262a8ad1SDang Huynh&rpm_requests {
57*262a8ad1SDang Huynh	pm660l-regulators {
58*262a8ad1SDang Huynh		compatible = "qcom,rpm-pm660l-regulators";
59*262a8ad1SDang Huynh
60*262a8ad1SDang Huynh		vdd_s1-supply = <&vph_pwr>;
61*262a8ad1SDang Huynh		vdd_s2-supply = <&vph_pwr>;
62*262a8ad1SDang Huynh		vdd_s3_s4-supply = <&vph_pwr>;
63*262a8ad1SDang Huynh		vdd_s5-supply = <&vph_pwr>;
64*262a8ad1SDang Huynh		vdd_s6-supply = <&vph_pwr>;
65*262a8ad1SDang Huynh
66*262a8ad1SDang Huynh		vdd_l1_l9_l10-supply = <&vreg_s2b_1p05>;
67*262a8ad1SDang Huynh		vdd_l2-supply = <&vreg_bob>;
68*262a8ad1SDang Huynh		vdd_l3_l5_l7_l8-supply = <&vreg_bob>;
69*262a8ad1SDang Huynh		vdd_l4_l6-supply = <&vreg_bob>;
70*262a8ad1SDang Huynh		vdd_bob-supply = <&vph_pwr>;
71*262a8ad1SDang Huynh
72*262a8ad1SDang Huynh		vreg_s1b_1p125: s1 {
73*262a8ad1SDang Huynh			regulator-min-microvolt = <1125000>;
74*262a8ad1SDang Huynh			regulator-max-microvolt = <1125000>;
75*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <200>;
76*262a8ad1SDang Huynh		};
77*262a8ad1SDang Huynh
78*262a8ad1SDang Huynh		vreg_s2b_1p05: s2 {
79*262a8ad1SDang Huynh			regulator-min-microvolt = <1050000>;
80*262a8ad1SDang Huynh			regulator-max-microvolt = <1050000>;
81*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <200>;
82*262a8ad1SDang Huynh		};
83*262a8ad1SDang Huynh
84*262a8ad1SDang Huynh		/* LDOs */
85*262a8ad1SDang Huynh		vreg_l1b_0p925: l1 {
86*262a8ad1SDang Huynh			regulator-min-microvolt = <800000>;
87*262a8ad1SDang Huynh			regulator-max-microvolt = <925000>;
88*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
89*262a8ad1SDang Huynh			regulator-allow-set-load;
90*262a8ad1SDang Huynh		};
91*262a8ad1SDang Huynh
92*262a8ad1SDang Huynh		/* SDHCI 3.3V signal doesn't seem to be supported. */
93*262a8ad1SDang Huynh		vreg_l2b_2p95: l2 {
94*262a8ad1SDang Huynh			regulator-min-microvolt = <1648000>;
95*262a8ad1SDang Huynh			regulator-max-microvolt = <2696000>;
96*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
97*262a8ad1SDang Huynh			regulator-allow-set-load;
98*262a8ad1SDang Huynh		};
99*262a8ad1SDang Huynh
100*262a8ad1SDang Huynh		vreg_l3b_3p3: l3 {
101*262a8ad1SDang Huynh			regulator-min-microvolt = <1700000>;
102*262a8ad1SDang Huynh			regulator-max-microvolt = <3300000>;
103*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
104*262a8ad1SDang Huynh			regulator-allow-set-load;
105*262a8ad1SDang Huynh		};
106*262a8ad1SDang Huynh
107*262a8ad1SDang Huynh		vreg_l4b_2p95: l4 {
108*262a8ad1SDang Huynh			regulator-min-microvolt = <2944000>;
109*262a8ad1SDang Huynh			regulator-max-microvolt = <2952000>;
110*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
111*262a8ad1SDang Huynh
112*262a8ad1SDang Huynh			regulator-min-microamp = <200>;
113*262a8ad1SDang Huynh			regulator-max-microamp = <600000>;
114*262a8ad1SDang Huynh			regulator-system-load = <570000>;
115*262a8ad1SDang Huynh			regulator-allow-set-load;
116*262a8ad1SDang Huynh		};
117*262a8ad1SDang Huynh
118*262a8ad1SDang Huynh		/*
119*262a8ad1SDang Huynh		 * Downstream specifies a range of 1721-3600mV,
120*262a8ad1SDang Huynh		 * but the only assigned consumers are SDHCI2 VMMC
121*262a8ad1SDang Huynh		 * and Coresight QPDI that both request pinned 2.95V.
122*262a8ad1SDang Huynh		 * Tighten the range to 1.8-3.328 (closest to 3.3) to
123*262a8ad1SDang Huynh		 * make the mmc driver happy.
124*262a8ad1SDang Huynh		 */
125*262a8ad1SDang Huynh		vreg_l5b_2p95: l5 {
126*262a8ad1SDang Huynh			regulator-min-microvolt = <1800000>;
127*262a8ad1SDang Huynh			regulator-max-microvolt = <3328000>;
128*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
129*262a8ad1SDang Huynh			regulator-allow-set-load;
130*262a8ad1SDang Huynh			regulator-system-load = <800000>;
131*262a8ad1SDang Huynh		};
132*262a8ad1SDang Huynh
133*262a8ad1SDang Huynh		vreg_l7b_3p125: l7 {
134*262a8ad1SDang Huynh			regulator-min-microvolt = <2700000>;
135*262a8ad1SDang Huynh			regulator-max-microvolt = <3125000>;
136*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
137*262a8ad1SDang Huynh		};
138*262a8ad1SDang Huynh
139*262a8ad1SDang Huynh		vreg_l8b_3p3: l8 {
140*262a8ad1SDang Huynh			regulator-min-microvolt = <3200000>;
141*262a8ad1SDang Huynh			regulator-max-microvolt = <3400000>;
142*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
143*262a8ad1SDang Huynh		};
144*262a8ad1SDang Huynh
145*262a8ad1SDang Huynh		vreg_bob: bob {
146*262a8ad1SDang Huynh			regulator-min-microvolt = <3300000>;
147*262a8ad1SDang Huynh			regulator-max-microvolt = <3600000>;
148*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <500>;
149*262a8ad1SDang Huynh		};
150*262a8ad1SDang Huynh	};
151*262a8ad1SDang Huynh
152*262a8ad1SDang Huynh	pm660-regulators {
153*262a8ad1SDang Huynh		compatible = "qcom,rpm-pm660-regulators";
154*262a8ad1SDang Huynh
155*262a8ad1SDang Huynh		vdd_s1-supply = <&vph_pwr>;
156*262a8ad1SDang Huynh		vdd_s2-supply = <&vph_pwr>;
157*262a8ad1SDang Huynh		vdd_s3-supply = <&vph_pwr>;
158*262a8ad1SDang Huynh		vdd_s4-supply = <&vph_pwr>;
159*262a8ad1SDang Huynh		vdd_s5-supply = <&vph_pwr>;
160*262a8ad1SDang Huynh		vdd_s6-supply = <&vph_pwr>;
161*262a8ad1SDang Huynh
162*262a8ad1SDang Huynh		vdd_l1_l6_l7-supply = <&vreg_s5a_1p35>;
163*262a8ad1SDang Huynh		vdd_l2_l3-supply = <&vreg_s2b_1p05>;
164*262a8ad1SDang Huynh		vdd_l5-supply = <&vreg_s2b_1p05>;
165*262a8ad1SDang Huynh		vdd_l8_l9_l10_l11_l12_l13_l14-supply = <&vreg_s4a_2p04>;
166*262a8ad1SDang Huynh		vdd_l15_l16_l17_l18_l19-supply = <&vreg_bob>;
167*262a8ad1SDang Huynh
168*262a8ad1SDang Huynh		/*
169*262a8ad1SDang Huynh		 * S1A (FTAPC0), S2A (FTAPC1), S3A (HFAPC1) are managed
170*262a8ad1SDang Huynh		 * by the Core Power Reduction hardened (CPRh) and the
171*262a8ad1SDang Huynh		 * Operating State Manager (OSM) HW automatically.
172*262a8ad1SDang Huynh		 */
173*262a8ad1SDang Huynh
174*262a8ad1SDang Huynh		vreg_s4a_2p04: s4 {
175*262a8ad1SDang Huynh			regulator-min-microvolt = <1805000>;
176*262a8ad1SDang Huynh			regulator-max-microvolt = <2040000>;
177*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <200>;
178*262a8ad1SDang Huynh			regulator-always-on;
179*262a8ad1SDang Huynh		};
180*262a8ad1SDang Huynh
181*262a8ad1SDang Huynh		vreg_s5a_1p35: s5 {
182*262a8ad1SDang Huynh			regulator-min-microvolt = <1224000>;
183*262a8ad1SDang Huynh			regulator-max-microvolt = <1350000>;
184*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <200>;
185*262a8ad1SDang Huynh		};
186*262a8ad1SDang Huynh
187*262a8ad1SDang Huynh		vreg_s6a_0p87: s6 {
188*262a8ad1SDang Huynh			regulator-min-microvolt = <504000>;
189*262a8ad1SDang Huynh			regulator-max-microvolt = <992000>;
190*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <150>;
191*262a8ad1SDang Huynh		};
192*262a8ad1SDang Huynh
193*262a8ad1SDang Huynh		/* LDOs */
194*262a8ad1SDang Huynh		vreg_l1a_1p225: l1 {
195*262a8ad1SDang Huynh			regulator-min-microvolt = <1150000>;
196*262a8ad1SDang Huynh			regulator-max-microvolt = <1250000>;
197*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
198*262a8ad1SDang Huynh			regulator-allow-set-load;
199*262a8ad1SDang Huynh		};
200*262a8ad1SDang Huynh
201*262a8ad1SDang Huynh		vreg_l2a_1p0: l2 {
202*262a8ad1SDang Huynh			regulator-min-microvolt = <950000>;
203*262a8ad1SDang Huynh			regulator-max-microvolt = <1010000>;
204*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
205*262a8ad1SDang Huynh		};
206*262a8ad1SDang Huynh
207*262a8ad1SDang Huynh		vreg_l3a_1p0: l3 {
208*262a8ad1SDang Huynh			regulator-min-microvolt = <950000>;
209*262a8ad1SDang Huynh			regulator-max-microvolt = <1010000>;
210*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
211*262a8ad1SDang Huynh		};
212*262a8ad1SDang Huynh
213*262a8ad1SDang Huynh		vreg_l5a_0p848: l5 {
214*262a8ad1SDang Huynh			regulator-min-microvolt = <525000>;
215*262a8ad1SDang Huynh			regulator-max-microvolt = <950000>;
216*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
217*262a8ad1SDang Huynh		};
218*262a8ad1SDang Huynh
219*262a8ad1SDang Huynh		vreg_l6a_1p3: l6 {
220*262a8ad1SDang Huynh			regulator-min-microvolt = <1200000>;
221*262a8ad1SDang Huynh			regulator-max-microvolt = <1370000>;
222*262a8ad1SDang Huynh			regulator-allow-set-load;
223*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
224*262a8ad1SDang Huynh		};
225*262a8ad1SDang Huynh
226*262a8ad1SDang Huynh		vreg_l7a_1p2: l7 {
227*262a8ad1SDang Huynh			regulator-min-microvolt = <1200000>;
228*262a8ad1SDang Huynh			regulator-max-microvolt = <1200000>;
229*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
230*262a8ad1SDang Huynh		};
231*262a8ad1SDang Huynh
232*262a8ad1SDang Huynh		vreg_l8a_1p8: l8 {
233*262a8ad1SDang Huynh			regulator-min-microvolt = <1750000>;
234*262a8ad1SDang Huynh			regulator-max-microvolt = <1800000>;
235*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
236*262a8ad1SDang Huynh			regulator-system-load = <325000>;
237*262a8ad1SDang Huynh			regulator-allow-set-load;
238*262a8ad1SDang Huynh		};
239*262a8ad1SDang Huynh
240*262a8ad1SDang Huynh		vreg_l9a_1p8: l9 {
241*262a8ad1SDang Huynh			regulator-min-microvolt = <1750000>;
242*262a8ad1SDang Huynh			regulator-max-microvolt = <1900000>;
243*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
244*262a8ad1SDang Huynh			regulator-allow-set-load;
245*262a8ad1SDang Huynh		};
246*262a8ad1SDang Huynh
247*262a8ad1SDang Huynh		vreg_l10a_1p8: l10 {
248*262a8ad1SDang Huynh			regulator-min-microvolt = <1780000>;
249*262a8ad1SDang Huynh			regulator-max-microvolt = <1950000>;
250*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
251*262a8ad1SDang Huynh			regulator-allow-set-load;
252*262a8ad1SDang Huynh		};
253*262a8ad1SDang Huynh
254*262a8ad1SDang Huynh		vreg_l11a_1p8: l11 {
255*262a8ad1SDang Huynh			regulator-min-microvolt = <1780000>;
256*262a8ad1SDang Huynh			regulator-max-microvolt = <1950000>;
257*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
258*262a8ad1SDang Huynh		};
259*262a8ad1SDang Huynh
260*262a8ad1SDang Huynh		vreg_l12a_1p8: l12 {
261*262a8ad1SDang Huynh			regulator-min-microvolt = <1780000>;
262*262a8ad1SDang Huynh			regulator-max-microvolt = <1950000>;
263*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
264*262a8ad1SDang Huynh		};
265*262a8ad1SDang Huynh
266*262a8ad1SDang Huynh		/* This gives power to the LPDDR4: never turn it off! */
267*262a8ad1SDang Huynh		vreg_l13a_1p8: l13 {
268*262a8ad1SDang Huynh			regulator-min-microvolt = <1780000>;
269*262a8ad1SDang Huynh			regulator-max-microvolt = <1950000>;
270*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
271*262a8ad1SDang Huynh			regulator-boot-on;
272*262a8ad1SDang Huynh			regulator-always-on;
273*262a8ad1SDang Huynh		};
274*262a8ad1SDang Huynh
275*262a8ad1SDang Huynh		vreg_l14a_1p8: l14 {
276*262a8ad1SDang Huynh			regulator-min-microvolt = <1710000>;
277*262a8ad1SDang Huynh			regulator-max-microvolt = <1900000>;
278*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
279*262a8ad1SDang Huynh		};
280*262a8ad1SDang Huynh
281*262a8ad1SDang Huynh		vreg_l15a_1p8: l15 {
282*262a8ad1SDang Huynh			regulator-min-microvolt = <1650000>;
283*262a8ad1SDang Huynh			regulator-max-microvolt = <2950000>;
284*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
285*262a8ad1SDang Huynh		};
286*262a8ad1SDang Huynh
287*262a8ad1SDang Huynh		vreg_l16a_2p7: l16 {
288*262a8ad1SDang Huynh			regulator-min-microvolt = <2800000>;
289*262a8ad1SDang Huynh			regulator-max-microvolt = <2800000>;
290*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
291*262a8ad1SDang Huynh			regulator-always-on;
292*262a8ad1SDang Huynh		};
293*262a8ad1SDang Huynh
294*262a8ad1SDang Huynh		vreg_l17a_1p8: l17 {
295*262a8ad1SDang Huynh			regulator-min-microvolt = <1648000>;
296*262a8ad1SDang Huynh			regulator-max-microvolt = <2952000>;
297*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
298*262a8ad1SDang Huynh		};
299*262a8ad1SDang Huynh
300*262a8ad1SDang Huynh		vreg_l19a_3p3: l19 {
301*262a8ad1SDang Huynh			regulator-min-microvolt = <3312000>;
302*262a8ad1SDang Huynh			regulator-max-microvolt = <3400000>;
303*262a8ad1SDang Huynh			regulator-enable-ramp-delay = <250>;
304*262a8ad1SDang Huynh			regulator-allow-set-load;
305*262a8ad1SDang Huynh		};
306*262a8ad1SDang Huynh	};
307*262a8ad1SDang Huynh};
308*262a8ad1SDang Huynh
30923a6da79SAlexey Minnekhanov&tlmm {
31023a6da79SAlexey Minnekhanov	gpio-reserved-ranges = <8 4>;
31123a6da79SAlexey Minnekhanov};
312