• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/delete-node/ &adsp_mem;
15/delete-node/ &audio_mem;
16/delete-node/ &mpss_mem;
17/delete-node/ &peripheral_region;
18/delete-node/ &rmtfs_mem;
19
20/ {
21	model = "Xiaomi Mi 4C";
22	compatible = "xiaomi,libra", "qcom,msm8992";
23	/* required for bootloader to select correct board */
24	qcom,msm-id = <251 0 252 0>;
25	qcom,pmic-id = <65545 65546 0 0>;
26	qcom,board-id = <12 0>;
27
28	/* This enables graphical output via bootloader-enabled display */
29	chosen {
30		bootargs = "earlycon=tty0 console=tty0";
31
32		#address-cells = <2>;
33		#size-cells = <2>;
34		ranges;
35
36		framebuffer0: framebuffer@3404000 {
37			status= "okay";
38			compatible = "simple-framebuffer";
39			reg = <0 0x3404000 0 (1080 * 1920 * 3)>;
40			width = <1080>;
41			height = <1920>;
42			stride = <(1080 * 3)>;
43			format = "r8g8b8";
44		};
45	};
46
47	gpio_keys {
48		compatible = "gpio-keys";
49		input-name = "gpio-keys";
50		#address-cells = <1>;
51		#size-cells = <0>;
52		autorepeat;
53
54		button@0 {
55			label = "Volume Up";
56			gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
57			linux,input-type = <1>;
58			linux,code = <KEY_VOLUMEUP>;
59			wakeup-source;
60			debounce-interval = <15>;
61		};
62	};
63
64	reserved-memory {
65		#address-cells = <2>;
66		#size-cells = <2>;
67		ranges;
68
69		memory_hole: hole@6400000 {
70			reg = <0 0x06400000 0 0x600000>;
71			no-map;
72		};
73
74		memory_hole2: hole2@6c00000 {
75			reg = <0 0x06c00000 0 0x2400000>;
76			no-map;
77		};
78
79		mpss_mem: mpss@9000000 {
80			reg = <0 0x09000000 0 0x5a00000>;
81			no-map;
82		};
83
84		tzapp: tzapp@ea00000 {
85			reg = <0 0x0ea00000 0 0x1900000>;
86			no-map;
87		};
88
89		mdm_rfsa_mem: mdm-rfsa@ca0b0000 {
90			reg = <0 0xca0b0000 0 0x10000>;
91			no-map;
92		};
93
94		rmtfs_mem: rmtfs@ca100000 {
95			compatible = "qcom,rmtfs-mem";
96			reg = <0 0xca100000 0 0x180000>;
97			no-map;
98
99			qcom,client-id = <1>;
100		};
101
102		qseecom_mem: qseecom@cb400000 {
103			reg = <0 0xcb400000 0 0x1c00000>;
104			no-mem;
105		};
106
107		adsp_rfsa_mem: adsp-rfsa@cd000000 {
108			reg = <0 0xcd000000 0 0x10000>;
109			no-map;
110		};
111
112		sensor_rfsa_mem: sensor-rfsa@cd010000 {
113			reg = <0 0xcd010000 0 0x10000>;
114			no-map;
115		};
116
117		ramoops@dfc00000 {
118			compatible = "ramoops";
119			reg = <0 0xdfc00000 0 0x40000>;
120			console-size = <0x10000>;
121			record-size = <0x10000>;
122			ftrace-size = <0x10000>;
123			pmsg-size = <0x20000>;
124		};
125	};
126};
127
128&blsp1_i2c2 {
129	status = "okay";
130
131	/* Atmel or Synaptics touchscreen */
132};
133
134&blsp1_i2c5 {
135	status = "okay";
136
137	/* ST lsm6db0 gyro/accelerometer */
138};
139
140&blsp1_i2c6 {
141	status = "okay";
142
143	/*
144	 * NXP NCI NFC,
145	 * TI USB320 Type-C controller,
146	 * Pericom 30216a USB (de)mux switch
147	 */
148};
149
150&blsp2_i2c1 {
151	status = "okay";
152
153	/* cm36686 proximity and ambient light sensor */
154};
155
156&blsp2_i2c5 {
157	status = "okay";
158
159	/* Silabs si4705 FM transmitter */
160};
161
162&blsp2_uart2 {
163	status = "okay";
164};
165
166&pm8994_spmi_regulators {
167	VDD_APC0: s8 {
168		regulator-min-microvolt = <680000>;
169		regulator-max-microvolt = <1180000>;
170		regulator-always-on;
171		regulator-boot-on;
172	};
173
174	/* APC1 is 3-phase, but quoting downstream, s11 is "the gang leader" */
175	VDD_APC1: s11 {
176		regulator-min-microvolt = <700000>;
177		regulator-max-microvolt = <1225000>;
178		regulator-always-on;
179		regulator-boot-on;
180	};
181};
182
183&rpm_requests {
184	pm8994-regulators {
185		compatible = "qcom,rpm-pm8994-regulators";
186
187		vdd_l1-supply = <&pm8994_s7>;
188		vdd_l2_26_28-supply = <&pm8994_s3>;
189		vdd_l3_11-supply = <&pm8994_s3>;
190		vdd_l4_27_31-supply = <&pm8994_s3>;
191		vdd_l5_7-supply = <&pm8994_s3>;
192		vdd_l6_12_32-supply = <&pm8994_s5>;
193		vdd_l8_16_30-supply = <&vph_pwr>;
194		vdd_l9_10_18_22-supply = <&vph_pwr>;
195		vdd_l13_19_23_24-supply = <&vph_pwr>;
196		vdd_l14_15-supply = <&pm8994_s5>;
197		vdd_l17_29-supply = <&vph_pwr>;
198		vdd_l20_21-supply = <&vph_pwr>;
199		vdd_l25-supply = <&pm8994_s5>;
200		vdd_lvs1_2-supply = <&pm8994_s4>;
201
202		/* S1, S2, S6 and S12 are managed by RPMPD */
203
204		pm8994_s3: s3 {
205			regulator-min-microvolt = <1300000>;
206			regulator-max-microvolt = <1300000>;
207		};
208
209		pm8994_s4: s4 {
210			regulator-min-microvolt = <1800000>;
211			regulator-max-microvolt = <1800000>;
212			regulator-allow-set-load;
213			regulator-always-on;
214			regulator-system-load = <325000>;
215		};
216
217		pm8994_s5: s5 {
218			regulator-min-microvolt = <2150000>;
219			regulator-max-microvolt = <2150000>;
220		};
221
222		pm8994_s7: s7 {
223			regulator-min-microvolt = <1000000>;
224			regulator-max-microvolt = <1000000>;
225		};
226
227		/* S8, S9, S10 and S11 - SPMI-managed VDD_APC */
228
229		pm8994_l1: l1 {
230			regulator-min-microvolt = <1000000>;
231			regulator-max-microvolt = <1000000>;
232		};
233
234		pm8994_l2: l2 {
235			regulator-min-microvolt = <1250000>;
236			regulator-max-microvolt = <1250000>;
237		};
238
239		pm8994_l3: l3 {
240			regulator-min-microvolt = <1200000>;
241			regulator-max-microvolt = <1200000>;
242		};
243
244		pm8994_l4: l4 {
245			regulator-min-microvolt = <1225000>;
246			regulator-max-microvolt = <1225000>;
247		};
248
249		/* L5 is inaccessible from RPM */
250
251		pm8994_l6: l6 {
252			regulator-min-microvolt = <1800000>;
253			regulator-max-microvolt = <1800000>;
254		};
255
256		/* L7 is inaccessible from RPM */
257
258		pm8994_l8: l8 {
259			regulator-min-microvolt = <1800000>;
260			regulator-max-microvolt = <1800000>;
261		};
262
263		pm8994_l9: l9 {
264			regulator-min-microvolt = <1800000>;
265			regulator-max-microvolt = <1800000>;
266		};
267
268		pm8994_l10: l10 {
269			regulator-min-microvolt = <1800000>;
270			regulator-max-microvolt = <1800000>;
271		};
272
273		pm8994_l11: l11 {
274			regulator-min-microvolt = <1200000>;
275			regulator-max-microvolt = <1200000>;
276		};
277
278		pm8994_l12: l12 {
279			regulator-min-microvolt = <1800000>;
280			regulator-max-microvolt = <1800000>;
281		};
282
283		pm8994_l13: l13 {
284			regulator-min-microvolt = <1800000>;
285			regulator-max-microvolt = <2950000>;
286		};
287
288		pm8994_l14: l14 {
289			regulator-min-microvolt = <1800000>;
290			regulator-max-microvolt = <1800000>;
291		};
292
293		pm8994_l15: l15 {
294			regulator-min-microvolt = <1800000>;
295			regulator-max-microvolt = <1800000>;
296		};
297
298		pm8994_l16: l16 {
299			regulator-min-microvolt = <2700000>;
300			regulator-max-microvolt = <2700000>;
301		};
302
303		pm8994_l17: l17 {
304			regulator-min-microvolt = <2700000>;
305			regulator-max-microvolt = <2700000>;
306		};
307
308		pm8994_l18: l18 {
309			regulator-min-microvolt = <2850000>;
310			regulator-max-microvolt = <2850000>;
311			regulator-always-on;
312		};
313
314		pm8994_l19: l19 {
315			regulator-min-microvolt = <2800000>;
316			regulator-max-microvolt = <2800000>;
317		};
318
319		pm8994_l20: l20 {
320			regulator-min-microvolt = <2950000>;
321			regulator-max-microvolt = <2950000>;
322			regulator-always-on;
323			regulator-boot-on;
324			regulator-allow-set-load;
325			regulator-system-load = <570000>;
326		};
327
328		pm8994_l21: l21 {
329			regulator-min-microvolt = <2950000>;
330			regulator-max-microvolt = <2950000>;
331			regulator-always-on;
332		};
333
334		pm8994_l22: l22 {
335			regulator-min-microvolt = <3000000>;
336			regulator-max-microvolt = <3000000>;
337		};
338
339		pm8994_l23: l23 {
340			regulator-min-microvolt = <2800000>;
341			regulator-max-microvolt = <2800000>;
342		};
343
344		pm8994_l24: l24 {
345			regulator-min-microvolt = <3075000>;
346			regulator-max-microvolt = <3150000>;
347		};
348
349		pm8994_l25: l25 {
350			regulator-min-microvolt = <1000000>;
351			regulator-max-microvolt = <1000000>;
352		};
353
354		pm8994_l26: l26 {
355			regulator-min-microvolt = <987500>;
356			regulator-max-microvolt = <987500>;
357
358		};
359
360		pm8994_l27: l27 {
361			regulator-min-microvolt = <1050000>;
362			regulator-max-microvolt = <1050000>;
363		};
364
365		pm8994_l28: l28 {
366			regulator-min-microvolt = <1000000>;
367			regulator-max-microvolt = <1000000>;
368		};
369
370		pm8994_l29: l29 {
371			regulator-min-microvolt = <2800000>;
372			regulator-max-microvolt = <2800000>;
373		};
374
375		pm8994_l30: l30 {
376			regulator-min-microvolt = <1800000>;
377			regulator-max-microvolt = <1800000>;
378		};
379
380		pm8994_l31: l31 {
381			regulator-min-microvolt = <1262500>;
382			regulator-max-microvolt = <1262500>;
383		};
384
385		pm8994_l32: l32 {
386			regulator-min-microvolt = <1800000>;
387			regulator-max-microvolt = <1800000>;
388		};
389
390		pm8994_lvs1: lvs1 {};
391		pm8994_lvs2: lvs2 {};
392	};
393
394	pmi8994_regulators: pmi8994-regulators {
395		compatible = "qcom,rpm-pmi8994-regulators";
396		vdd_s1-supply = <&vph_pwr>;
397		vdd_bst_byp-supply = <&vph_pwr>;
398
399		pmi8994_s1: s1 {
400			regulator-min-microvolt = <1025000>;
401			regulator-max-microvolt = <1025000>;
402		};
403
404		/* S2 & S3 - VDD_GFX */
405
406		pmi8994_bby: boost-bypass {
407			regulator-min-microvolt = <3150000>;
408			regulator-max-microvolt = <3600000>;
409		};
410	};
411};
412
413&sdhc1 {
414	status = "okay";
415
416	mmc-hs400-1_8v;
417	vmmc-supply = <&pm8994_l20>;
418	vqmmc-supply = <&pm8994_s4>;
419};
420