Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / qcs404-evb.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (c) 2018, Linaro Limited
4  */
5
6 #include <dt-bindings/gpio/gpio.h>
7 #include "qcs404.dtsi"
8 #include "pms405.dtsi"
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
11
12 / {
13         aliases {
14                 serial0 = &blsp1_uart2;
15                 serial1 = &blsp1_uart3;
16         };
17
18         chosen {
19                 stdout-path = "serial0";
20         };
21
22         vph_pwr: vph-pwr-regulator {
23                 compatible = "regulator-fixed";
24                 regulator-name = "vph_pwr";
25                 regulator-always-on;
26                 regulator-boot-on;
27         };
28
29         vdd_ch0_3p3:
30         vdd_esmps3_3p3: vdd-esmps3-3p3-regulator {
31                 compatible = "regulator-fixed";
32                 regulator-name = "eSMPS3_3P3";
33
34                 regulator-min-microvolt = <3300000>;
35                 regulator-max-microvolt = <3300000>;
36                 regulator-always-on;
37         };
38
39         usb3_vbus_reg: regulator-usb3-vbus {
40                 compatible = "regulator-fixed";
41                 regulator-name = "VBUS_BOOST_5V";
42                 regulator-min-microvolt = <5000000>;
43                 regulator-max-microvolt = <5000000>;
44                 gpio = <&pms405_gpios 3 GPIO_ACTIVE_HIGH>;
45                 pinctrl-names = "default";
46                 pinctrl-0 = <&usb_vbus_boost_pin>;
47                 vin-supply = <&vph_pwr>;
48                 enable-active-high;
49
50                 /* TODO: Drop this when introducing role switching */
51                 regulator-always-on;
52         };
53 };
54
55 &blsp1_uart3 {
56         status = "okay";
57
58         bluetooth {
59                 compatible = "qcom,wcn3990-bt";
60                 vddio-supply = <&vreg_l6_1p8>;
61                 vddxo-supply = <&vreg_l5_1p8>;
62                 vddrf-supply = <&vreg_l1_1p3>;
63                 vddch0-supply = <&vdd_ch0_3p3>;
64
65                 local-bd-address = [ 02 00 00 00 5a ad ];
66
67                 max-speed = <3200000>;
68         };
69 };
70
71 &blsp1_dma {
72         qcom,controlled-remotely;
73 };
74
75 &blsp2_dma {
76         qcom,controlled-remotely;
77 };
78
79 &gcc {
80         protected-clocks = <GCC_BIMC_CDSP_CLK>,
81                            <GCC_CDSP_CFG_AHB_CLK>,
82                            <GCC_CDSP_BIMC_CLK_SRC>,
83                            <GCC_CDSP_TBU_CLK>,
84                            <141>, /* GCC_WCSS_Q6_AHB_CLK */
85                            <142>; /* GCC_WCSS_Q6_AXIM_CLK */
86 };
87
88 &pms405_spmi_regulators {
89         vdd_s3-supply = <&vph_pwr>;
90
91         pms405_s3: s3 {
92                 regulator-always-on;
93                 regulator-boot-on;
94                 regulator-name = "vdd_apc";
95                 regulator-initial-mode = <1>;
96                 regulator-min-microvolt = <1048000>;
97                 regulator-max-microvolt = <1384000>;
98         };
99 };
100
101 &pcie {
102         status = "okay";
103
104         perst-gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
105
106         pinctrl-names = "default";
107         pinctrl-0 = <&perst_state>;
108 };
109
110 &pcie_phy {
111         status = "okay";
112
113         vdda-vp-supply = <&vreg_l3_1p05>;
114         vdda-vph-supply = <&vreg_l5_1p8>;
115 };
116
117 &remoteproc_adsp {
118         status = "okay";
119 };
120
121 &remoteproc_cdsp {
122         status = "okay";
123 };
124
125 &remoteproc_wcss {
126         status = "okay";
127 };
128
129 &rpm_requests {
130         regulators {
131                 compatible = "qcom,rpm-pms405-regulators";
132
133                 vdd_s1-supply = <&vph_pwr>;
134                 vdd_s2-supply = <&vph_pwr>;
135                 vdd_s3-supply = <&vph_pwr>;
136                 vdd_s4-supply = <&vph_pwr>;
137                 vdd_s5-supply = <&vph_pwr>;
138                 vdd_l1_l2-supply = <&vreg_s5_1p35>;
139                 vdd_l3_l8-supply = <&vreg_s5_1p35>;
140                 vdd_l4-supply = <&vreg_s5_1p35>;
141                 vdd_l5_l6-supply = <&vreg_s4_1p8>;
142                 vdd_l7-supply = <&vph_pwr>;
143                 vdd_l9-supply = <&vreg_s5_1p35>;
144                 vdd_l10_l11_l12_l13-supply = <&vph_pwr>;
145
146                 vreg_s4_1p8: s4 {
147                         regulator-min-microvolt = <1728000>;
148                         regulator-max-microvolt = <1920000>;
149                 };
150
151                 vreg_s5_1p35: s5 {
152                         regulator-min-microvolt = <1352000>;
153                         regulator-max-microvolt = <1352000>;
154                 };
155
156                 vreg_l1_1p3: l1 {
157                         regulator-min-microvolt = <1240000>;
158                         regulator-max-microvolt = <1352000>;
159                 };
160
161                 vreg_l2_1p275: l2 {
162                         regulator-min-microvolt = <1048000>;
163                         regulator-max-microvolt = <1280000>;
164                 };
165
166                 vreg_l3_1p05: l3 {
167                         regulator-min-microvolt = <1048000>;
168                         regulator-max-microvolt = <1160000>;
169                 };
170
171                 vreg_l4_1p2: l4 {
172                         regulator-min-microvolt = <1144000>;
173                         regulator-max-microvolt = <1256000>;
174                 };
175
176                 vreg_l5_1p8: l5 {
177                         regulator-min-microvolt = <1800000>;
178                         regulator-max-microvolt = <1800000>;
179                 };
180
181                 vreg_l6_1p8: l6 {
182                         regulator-min-microvolt = <1800000>;
183                         regulator-max-microvolt = <1800000>;
184                         regulator-always-on;
185                 };
186
187                 vreg_l7_1p8: l7 {
188                         regulator-min-microvolt = <1616000>;
189                         regulator-max-microvolt = <3000000>;
190                 };
191
192                 vreg_l8_1p2: l8 {
193                         regulator-min-microvolt = <1136000>;
194                         regulator-max-microvolt = <1352000>;
195                 };
196
197                 vreg_l10_3p3: l10 {
198                         regulator-min-microvolt = <2936000>;
199                         regulator-max-microvolt = <3088000>;
200                 };
201
202                 vreg_l11_sdc2: l11 {
203                         regulator-min-microvolt = <2696000>;
204                         regulator-max-microvolt = <3304000>;
205                 };
206
207                 vreg_l12_3p3: l12 {
208                         regulator-min-microvolt = <3050000>;
209                         regulator-max-microvolt = <3300000>;
210                 };
211
212                 vreg_l13_3p3: l13 {
213                         regulator-min-microvolt = <3000000>;
214                         regulator-max-microvolt = <3300000>;
215                 };
216         };
217 };
218
219 &sdcc1 {
220         status = "okay";
221
222         supports-cqe;
223         mmc-ddr-1_8v;
224         mmc-hs400-1_8v;
225         bus-width = <8>;
226         non-removable;
227
228         pinctrl-names = "default", "sleep";
229         pinctrl-0 = <&sdc1_on>;
230         pinctrl-1 = <&sdc1_off>;
231 };
232
233 &tlmm {
234         perst_state: perst-state {
235                 pins = "gpio43";
236                 function = "gpio";
237
238                 drive-strength = <2>;
239                 bias-disable;
240                 output-low;
241         };
242
243         sdc1_on: sdc1-on-state {
244                 clk-pins {
245                         pins = "sdc1_clk";
246                         bias-disable;
247                         drive-strength = <16>;
248                 };
249
250                 cmd-pins {
251                         pins = "sdc1_cmd";
252                         bias-pull-up;
253                         drive-strength = <10>;
254                 };
255
256                 data-pins {
257                         pins = "sdc1_data";
258                         bias-pull-up;
259                         drive-strength = <10>;
260                 };
261
262                 rclk-pins {
263                         pins = "sdc1_rclk";
264                         bias-pull-down;
265                 };
266         };
267
268         sdc1_off: sdc1-off-state {
269                 clk-pins {
270                         pins = "sdc1_clk";
271                         bias-disable;
272                         drive-strength = <2>;
273                 };
274
275                 cmd-pins {
276                         pins = "sdc1_cmd";
277                         bias-pull-up;
278                         drive-strength = <2>;
279                 };
280
281                 data-pins {
282                         pins = "sdc1_data";
283                         bias-pull-up;
284                         drive-strength = <2>;
285                 };
286
287                 rclk-pins {
288                         pins = "sdc1_rclk";
289                         bias-pull-down;
290                 };
291         };
292
293         usb3_id_pin: usb3-id-state {
294                 pins = "gpio116";
295                 function = "gpio";
296
297                 drive-strength = <2>;
298                 bias-pull-up;
299         };
300 };
301
302 &pms405_gpios {
303         usb_vbus_boost_pin: usb-vbus-boost-state {
304                 pinconf {
305                         pins = "gpio3";
306                         function = PMIC_GPIO_FUNC_NORMAL;
307                         output-low;
308                         power-source = <1>;
309                 };
310         };
311         usb3_vbus_pin: usb3-vbus-state {
312                 pinconf {
313                         pins = "gpio12";
314                         function = PMIC_GPIO_FUNC_NORMAL;
315                         input-enable;
316                         bias-pull-down;
317                         power-source = <1>;
318                 };
319         };
320 };
321
322 &usb2 {
323         status = "okay";
324 };
325
326 &usb2_phy_sec {
327         vdd-supply = <&vreg_l4_1p2>;
328         vdda1p8-supply = <&vreg_l5_1p8>;
329         vdda3p3-supply = <&vreg_l12_3p3>;
330         status = "okay";
331 };
332
333 &usb3 {
334         status = "okay";
335
336 };
337
338 &usb3_dwc3 {
339         dr_mode = "host";
340 };
341
342 &usb2_phy_prim {
343         vdd-supply = <&vreg_l4_1p2>;
344         vdda1p8-supply = <&vreg_l5_1p8>;
345         vdda3p3-supply = <&vreg_l12_3p3>;
346         status = "okay";
347 };
348
349 &usb3_phy {
350         vdd-supply = <&vreg_l3_1p05>;
351         vdda1p8-supply = <&vreg_l5_1p8>;
352         status = "okay";
353 };
354
355 &wifi {
356         status = "okay";
357         vdd-0.8-cx-mx-supply = <&vreg_l2_1p275>;
358         vdd-1.8-xo-supply = <&vreg_l5_1p8>;
359         vdd-1.3-rfa-supply = <&vreg_l1_1p3>;
360 };
361
362 /* PINCTRL - additions to nodes defined in qcs404.dtsi */
363
364 &blsp1_uart2_default {
365         rx-pins {
366                 drive-strength = <2>;
367                 bias-disable;
368         };
369
370         tx-pins {
371                 drive-strength = <2>;
372                 bias-disable;
373         };
374 };
375
376 &blsp1_uart3_default {
377         cts-pins {
378                 bias-disable;
379         };
380
381         rts-tx-pins {
382                 drive-strength = <2>;
383                 bias-disable;
384         };
385
386         rx-pins {
387                 bias-pull-up;
388         };
389 };