Merge tag 'dt-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / msm8992-xiaomi-libra.dts
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2020, Konrad Dybcio
4  */
5
6 /dts-v1/;
7
8 #include "msm8992.dtsi"
9 #include "pm8994.dtsi"
10 #include "pmi8994.dtsi"
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/input/gpio-keys.h>
13
14 / {
15         model = "Xiaomi Mi 4C";
16         compatible = "xiaomi,libra", "qcom,msm8992";
17         /* required for bootloader to select correct board */
18         qcom,msm-id = <251 0 252 0>;
19         qcom,pmic-id = <65545 65546 0 0>;
20         qcom,board-id = <12 0>;
21
22         /* This enables graphical output via bootloader-enabled display */
23         chosen {
24                 bootargs = "earlycon=tty0 console=tty0";
25
26                 #address-cells = <2>;
27                 #size-cells = <2>;
28                 ranges;
29
30                 framebuffer0: framebuffer@3404000 {
31                         status= "okay";
32                         compatible = "simple-framebuffer";
33                         reg = <0 0x3404000 0 (1080 * 1920 * 3)>;
34                         width = <1080>;
35                         height = <1920>;
36                         stride = <(1080 * 3)>;
37                         format = "r8g8b8";
38                 };
39         };
40
41         gpio_keys {
42                 compatible = "gpio-keys";
43                 input-name = "gpio-keys";
44                 #address-cells = <1>;
45                 #size-cells = <0>;
46                 autorepeat;
47
48                 button@0 {
49                         label = "Volume Up";
50                         gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
51                         linux,input-type = <1>;
52                         linux,code = <KEY_VOLUMEUP>;
53                         wakeup-source;
54                         debounce-interval = <15>;
55                 };
56         };
57
58         reserved-memory {
59                 #address-cells = <2>;
60                 #size-cells = <2>;
61                 ranges;
62
63                 /* This is for getting crash logs using Android downstream kernels */
64                 ramoops@dfc00000 {
65                         compatible = "ramoops";
66                         reg = <0x0 0xdfc00000 0x0 0x40000>;
67                         console-size = <0x10000>;
68                         record-size = <0x10000>;
69                         ftrace-size = <0x10000>;
70                         pmsg-size = <0x20000>;
71                 };
72
73                 modem_region: modem_region@9000000 {
74                         reg = <0x0 0x9000000 0x0 0x5a00000>;
75                         no-map;
76                 };
77
78                 tzapp: modem_region@ea00000 {
79                         reg = <0x0 0xea00000 0x0 0x1900000>;
80                         no-map;
81                 };
82         };
83 };
84
85 &blsp1_i2c2 {
86         status = "okay";
87
88         /* Atmel or Synaptics touchscreen */
89 };
90
91 &blsp1_i2c5 {
92         status = "okay";
93
94         /* ST lsm6db0 gyro/accelerometer */
95 };
96
97 &blsp1_i2c6 {
98         status = "okay";
99
100         /*
101          * NXP NCI NFC,
102          * TI USB320 Type-C controller,
103          * Pericom 30216a USB (de)mux switch
104          */
105 };
106
107 &blsp2_i2c1 {
108         status = "okay";
109
110         /* cm36686 proximity and ambient light sensor */
111 };
112
113 &blsp2_i2c5 {
114         status = "okay";
115
116         /* Silabs si4705 FM transmitter */
117 };
118
119 &blsp2_uart2 {
120         status = "okay";
121 };
122
123 &peripheral_region {
124         reg = <0x0 0x7400000 0x0 0x1c00000>;
125         no-map;
126 };
127
128 &rpm_requests {
129         pm8994-regulators {
130                 compatible = "qcom,rpm-pm8994-regulators";
131
132                 vdd_l1-supply = <&pm8994_s7>;
133                 vdd_l2_26_28-supply = <&pm8994_s3>;
134                 vdd_l3_11-supply = <&pm8994_s3>;
135                 vdd_l4_27_31-supply = <&pm8994_s3>;
136                 vdd_l5_7-supply = <&pm8994_s3>;
137                 vdd_l6_12_32-supply = <&pm8994_s5>;
138                 vdd_l8_16_30-supply = <&vph_pwr>;
139                 vdd_l9_10_18_22-supply = <&vph_pwr>;
140                 vdd_l13_19_23_24-supply = <&vph_pwr>;
141                 vdd_l14_15-supply = <&pm8994_s5>;
142                 vdd_l17_29-supply = <&vph_pwr>;
143                 vdd_l20_21-supply = <&vph_pwr>;
144                 vdd_l25-supply = <&pm8994_s5>;
145                 vdd_lvs1_2 = <&pm8994_s4>;
146
147                 /* S1, S2, S6 and S12 are managed by RPMPD */
148
149                 pm8994_s3: s3 {
150                         regulator-min-microvolt = <1300000>;
151                         regulator-max-microvolt = <1300000>;
152                 };
153
154                 pm8994_s4: s4 {
155                         regulator-min-microvolt = <1800000>;
156                         regulator-max-microvolt = <1800000>;
157                         regulator-allow-set-load;
158                         regulator-always-on;
159                         regulator-system-load = <325000>;
160                 };
161
162                 pm8994_s5: s5 {
163                         regulator-min-microvolt = <2150000>;
164                         regulator-max-microvolt = <2150000>;
165                 };
166
167                 pm8994_s7: s7 {
168                         regulator-min-microvolt = <1000000>;
169                         regulator-max-microvolt = <1000000>;
170                 };
171
172                 /* S8, S9, S10 and S11 - SPMI-managed VDD_APC */
173
174                 pm8994_l1: l1 {
175                         regulator-min-microvolt = <1000000>;
176                         regulator-max-microvolt = <1000000>;
177                 };
178
179                 pm8994_l2: l2 {
180                         regulator-min-microvolt = <1250000>;
181                         regulator-max-microvolt = <1250000>;
182                 };
183
184                 pm8994_l3: l3 {
185                         regulator-min-microvolt = <1200000>;
186                         regulator-max-microvolt = <1200000>;
187                 };
188
189                 pm8994_l4: l4 {
190                         regulator-min-microvolt = <1225000>;
191                         regulator-max-microvolt = <1225000>;
192                 };
193
194                 /* L5 is inaccessible from RPM */
195
196                 pm8994_l6: l6 {
197                         regulator-min-microvolt = <1800000>;
198                         regulator-max-microvolt = <1800000>;
199                 };
200
201                 /* L7 is inaccessible from RPM */
202
203                 pm8994_l8: l8 {
204                         regulator-min-microvolt = <1800000>;
205                         regulator-max-microvolt = <1800000>;
206                 };
207
208                 pm8994_l9: l9 {
209                         regulator-min-microvolt = <1800000>;
210                         regulator-max-microvolt = <1800000>;
211                 };
212
213                 pm8994_l10: l10 {
214                         regulator-min-microvolt = <1800000>;
215                         regulator-max-microvolt = <1800000>;
216                 };
217
218                 pm8994_l11: l11 {
219                         regulator-min-microvolt = <1200000>;
220                         regulator-max-microvolt = <1200000>;
221                 };
222
223                 pm8994_l12: l12 {
224                         regulator-min-microvolt = <1800000>;
225                         regulator-max-microvolt = <1800000>;
226                 };
227
228                 pm8994_l13: l13 {
229                         regulator-min-microvolt = <1800000>;
230                         regulator-max-microvolt = <2950000>;
231                 };
232
233                 pm8994_l14: l14 {
234                         regulator-min-microvolt = <1800000>;
235                         regulator-max-microvolt = <1800000>;
236                 };
237
238                 pm8994_l15: l15 {
239                         regulator-min-microvolt = <1800000>;
240                         regulator-max-microvolt = <1800000>;
241                 };
242
243                 pm8994_l16: l16 {
244                         regulator-min-microvolt = <2700000>;
245                         regulator-max-microvolt = <2700000>;
246                 };
247
248                 pm8994_l17: l17 {
249                         regulator-min-microvolt = <2700000>;
250                         regulator-max-microvolt = <2700000>;
251                 };
252
253                 pm8994_l18: l18 {
254                         regulator-min-microvolt = <2850000>;
255                         regulator-max-microvolt = <2850000>;
256                         regulator-always-on;
257                 };
258
259                 pm8994_l19: l19 {
260                         regulator-min-microvolt = <2800000>;
261                         regulator-max-microvolt = <2800000>;
262                 };
263
264                 pm8994_l20: l20 {
265                         regulator-min-microvolt = <2950000>;
266                         regulator-max-microvolt = <2950000>;
267                         regulator-always-on;
268                         regulator-boot-on;
269                         regulator-allow-set-load;
270                         regulator-system-load = <570000>;
271                 };
272
273                 pm8994_l21: l21 {
274                         regulator-min-microvolt = <2950000>;
275                         regulator-max-microvolt = <2950000>;
276                         regulator-always-on;
277                 };
278
279                 pm8994_l22: l22 {
280                         regulator-min-microvolt = <3000000>;
281                         regulator-max-microvolt = <3000000>;
282                 };
283
284                 pm8994_l23: l23 {
285                         regulator-min-microvolt = <2800000>;
286                         regulator-max-microvolt = <2800000>;
287                 };
288
289                 pm8994_l24: l24 {
290                         regulator-min-microvolt = <3075000>;
291                         regulator-max-microvolt = <3150000>;
292                 };
293
294                 pm8994_l25: l25 {
295                         regulator-min-microvolt = <1000000>;
296                         regulator-max-microvolt = <1000000>;
297                 };
298
299                 pm8994_l26: l26 {
300                         regulator-min-microvolt = <987500>;
301                         regulator-max-microvolt = <987500>;
302
303                 };
304
305                 pm8994_l27: l27 {
306                         regulator-min-microvolt = <1050000>;
307                         regulator-max-microvolt = <1050000>;
308                 };
309
310                 pm8994_l28: l28 {
311                         regulator-min-microvolt = <1000000>;
312                         regulator-max-microvolt = <1000000>;
313                 };
314
315                 pm8994_l29: l29 {
316                         regulator-min-microvolt = <2800000>;
317                         regulator-max-microvolt = <2800000>;
318                 };
319
320                 pm8994_l30: l30 {
321                         regulator-min-microvolt = <1800000>;
322                         regulator-max-microvolt = <1800000>;
323                 };
324
325                 pm8994_l31: l31 {
326                         regulator-min-microvolt = <1262500>;
327                         regulator-max-microvolt = <1262500>;
328                 };
329
330                 pm8994_l32: l32 {
331                         regulator-min-microvolt = <1800000>;
332                         regulator-max-microvolt = <1800000>;
333                 };
334
335                 pm8994_lvs1: lvs1 {};
336                 pm8994_lvs2: lvs2 {};
337         };
338
339         pmi8994_regulators: pmi8994-regulators {
340                 compatible = "qcom,rpm-pmi8994-regulators";
341                 vdd_s1-supply = <&vph_pwr>;
342                 vdd_bst_byp-supply = <&vph_pwr>;
343
344                 pmi8994_s1: s1 {
345                         regulator-min-microvolt = <1025000>;
346                         regulator-max-microvolt = <1025000>;
347                 };
348
349                 /* S2 & S3 - VDD_GFX */
350
351                 pmi8994_bby: boost-bypass {
352                         regulator-min-microvolt = <3150000>;
353                         regulator-max-microvolt = <3600000>;
354                 };
355         };
356 };
357
358 &sdhc1 {
359         status = "okay";
360
361         mmc-hs400-1_8v;
362         vmmc-supply = <&pm8994_l20>;
363         vqmmc-supply = <&pm8994_s4>;
364 };