Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / msm8953-xiaomi-daisy.dts
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2022, Alejandro Tafalla
4  */
5 /dts-v1/;
6
7 #include "msm8953.dtsi"
8 #include "pm8953.dtsi"
9 #include "pmi8950.dtsi"
10
11 /delete-node/ &adsp_fw_mem;
12 /delete-node/ &qseecom_mem;
13 /delete-node/ &wcnss_fw_mem;
14
15 / {
16         model = "Xiaomi Mi A2 Lite";
17         compatible = "xiaomi,daisy", "qcom,msm8953";
18         chassis-type = "handset";
19         qcom,msm-id = <293 0>;
20         qcom,board-id = <0x1000b 0x9>;
21
22         chosen {
23                 #address-cells = <2>;
24                 #size-cells = <2>;
25                 ranges;
26
27                 framebuffer@90001000 {
28                         compatible = "simple-framebuffer";
29                         reg = <0 0x90001000 0 (1920 * 2280 * 3)>;
30
31                         width = <1080>;
32                         height = <2280>;
33                         stride = <(1080 * 3)>;
34                         format = "r8g8b8";
35
36                         power-domains = <&gcc MDSS_GDSC>;
37
38                         clocks = <&gcc GCC_MDSS_AHB_CLK>,
39                                  <&gcc GCC_MDSS_AXI_CLK>,
40                                  <&gcc GCC_MDSS_VSYNC_CLK>,
41                                  <&gcc GCC_MDSS_MDP_CLK>,
42                                  <&gcc GCC_MDSS_BYTE0_CLK>,
43                                  <&gcc GCC_MDSS_PCLK0_CLK>,
44                                  <&gcc GCC_MDSS_ESC0_CLK>;
45                 };
46         };
47
48         gpio-keys {
49                 compatible = "gpio-keys";
50
51                 pinctrl-names = "default";
52                 pinctrl-0 = <&gpio_key_default>;
53
54                 key-volume-up {
55                         label = "Volume Up";
56                         gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
57                         linux,code = <KEY_VOLUMEUP>;
58                 };
59         };
60
61         reserved-memory {
62                 qseecom_mem: qseecom@84a00000 {
63                         reg = <0x0 0x84a00000 0x0 0x1900000>;
64                         no-map;
65                 };
66
67                 adsp_fw_mem: adsp@8d600000 {
68                         reg = <0x0 0x8d600000 0x0 0x1200000>;
69                         no-map;
70                 };
71
72                 wcnss_fw_mem: wcnss@8e800000 {
73                         reg = <0x0 0x8e800000 0x0 0x700000>;
74                         no-map;
75                 };
76         };
77
78         /*
79          * We bitbang on &i2c_4 because BLSP is protected by TZ as sensors are
80          * normally proxied via ADSP firmware. GPIOs aren't protected.
81          */
82         i2c-sensors {
83                 compatible = "i2c-gpio";
84                 sda-gpios = <&tlmm 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
85                 scl-gpios = <&tlmm 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
86                 i2c-gpio,delay-us = <2>; /* ~100 kHz */
87                 #address-cells = <1>;
88                 #size-cells = <0>;
89
90                 imu@6a {
91                         compatible = "st,lsm6dsl";
92                         reg = <0x6a>;
93                         vdd-supply = <&pm8953_l10>;
94                         vddio-supply = <&pm8953_l6>;
95                         mount-matrix = "-1", "0", "0",
96                                         "0", "-1", "0",
97                                         "0", "0", "1";
98                 };
99         };
100
101         vph_pwr: vph-pwr-regulator {
102                 compatible = "regulator-fixed";
103                 regulator-name = "vph_pwr";
104                 regulator-always-on;
105                 regulator-boot-on;
106         };
107 };
108
109 &hsusb_phy {
110         vdd-supply = <&pm8953_l3>;
111         vdda-pll-supply = <&pm8953_l7>;
112         vdda-phy-dpdm-supply = <&pm8953_l13>;
113
114         status = "okay";
115 };
116
117 &i2c_2 {
118         status = "okay";
119
120         speaker_codec: audio-codec@3a {
121                 compatible = "maxim,max98927";
122                 reg = <0x3a>;
123
124                 reset-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
125
126                 vmon-slot-no = <1>;
127                 imon-slot-no = <1>;
128                 maxim,interleave-mode;
129
130                 #sound-dai-cells = <0>;
131         };
132 };
133
134 &i2c_3 {
135         status = "okay";
136
137         touchscreen@38 {
138                 compatible = "edt,edt-ft5406";
139                 reg = <0x38>;
140
141                 interrupt-parent = <&tlmm>;
142                 interrupts = <65 IRQ_TYPE_EDGE_FALLING>;
143
144                 reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
145
146                 vcc-supply = <&pm8953_l10>;
147
148                 touchscreen-size-x = <1080>;
149                 touchscreen-size-y = <2280>;
150         };
151 };
152
153 &pm8953_resin {
154         linux,code = <KEY_VOLUMEDOWN>;
155         status = "okay";
156 };
157
158 &pmi8950_wled {
159         qcom,current-limit-microamp = <20000>;
160         qcom,num-strings = <2>;
161
162         status = "okay";
163 };
164
165 &rpm_requests {
166         regulators {
167                 compatible = "qcom,rpm-pm8953-regulators";
168
169                 vdd_s1-supply = <&vph_pwr>;
170                 vdd_s2-supply = <&vph_pwr>;
171                 vdd_s3-supply = <&vph_pwr>;
172                 vdd_s4-supply = <&vph_pwr>;
173                 vdd_s5-supply = <&vph_pwr>;
174                 vdd_s6-supply = <&vph_pwr>;
175                 vdd_s7-supply = <&vph_pwr>;
176                 vdd_l1-supply = <&pm8953_s3>;
177                 vdd_l2_l3-supply = <&pm8953_s3>;
178                 vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
179                 vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
180                 vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
181
182                 pm8953_s1: s1 {
183                         regulator-min-microvolt = <863000>;
184                         regulator-max-microvolt = <1152000>;
185                 };
186
187                 pm8953_s3: s3 {
188                         regulator-min-microvolt = <1224000>;
189                         regulator-max-microvolt = <1224000>;
190                 };
191
192                 pm8953_s4: s4 {
193                         regulator-min-microvolt = <1896000>;
194                         regulator-max-microvolt = <2048000>;
195                 };
196
197                 pm8953_l1: l1 {
198                         regulator-min-microvolt = <1000000>;
199                         regulator-max-microvolt = <1100000>;
200                 };
201
202                 pm8953_l2: l2 {
203                         regulator-min-microvolt = <975000>;
204                         regulator-max-microvolt = <1225000>;
205                 };
206
207                 pm8953_l3: l3 {
208                         regulator-min-microvolt = <925000>;
209                         regulator-max-microvolt = <925000>;
210                         regulator-allow-set-load;
211                 };
212
213                 pm8953_l5: l5 {
214                         regulator-min-microvolt = <1800000>;
215                         regulator-max-microvolt = <1800000>;
216                 };
217
218                 pm8953_l6: l6 {
219                         regulator-min-microvolt = <1800000>;
220                         regulator-max-microvolt = <1800000>;
221                         regulator-always-on;
222                 };
223
224                 pm8953_l7: l7 {
225                         regulator-min-microvolt = <1800000>;
226                         regulator-max-microvolt = <1900000>;
227                 };
228
229                 pm8953_l8: l8 {
230                         regulator-min-microvolt = <2900000>;
231                         regulator-max-microvolt = <2900000>;
232                 };
233
234                 pm8953_l9: l9 {
235                         regulator-min-microvolt = <3000000>;
236                         regulator-max-microvolt = <3300000>;
237                 };
238
239                 pm8953_l10: l10 {
240                         regulator-min-microvolt = <2850000>;
241                         regulator-max-microvolt = <2850000>;
242                         regulator-always-on;
243                 };
244
245                 pm8953_l11: l11 {
246                         regulator-min-microvolt = <2950000>;
247                         regulator-max-microvolt = <2950000>;
248                 };
249
250                 pm8953_l12: l12 {
251                         regulator-min-microvolt = <1800000>;
252                         regulator-max-microvolt = <2950000>;
253                 };
254
255                 pm8953_l13: l13 {
256                         regulator-min-microvolt = <3125000>;
257                         regulator-max-microvolt = <3125000>;
258                 };
259
260                 pm8953_l16: l16 {
261                         regulator-min-microvolt = <1800000>;
262                         regulator-max-microvolt = <1800000>;
263                 };
264
265                 pm8953_l17: l17 {
266                         regulator-min-microvolt = <2850000>;
267                         regulator-max-microvolt = <2850000>;
268                 };
269
270                 pm8953_l19: l19 {
271                         regulator-min-microvolt = <1200000>;
272                         regulator-max-microvolt = <1350000>;
273                 };
274
275                 pm8953_l22: l22 {
276                         regulator-min-microvolt = <2800000>;
277                         regulator-max-microvolt = <2850000>;
278                         regulator-always-on;
279                 };
280
281                 pm8953_l23: l23 {
282                         regulator-min-microvolt = <975000>;
283                         regulator-max-microvolt = <1225000>;
284                 };
285         };
286 };
287
288 &sdhc_1 {
289         vmmc-supply = <&pm8953_l8>;
290         vqmmc-supply = <&pm8953_l5>;
291
292         status = "okay";
293 };
294
295 &sdhc_2 {
296         vmmc-supply = <&pm8953_l11>;
297         vqmmc-supply = <&pm8953_l12>;
298
299         cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
300
301         pinctrl-names = "default", "sleep";
302         pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
303         pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
304
305         status = "okay";
306 };
307
308 &tlmm {
309         gpio-reserved-ranges = <0 4>, <16 4>, <135 4>;
310 };
311
312 &uart_0 {
313         pinctrl-names = "default";
314         pinctrl-0 = <&uart_console_active>;
315
316         status = "okay";
317 };
318
319 &usb3 {
320         status = "okay";
321 };
322
323 &usb3_dwc3 {
324         dr_mode = "peripheral";
325 };