xref: /linux/arch/arm64/boot/dts/qcom/sm6125-xiaomi-ginkgo.dts (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2025, Gabriel Gonzales <semfault@disroot.org>
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/arm/qcom,ids.h>
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/input/gpio-keys.h>
12#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
13#include "sm6125.dtsi"
14#include "pm6125.dtsi"
15
16/ {
17	model = "Xiaomi Redmi Note 8";
18	compatible = "xiaomi,ginkgo", "qcom,sm6125";
19	chassis-type = "handset";
20
21	/* required for bootloader to select correct board */
22	qcom,msm-id = <QCOM_ID_SM6125>;
23	qcom,board-id = <22 0>;
24
25	chosen {
26		#address-cells = <2>;
27		#size-cells = <2>;
28		ranges;
29
30		framebuffer0: framebuffer@5c000000 {
31			compatible = "simple-framebuffer";
32			reg = <0 0x5c000000 0 (2340 * 1080 * 4)>;
33			width = <1080>;
34			height = <2340>;
35			stride = <(1080 * 4)>;
36			format = "a8r8g8b8";
37		};
38	};
39
40	reserved-memory {
41		debug_mem: debug@ffb00000 {
42			reg = <0x0 0xffb00000 0x0 0xc0000>;
43			no-map;
44		};
45
46		last_log_mem: lastlog@ffbc0000 {
47			reg = <0x0 0xffbc0000 0x0 0x80000>;
48			no-map;
49		};
50
51		pstore_mem: ramoops@ffc00000 {
52			compatible = "ramoops";
53			reg = <0x0 0xffc40000 0x0 0xc0000>;
54			record-size = <0x1000>;
55			console-size = <0x40000>;
56			pmsg-size = <0x20000>;
57		};
58
59		cmdline_mem: memory@ffd00000 {
60			reg = <0x0 0xffd40000 0x0 0x1000>;
61			no-map;
62		};
63	};
64
65	extcon_usb: extcon-usb {
66		compatible = "linux,extcon-usb-gpio";
67		id-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
68	};
69
70	gpio-keys {
71		compatible = "gpio-keys";
72
73		pinctrl-0 = <&vol_up_n>;
74		pinctrl-names = "default";
75
76		key-volume-up {
77			label = "Volume Up";
78			gpios = <&pm6125_gpios 6 GPIO_ACTIVE_LOW>;
79			linux,code = <KEY_VOLUMEUP>;
80			debounce-interval = <15>;
81			linux,can-disable;
82			wakeup-source;
83		};
84	};
85};
86
87&pm6125_gpios {
88	vol_up_n: vol-up-n-state {
89		pins = "gpio6";
90		function = "normal";
91		power-source = <1>;
92		bias-pull-up;
93		input-enable;
94	};
95};
96
97&hsusb_phy1 {
98	vdd-supply = <&vreg_l7a>;
99	vdda-pll-supply = <&vreg_l10a>;
100	vdda-phy-dpdm-supply = <&vreg_l15a>;
101	status = "okay";
102};
103
104&pon_pwrkey {
105	status = "okay";
106};
107
108&pon_resin {
109	linux,code = <KEY_VOLUMEDOWN>;
110	status = "okay";
111};
112
113&rpm_requests {
114	regulators-0 {
115		compatible = "qcom,rpm-pm6125-regulators";
116
117		vreg_s6a: s6 {
118			regulator-min-microvolt = <936000>;
119			regulator-max-microvolt = <1422000>;
120		};
121
122		vreg_l1a: l1 {
123			regulator-min-microvolt = <1200000>;
124			regulator-max-microvolt = <1256000>;
125		};
126
127		vreg_l2a: l2 {
128			regulator-min-microvolt = <1000000>;
129			regulator-max-microvolt = <1056000>;
130		};
131
132		vreg_l3a: l3 {
133			regulator-min-microvolt = <1000000>;
134			regulator-max-microvolt = <1064000>;
135		};
136
137		vreg_l4a: l4 {
138			regulator-min-microvolt = <872000>;
139			regulator-max-microvolt = <976000>;
140			regulator-allow-set-load;
141		};
142
143		vreg_l5a: l5 {
144			regulator-min-microvolt = <1648000>;
145			regulator-max-microvolt = <2950000>;
146			regulator-allow-set-load;
147		};
148
149		vreg_l6a: l6 {
150			regulator-min-microvolt = <576000>;
151			regulator-max-microvolt = <656000>;
152		};
153
154		vreg_l7a: l7 {
155			regulator-min-microvolt = <872000>;
156			regulator-max-microvolt = <976000>;
157		};
158
159		vreg_l8a: l8 {
160			regulator-min-microvolt = <400000>;
161			regulator-max-microvolt = <728000>;
162		};
163
164		vreg_l9a: l9 {
165			regulator-min-microvolt = <1800000>;
166			regulator-max-microvolt = <1896000>;
167		};
168
169		vreg_l10a: l10 {
170			regulator-min-microvolt = <1800000>;
171			regulator-max-microvolt = <1896000>;
172			regulator-allow-set-load;
173		};
174
175		vreg_l11a: l11 {
176			regulator-min-microvolt = <1800000>;
177			regulator-max-microvolt = <1952000>;
178			regulator-allow-set-load;
179		};
180
181		vreg_l12a: l12 {
182			regulator-min-microvolt = <1800000>;
183			regulator-max-microvolt = <1996000>;
184		};
185
186		vreg_l13a: l13 {
187			regulator-min-microvolt = <1800000>;
188			regulator-max-microvolt = <1832000>;
189		};
190
191		vreg_l14a: l14 {
192			regulator-min-microvolt = <1800000>;
193			regulator-max-microvolt = <1904000>;
194		};
195
196		vreg_l15a: l15 {
197			regulator-min-microvolt = <3104000>;
198			regulator-max-microvolt = <3232000>;
199		};
200
201		vreg_l16a: l16 {
202			regulator-min-microvolt = <1800000>;
203			regulator-max-microvolt = <1904000>;
204		};
205
206		vreg_l17a: l17 {
207			regulator-min-microvolt = <1248000>;
208			regulator-max-microvolt = <1304000>;
209		};
210
211		vreg_l18a: l18 {
212			regulator-min-microvolt = <1200000>;
213			regulator-max-microvolt = <1264000>;
214			regulator-allow-set-load;
215		};
216
217		vreg_l19a: l19 {
218			regulator-min-microvolt = <1648000>;
219			regulator-max-microvolt = <2952000>;
220		};
221
222		vreg_l20a: l20 {
223			regulator-min-microvolt = <1648000>;
224			regulator-max-microvolt = <2952000>;
225		};
226
227		vreg_l21a: l21 {
228			regulator-min-microvolt = <2600000>;
229			regulator-max-microvolt = <2856000>;
230		};
231
232		vreg_l22a: l22 {
233			regulator-min-microvolt = <2944000>;
234			regulator-max-microvolt = <2950000>;
235			regulator-allow-set-load;
236		};
237
238		vreg_l23a: l23 {
239			regulator-min-microvolt = <3000000>;
240			regulator-max-microvolt = <3400000>;
241		};
242
243		vreg_l24a: l24 {
244			regulator-min-microvolt = <2944000>;
245			regulator-max-microvolt = <2950000>;
246			regulator-allow-set-load;
247		};
248
249	};
250};
251
252&sdc2_off_state {
253	sd-cd-pins {
254		pins = "gpio98";
255		function = "gpio";
256		drive-strength = <2>;
257		bias-disable;
258	};
259};
260
261&sdc2_on_state {
262	sd-cd-pins {
263		pins = "gpio98";
264		function = "gpio";
265		drive-strength = <2>;
266		bias-pull-up;
267	};
268};
269
270&sdhc_1 {
271	vmmc-supply = <&vreg_l24a>;
272	vqmmc-supply = <&vreg_l11a>;
273	status = "okay";
274};
275
276&sdhc_2 {
277	cd-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
278	vmmc-supply = <&vreg_l22a>;
279	vqmmc-supply = <&vreg_l5a>;
280	no-sdio;
281	no-mmc;
282	status = "okay";
283};
284
285&tlmm {
286	gpio-reserved-ranges = <22 2>, <28 6>;
287};
288
289&usb3 {
290	status = "okay";
291};
292
293&usb3_dwc3 {
294	extcon = <&extcon_usb>;
295};
296