blob: 8ab30c01712e0b7c0cc1b403e0fe01650315b9e2 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2023, Luca Weiss <luca.weiss@fairphone.com>
4 */
5
6/dts-v1/;
7
8/* PM7250B is configured to use SID8/9 */
9#define PM7250B_SID 8
10#define PM7250B_SID1 9
11
Tom Rini93743d22024-04-01 09:08:13 -040012#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
13#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
Tom Rini53633a82024-02-29 12:33:36 -050014#include <dt-bindings/leds/common.h>
15#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
16#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
17#include "sc7280.dtsi"
18#include "pm7250b.dtsi"
19#include "pm7325.dtsi"
20#include "pm8350c.dtsi" /* PM7350C */
21#include "pmk8350.dtsi" /* PMK7325 */
22
23/delete-node/ &rmtfs_mem;
24
25/ {
26 model = "Fairphone 5";
27 compatible = "fairphone,fp5", "qcom,qcm6490";
28 chassis-type = "handset";
29
30 aliases {
31 serial0 = &uart5;
32 serial1 = &uart7;
33 };
34
35 chosen {
36 #address-cells = <2>;
37 #size-cells = <2>;
38 ranges;
39
40 framebuffer0: framebuffer@a000000 {
41 compatible = "simple-framebuffer";
42 reg = <0x0 0xe1000000 0x0 (2700 * 1224 * 4)>;
43 width = <1224>;
44 height = <2700>;
45 stride = <(1224 * 4)>;
46 format = "a8r8g8b8";
47 clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
48 };
49 };
50
51 gpio-keys {
52 compatible = "gpio-keys";
53
54 pinctrl-0 = <&volume_down_default>, <&hall_sensor_default>;
55 pinctrl-names = "default";
56
57 key-volume-up {
58 label = "Volume up";
59 gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
60 linux,code = <KEY_VOLUMEUP>;
61 };
62
63 /* Powered by the always-on vreg_l8c */
64 event-hall-sensor {
65 label = "Hall Effect Sensor";
66 gpios = <&tlmm 155 GPIO_ACTIVE_LOW>;
67 linux,input-type = <EV_SW>;
68 linux,code = <SW_LID>;
69 linux,can-disable;
70 wakeup-source;
71 };
72 };
73
Tom Rini6bb92fc2024-05-20 09:54:58 -060074 pmic-glink {
75 compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
76
77 #address-cells = <1>;
78 #size-cells = <0>;
79
Tom Rini762f85b2024-07-20 11:15:10 -060080 orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
81
Tom Rini6bb92fc2024-05-20 09:54:58 -060082 connector@0 {
83 compatible = "usb-c-connector";
84 reg = <0>;
85 power-role = "dual";
86 data-role = "dual";
87
88 ports {
89 #address-cells = <1>;
90 #size-cells = <0>;
91
92 port@0 {
93 reg = <0>;
94
95 pmic_glink_hs_in: endpoint {
96 remote-endpoint = <&usb_1_dwc3_hs>;
97 };
98 };
99
100 port@1 {
101 reg = <1>;
102
103 pmic_glink_ss_in: endpoint {
104 remote-endpoint = <&usb_1_dwc3_ss>;
105 };
106 };
107 };
108 };
109 };
110
Tom Rini53633a82024-02-29 12:33:36 -0500111 reserved-memory {
112 cont_splash_mem: cont-splash@e1000000 {
113 reg = <0x0 0xe1000000 0x0 0x2300000>;
114 no-map;
115 };
116
Tom Rini53633a82024-02-29 12:33:36 -0500117 cdsp_mem: cdsp@88f00000 {
118 reg = <0x0 0x88f00000 0x0 0x1e00000>;
119 no-map;
120 };
121
Tom Rini6bb92fc2024-05-20 09:54:58 -0600122 removed_mem: removed@c0000000 {
123 reg = <0x0 0xc0000000 0x0 0x5100000>;
124 no-map;
125 };
126
Tom Rini53633a82024-02-29 12:33:36 -0500127 rmtfs_mem: memory@f8500000 {
128 compatible = "qcom,rmtfs-mem";
129 reg = <0x0 0xf8500000 0x0 0x600000>;
130 no-map;
131
132 qcom,client-id = <1>;
133 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>;
134 };
135 };
136
137 ois_avdd0_1p8: regulator-ois-avdd0-1p8 {
138 compatible = "regulator-fixed";
139 regulator-name = "OIS_AVDD0_1P8";
140 regulator-min-microvolt = <1800000>;
141 regulator-max-microvolt = <1800000>;
142 gpio = <&tlmm 157 GPIO_ACTIVE_HIGH>;
143 enable-active-high;
144 vin-supply = <&vreg_bob>;
145 };
146
147 ois_dvdd_1p1: regulator-ois-dvdd-1p1 {
148 compatible = "regulator-fixed";
149 regulator-name = "OIS_DVDD_1P1";
150 regulator-min-microvolt = <1100000>;
151 regulator-max-microvolt = <1100000>;
152 gpio = <&tlmm 97 GPIO_ACTIVE_HIGH>;
153 enable-active-high;
154 vin-supply = <&vreg_s8b>;
155 };
156
157 afvdd_2p8: regulator-afvdd-2p8 {
158 compatible = "regulator-fixed";
159 regulator-name = "AFVDD_2P8";
160 regulator-min-microvolt = <2800000>;
161 regulator-max-microvolt = <2800000>;
162 gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>;
163 enable-active-high;
164 vin-supply = <&vreg_bob>;
165 };
Tom Rini93743d22024-04-01 09:08:13 -0400166
167 thermal-zones {
168 camera-thermal {
169 polling-delay-passive = <0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600170
Tom Rini93743d22024-04-01 09:08:13 -0400171 thermal-sensors = <&pmk8350_adc_tm 2>;
172
173 trips {
174 active-config0 {
175 temperature = <125000>;
176 hysteresis = <1000>;
177 type = "passive";
178 };
179 };
180 };
181
182 chg-skin-thermal {
183 polling-delay-passive = <0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600184
Tom Rini93743d22024-04-01 09:08:13 -0400185 thermal-sensors = <&pm7250b_adc_tm 0>;
186
187 trips {
188 active-config0 {
189 temperature = <125000>;
190 hysteresis = <1000>;
191 type = "passive";
192 };
193 };
194 };
195
196 conn-thermal {
197 polling-delay-passive = <0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600198
Tom Rini93743d22024-04-01 09:08:13 -0400199 thermal-sensors = <&pm7250b_adc_tm 1>;
200
201 trips {
202 active-config0 {
203 temperature = <125000>;
204 hysteresis = <1000>;
205 type = "passive";
206 };
207 };
208 };
209
Tom Rini6b642ac2024-10-01 12:20:28 -0600210 pm8008-thermal {
211 polling-delay-passive = <100>;
212 thermal-sensors = <&pm8008>;
213
214 trips {
215 trip0 {
216 temperature = <95000>;
217 hysteresis = <0>;
218 type = "passive";
219 };
220
221 trip1 {
222 temperature = <115000>;
223 hysteresis = <0>;
224 type = "critical";
225 };
226 };
227 };
228
Tom Rini93743d22024-04-01 09:08:13 -0400229 quiet-thermal {
230 polling-delay-passive = <0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600231
Tom Rini93743d22024-04-01 09:08:13 -0400232 thermal-sensors = <&pmk8350_adc_tm 1>;
233
234 trips {
235 active-config0 {
236 temperature = <125000>;
237 hysteresis = <1000>;
238 type = "passive";
239 };
240 };
241 };
242
243 rear-cam-thermal {
244 polling-delay-passive = <0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600245
Tom Rini93743d22024-04-01 09:08:13 -0400246 thermal-sensors = <&pmk8350_adc_tm 4>;
247
248 trips {
249 active-config0 {
250 temperature = <125000>;
251 hysteresis = <1000>;
252 type = "passive";
253 };
254 };
255 };
256
257 sdm-skin-thermal {
258 polling-delay-passive = <0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600259
Tom Rini93743d22024-04-01 09:08:13 -0400260 thermal-sensors = <&pmk8350_adc_tm 3>;
261
262 trips {
263 active-config0 {
264 temperature = <125000>;
265 hysteresis = <1000>;
266 type = "passive";
267 };
268 };
269 };
270
271 xo-thermal {
272 polling-delay-passive = <0>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600273
Tom Rini93743d22024-04-01 09:08:13 -0400274 thermal-sensors = <&pmk8350_adc_tm 0>;
275
276 trips {
277 active-config0 {
278 temperature = <125000>;
279 hysteresis = <1000>;
280 type = "passive";
281 };
282 };
283 };
284 };
Tom Rini53633a82024-02-29 12:33:36 -0500285};
286
287&apps_rsc {
288 regulators-0 {
289 compatible = "qcom,pm7325-rpmh-regulators";
290 qcom,pmic-id = "b";
291
292 vreg_s1b: smps1 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600293 regulator-name = "vreg_s1b";
Tom Rini53633a82024-02-29 12:33:36 -0500294 regulator-min-microvolt = <1840000>;
295 regulator-max-microvolt = <2040000>;
296 };
297
298 vreg_s7b: smps7 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600299 regulator-name = "vreg_s7b";
Tom Rini53633a82024-02-29 12:33:36 -0500300 regulator-min-microvolt = <535000>;
301 regulator-max-microvolt = <1120000>;
302 };
303
304 vreg_s8b: smps8 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600305 regulator-name = "vreg_s8b";
Tom Rini53633a82024-02-29 12:33:36 -0500306 regulator-min-microvolt = <1200000>;
307 regulator-max-microvolt = <1500000>;
308 regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
309 };
310
311 vreg_l1b: ldo1 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600312 regulator-name = "vreg_l1b";
Tom Rini53633a82024-02-29 12:33:36 -0500313 regulator-min-microvolt = <825000>;
314 regulator-max-microvolt = <925000>;
315 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
316 };
317
318 vreg_l2b: ldo2 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600319 regulator-name = "vreg_l2b";
Tom Rini53633a82024-02-29 12:33:36 -0500320 regulator-min-microvolt = <2700000>;
321 regulator-max-microvolt = <3544000>;
322 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
323 };
324
325 vreg_l3b: ldo3 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600326 regulator-name = "vreg_l3b";
Tom Rini53633a82024-02-29 12:33:36 -0500327 regulator-min-microvolt = <312000>;
328 regulator-max-microvolt = <910000>;
329 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
330 };
331
332 vreg_l6b: ldo6 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600333 regulator-name = "vreg_l6b";
Tom Rini53633a82024-02-29 12:33:36 -0500334 regulator-min-microvolt = <1140000>;
335 regulator-max-microvolt = <1260000>;
336 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
337 };
338
339 vreg_l7b: ldo7 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600340 regulator-name = "vreg_l7b";
Tom Rini93743d22024-04-01 09:08:13 -0400341 /* Constrained for UFS VCC, at least until UFS driver scales voltage */
342 regulator-min-microvolt = <2952000>;
343 regulator-max-microvolt = <2952000>;
Tom Rini53633a82024-02-29 12:33:36 -0500344 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
345 };
346
347 vreg_l8b: ldo8 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600348 regulator-name = "vreg_l8b";
Tom Rini53633a82024-02-29 12:33:36 -0500349 regulator-min-microvolt = <870000>;
350 regulator-max-microvolt = <970000>;
351 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
352 };
353
354 vreg_l9b: ldo9 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600355 regulator-name = "vreg_l9b";
Tom Rini53633a82024-02-29 12:33:36 -0500356 regulator-min-microvolt = <1200000>;
357 regulator-max-microvolt = <1304000>;
358 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
359 };
360
361 vreg_l11b: ldo11 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600362 regulator-name = "vreg_l11b";
Tom Rini53633a82024-02-29 12:33:36 -0500363 regulator-min-microvolt = <1504000>;
364 regulator-max-microvolt = <2000000>;
365 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
366 };
367
368 vreg_l12b: ldo12 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600369 regulator-name = "vreg_l12b";
Tom Rini53633a82024-02-29 12:33:36 -0500370 regulator-min-microvolt = <751000>;
371 regulator-max-microvolt = <824000>;
372 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
373 };
374
375 vreg_l13b: ldo13 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600376 regulator-name = "vreg_l13b";
Tom Rini53633a82024-02-29 12:33:36 -0500377 regulator-min-microvolt = <530000>;
378 regulator-max-microvolt = <824000>;
379 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
380 };
381
382 vreg_l14b: ldo14 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600383 regulator-name = "vreg_l14b";
Tom Rini53633a82024-02-29 12:33:36 -0500384 regulator-min-microvolt = <1080000>;
385 regulator-max-microvolt = <1304000>;
386 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
387 };
388
389 vreg_l15b: ldo15 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600390 regulator-name = "vreg_l15b";
Tom Rini53633a82024-02-29 12:33:36 -0500391 regulator-min-microvolt = <765000>;
392 regulator-max-microvolt = <1020000>;
393 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
394 };
395
396 vreg_l16b: ldo16 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600397 regulator-name = "vreg_l16b";
Tom Rini53633a82024-02-29 12:33:36 -0500398 regulator-min-microvolt = <1100000>;
399 regulator-max-microvolt = <1300000>;
400 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
401 };
402
403 vreg_l17b: ldo17 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600404 regulator-name = "vreg_l17b";
Tom Rini53633a82024-02-29 12:33:36 -0500405 regulator-min-microvolt = <1700000>;
406 regulator-max-microvolt = <1900000>;
407 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
408 };
409
410 vreg_l18b: ldo18 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600411 regulator-name = "vreg_l18b";
Tom Rini53633a82024-02-29 12:33:36 -0500412 regulator-min-microvolt = <1800000>;
413 regulator-max-microvolt = <2000000>;
414 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
415 };
416
417 vreg_l19b: ldo19 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600418 regulator-name = "vreg_l19b";
Tom Rini53633a82024-02-29 12:33:36 -0500419 regulator-min-microvolt = <1800000>;
420 regulator-max-microvolt = <2000000>;
421 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
422 };
423 };
424
425 regulators-1 {
426 compatible = "qcom,pm8350c-rpmh-regulators";
427 qcom,pmic-id = "c";
428
429 vreg_s1c: smps1 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600430 regulator-name = "vreg_s1c";
Tom Rini53633a82024-02-29 12:33:36 -0500431 regulator-min-microvolt = <2190000>;
432 regulator-max-microvolt = <2210000>;
433 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
434 };
435
436 vreg_s9c: smps9 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600437 regulator-name = "vreg_s9c";
Tom Rini53633a82024-02-29 12:33:36 -0500438 regulator-min-microvolt = <1010000>;
439 regulator-max-microvolt = <1170000>;
440 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
441 };
442
443 vreg_l1c: ldo1 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600444 regulator-name = "vreg_l1c";
Tom Rini53633a82024-02-29 12:33:36 -0500445 regulator-min-microvolt = <1800000>;
446 regulator-max-microvolt = <1980000>;
447 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
448 };
449
450 vreg_l2c: ldo2 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600451 regulator-name = "vreg_l2c";
Tom Rini53633a82024-02-29 12:33:36 -0500452 regulator-min-microvolt = <1800000>;
453 regulator-max-microvolt = <1950000>;
454 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
455 };
456
457 vreg_l3c: ldo3 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600458 regulator-name = "vreg_l3c";
Tom Rini53633a82024-02-29 12:33:36 -0500459 regulator-min-microvolt = <3000000>;
460 regulator-max-microvolt = <3400000>;
461 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
462 };
463
464 vreg_l4c: ldo4 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600465 regulator-name = "vreg_l4c";
Tom Rini53633a82024-02-29 12:33:36 -0500466 regulator-min-microvolt = <1620000>;
467 regulator-max-microvolt = <3300000>;
468 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
469 };
470
471 vreg_l5c: ldo5 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600472 regulator-name = "vreg_l5c";
Tom Rini53633a82024-02-29 12:33:36 -0500473 regulator-min-microvolt = <1620000>;
474 regulator-max-microvolt = <3300000>;
475 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
476 };
477
478 vreg_l6c: ldo6 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600479 regulator-name = "vreg_l6c";
Tom Rini53633a82024-02-29 12:33:36 -0500480 regulator-min-microvolt = <1650000>;
481 regulator-max-microvolt = <3544000>;
482 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
483 };
484
485 vreg_l7c: ldo7 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600486 regulator-name = "vreg_l7c";
Tom Rini53633a82024-02-29 12:33:36 -0500487 regulator-min-microvolt = <3000000>;
488 regulator-max-microvolt = <3544000>;
489 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
490 };
491
492 vreg_l8c: ldo8 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600493 regulator-name = "vreg_l8c";
Tom Rini53633a82024-02-29 12:33:36 -0500494 regulator-min-microvolt = <1620000>;
495 regulator-max-microvolt = <2000000>;
496 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
497 /* Hall sensor VDD */
498 regulator-always-on;
499 };
500
501 vreg_l9c: ldo9 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600502 regulator-name = "vreg_l9c";
Tom Rini53633a82024-02-29 12:33:36 -0500503 regulator-min-microvolt = <2700000>;
504 regulator-max-microvolt = <3544000>;
505 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
506 };
507
508 vreg_l10c: ldo10 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600509 regulator-name = "vreg_l10c";
Tom Rini53633a82024-02-29 12:33:36 -0500510 regulator-min-microvolt = <720000>;
511 regulator-max-microvolt = <1050000>;
512 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
513 };
514
515 vreg_l11c: ldo11 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600516 regulator-name = "vreg_l11c";
Tom Rini53633a82024-02-29 12:33:36 -0500517 regulator-min-microvolt = <2800000>;
518 regulator-max-microvolt = <3544000>;
519 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
520 };
521
522 vreg_l12c: ldo12 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600523 regulator-name = "vreg_l12c";
Tom Rini53633a82024-02-29 12:33:36 -0500524 regulator-min-microvolt = <1650000>;
525 regulator-max-microvolt = <2000000>;
526 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
527 };
528
529 vreg_l13c: ldo13 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600530 regulator-name = "vreg_l13c";
Tom Rini53633a82024-02-29 12:33:36 -0500531 regulator-min-microvolt = <2700000>;
532 regulator-max-microvolt = <3544000>;
533 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
534 };
535
536 vreg_bob: bob {
Tom Rini6b642ac2024-10-01 12:20:28 -0600537 regulator-name = "vreg_bob";
Tom Rini53633a82024-02-29 12:33:36 -0500538 regulator-min-microvolt = <3008000>;
539 regulator-max-microvolt = <3960000>;
540 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
541 };
542 };
543};
544
545&dispcc {
546 /* Disable for now so simple-framebuffer continues working */
547 status = "disabled";
548};
549
550&gcc {
551 protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
552 <GCC_EDP_CLKREF_EN>,
553 <GCC_MSS_CFG_AHB_CLK>,
554 <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
555 <GCC_MSS_OFFLINE_AXI_CLK>,
556 <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
557 <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
558 <GCC_MSS_SNOC_AXI_CLK>,
559 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
560 <GCC_QSPI_CORE_CLK>,
561 <GCC_QSPI_CORE_CLK_SRC>,
562 <GCC_SEC_CTRL_CLK_SRC>,
563 <GCC_WPSS_AHB_BDG_MST_CLK>,
564 <GCC_WPSS_AHB_CLK>,
565 <GCC_WPSS_RSCP_CLK>;
566};
567
568&gpi_dma0 {
569 status = "okay";
570};
571
572&gpi_dma1 {
573 status = "okay";
574};
575
576&i2c1 {
577 status = "okay";
578
Tom Rini6b642ac2024-10-01 12:20:28 -0600579 pm8008: pmic@8 {
580 compatible = "qcom,pm8008";
581 reg = <0x8>;
582
583 interrupts-extended = <&tlmm 25 IRQ_TYPE_EDGE_RISING>;
584 reset-gpios = <&pm8350c_gpios 3 GPIO_ACTIVE_LOW>;
585
586 vdd-l1-l2-supply = <&vreg_s8b>;
587 vdd-l3-l4-supply = <&vreg_bob>;
588 vdd-l5-supply = <&vreg_bob>;
589 vdd-l6-supply = <&vreg_s1b>;
590 vdd-l7-supply = <&vreg_bob>;
591
592 pinctrl-names = "default";
593 pinctrl-0 = <&pm8008_int_default>, <&pm8008_reset_n_default>;
594
595 gpio-controller;
596 #gpio-cells = <2>;
597 gpio-ranges = <&pm8008 0 0 2>;
598
599 interrupt-controller;
600 #interrupt-cells = <2>;
601
602 #thermal-sensor-cells = <0>;
603
604 regulators {
605 vreg_l1p: ldo1 {
606 regulator-name = "vreg_l1p";
607 regulator-min-microvolt = <1000000>;
608 regulator-max-microvolt = <1200000>;
609 };
610
611 vreg_l2p: ldo2 {
612 regulator-name = "vreg_l2p";
613 regulator-min-microvolt = <950000>;
614 regulator-max-microvolt = <1152000>;
615 };
616
617 vreg_l3p: ldo3 {
618 regulator-name = "vreg_l3p";
619 regulator-min-microvolt = <2700000>;
620 regulator-max-microvolt = <3000000>;
621 };
622
623 vreg_l4p: ldo4 {
624 regulator-name = "vreg_l4p";
625 regulator-min-microvolt = <2700000>;
626 regulator-max-microvolt = <2900000>;
627 };
628
629 vreg_l5p: ldo5 {
630 regulator-name = "vreg_l5p";
631 regulator-min-microvolt = <2704000>;
632 regulator-max-microvolt = <2900000>;
633 };
634
635 vreg_l6p: ldo6 {
636 regulator-name = "vreg_l6p";
637 regulator-min-microvolt = <1700000>;
638 regulator-max-microvolt = <1904000>;
639 };
640
641 vreg_l7p: ldo7 {
642 regulator-name = "vreg_l7p";
643 regulator-min-microvolt = <2700000>;
644 regulator-max-microvolt = <3000000>;
645 };
646 };
647 };
648
Tom Rini53633a82024-02-29 12:33:36 -0500649 /* Pixelworks @ 26 */
650 /* FSA4480 USB audio switch @ 42 */
651 /* AW86927FCR haptics @ 5a */
652};
653
654&i2c2 {
655 status = "okay";
656
657 /* AW88261FCR amplifier @ 34 */
658 /* AW88261FCR amplifier @ 35 */
659};
660
661&i2c4 {
662 status = "okay";
663
664 /* PTN36502 USB redriver @ 1a */
665};
666
667&i2c9 {
668 status = "okay";
669
670 /* ST21NFC NFC @ 28 */
671 /* VL53L3 ToF @ 29 */
672};
673
674&ipa {
675 qcom,gsi-loader = "self";
676 memory-region = <&ipa_fw_mem>;
Tom Rini6b642ac2024-10-01 12:20:28 -0600677 firmware-name = "qcom/qcm6490/fairphone5/ipa_fws.mbn";
Tom Rini53633a82024-02-29 12:33:36 -0500678 status = "okay";
Tom Rini93743d22024-04-01 09:08:13 -0400679};
680
681&pm7250b_adc {
682 channel@4d {
683 reg = <ADC5_AMUX_THM1_100K_PU>;
684 qcom,ratiometric;
685 qcom,hw-settle-time = <200>;
686 qcom,pre-scaling = <1 1>;
687 label = "charger_skin_therm";
688 };
689
690 channel@4f {
691 reg = <ADC5_AMUX_THM3_100K_PU>;
692 qcom,ratiometric;
693 qcom,hw-settle-time = <200>;
694 qcom,pre-scaling = <1 1>;
695 label = "conn_therm";
696 };
697};
698
699&pm7250b_adc_tm {
700 status = "okay";
701
702 charger-skin-therm@0 {
703 reg = <0>;
704 io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
705 qcom,ratiometric;
706 qcom,hw-settle-time-us = <200>;
707 };
708
709 conn-therm@1 {
710 reg = <1>;
711 io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
712 qcom,ratiometric;
713 qcom,hw-settle-time-us = <200>;
714 };
Tom Rini53633a82024-02-29 12:33:36 -0500715};
716
717&pm7325_gpios {
718 volume_down_default: volume-down-default-state {
719 pins = "gpio6";
720 function = PMIC_GPIO_FUNC_NORMAL;
721 power-source = <1>;
722 bias-pull-up;
723 input-enable;
724 };
725};
726
727&pm8350c_flash {
728 status = "okay";
729
730 led-0 {
731 function = LED_FUNCTION_FLASH;
732 color = <LED_COLOR_ID_WHITE>;
733 led-sources = <1>, <4>;
734 led-max-microamp = <500000>;
735 flash-max-microamp = <1500000>;
736 flash-max-timeout-us = <1280000>;
737 };
738};
739
Tom Rini93743d22024-04-01 09:08:13 -0400740&pmk8350_adc_tm {
741 status = "okay";
742
743 xo-therm@0 {
744 reg = <0>;
745 io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
746 qcom,ratiometric;
747 qcom,hw-settle-time-us = <200>;
748 };
749
750 quiet-therm@1 {
751 reg = <1>;
752 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>;
753 qcom,ratiometric;
754 qcom,hw-settle-time-us = <200>;
755 };
756
757 cam-flash-therm@2 {
758 reg = <2>;
759 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>;
760 qcom,ratiometric;
761 qcom,hw-settle-time-us = <200>;
762 };
763
764 sdm-skin-therm@3 {
765 reg = <3>;
766 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>;
767 qcom,ratiometric;
768 qcom,hw-settle-time-us = <200>;
769 };
770
771 wide-rfc-therm@4 {
772 reg = <4>;
773 io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>;
774 qcom,ratiometric;
775 qcom,hw-settle-time-us = <200>;
776 };
777};
778
Tom Rini6b642ac2024-10-01 12:20:28 -0600779&pm8350c_gpios {
780 pm8008_reset_n_default: pm8008-reset-n-default-state {
781 pins = "gpio3";
782 function = PMIC_GPIO_FUNC_NORMAL;
783 bias-pull-down;
784 };
785};
786
Tom Rini53633a82024-02-29 12:33:36 -0500787&pmk8350_rtc {
788 status = "okay";
Tom Rini93743d22024-04-01 09:08:13 -0400789};
790
791&pmk8350_vadc {
792 status = "okay";
793
794 channel@44 {
795 reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
796 qcom,ratiometric;
797 qcom,hw-settle-time = <200>;
798 qcom,pre-scaling = <1 1>;
799 label = "pmk8350_xo_therm";
800 };
801
802 channel@144 {
803 reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
804 qcom,ratiometric;
805 qcom,hw-settle-time = <200>;
806 qcom,pre-scaling = <1 1>;
807 label = "pm7325_quiet_therm";
808 };
809
810 channel@145 {
811 reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
812 qcom,ratiometric;
813 qcom,hw-settle-time = <200>;
814 qcom,pre-scaling = <1 1>;
815 label = "pm7325_cam_flash_therm";
816 };
817
818 channel@146 {
819 reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
820 qcom,ratiometric;
821 qcom,hw-settle-time = <200>;
822 qcom,pre-scaling = <1 1>;
823 label = "pm7325_sdm_skin_therm";
824 };
825
826 channel@147 {
827 reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
828 qcom,ratiometric;
829 qcom,hw-settle-time = <200>;
830 qcom,pre-scaling = <1 1>;
831 label = "pm7325_wide_rfc_therm";
832 };
Tom Rini53633a82024-02-29 12:33:36 -0500833};
834
835&pon_pwrkey {
836 status = "okay";
837};
838
839&pon_resin {
840 linux,code = <KEY_VOLUMEDOWN>;
841 status = "okay";
842};
843
844&qup_spi13_cs {
845 drive-strength = <6>;
846 bias-disable;
847};
848
849&qup_spi13_data_clk {
850 drive-strength = <6>;
851 bias-disable;
852};
853
854&qup_uart5_rx {
855 drive-strength = <2>;
856 bias-disable;
857};
858
859&qup_uart5_tx {
860 drive-strength = <2>;
861 bias-disable;
862};
863
864&qupv3_id_0 {
865 status = "okay";
866};
867
868&qupv3_id_1 {
869 status = "okay";
870};
871
Tom Rini93743d22024-04-01 09:08:13 -0400872&remoteproc_adsp {
873 firmware-name = "qcom/qcm6490/fairphone5/adsp.mbn";
874 status = "okay";
875};
876
877&remoteproc_cdsp {
878 firmware-name = "qcom/qcm6490/fairphone5/cdsp.mbn";
879 status = "okay";
880};
881
882&remoteproc_mpss {
883 firmware-name = "qcom/qcm6490/fairphone5/modem.mbn";
884 status = "okay";
885};
886
887&remoteproc_wpss {
888 firmware-name = "qcom/qcm6490/fairphone5/wpss.mbn";
889 status = "okay";
890};
891
Tom Rini53633a82024-02-29 12:33:36 -0500892&sdc2_clk {
893 drive-strength = <16>;
894 bias-disable;
895};
896
897&sdc2_cmd {
898 drive-strength = <10>;
899 bias-pull-up;
900};
901
902&sdc2_data {
903 drive-strength = <10>;
904 bias-pull-up;
905};
906
907&sdhc_2 {
908 vmmc-supply = <&vreg_l9c>;
909 vqmmc-supply = <&vreg_l6c>;
910
911 pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
912 pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
913
914 status = "okay";
915};
916
917&spi13 {
918 status = "okay";
919
920 /* Goodix touchscreen @ 0 */
921};
922
923&tlmm {
924 /*
925 * 32-33: SMB1394 (SPMI)
926 * 56-59: fingerprint reader (SPI)
927 */
928 gpio-reserved-ranges = <32 2>, <56 4>;
929
930 bluetooth_enable_default: bluetooth-enable-default-state {
931 pins = "gpio85";
932 function = "gpio";
933 output-low;
934 bias-disable;
935 };
936
937 hall_sensor_default: hall-sensor-default-state {
938 pins = "gpio155";
939 function = "gpio";
940 drive-strength = <2>;
941 bias-pull-up;
942 };
943
Tom Rini6b642ac2024-10-01 12:20:28 -0600944 pm8008_int_default: pm8008-int-default-state {
945 pins = "gpio25";
946 function = "gpio";
947 drive-strength = <2>;
948 bias-disable;
949 };
950
Tom Rini53633a82024-02-29 12:33:36 -0500951 qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
952 pins = "gpio28";
953 function = "gpio";
954 /*
955 * Configure a bias-bus-hold on CTS to lower power
956 * usage when Bluetooth is turned off. Bus hold will
957 * maintain a low power state regardless of whether
958 * the Bluetooth module drives the pin in either
959 * direction or leaves the pin fully unpowered.
960 */
961 bias-bus-hold;
962 };
963
964 qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
965 pins = "gpio29";
966 function = "gpio";
967 /*
968 * Configure pull-down on RTS. As RTS is active low
969 * signal, pull it low to indicate the BT SoC that it
970 * can wakeup the system anytime from suspend state by
971 * pulling RX low (by sending wakeup bytes).
972 */
973 bias-pull-down;
974 };
975
976 qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
977 pins = "gpio30";
978 function = "gpio";
979 /*
980 * Configure pull-up on TX when it isn't actively driven
981 * to prevent BT SoC from receiving garbage during sleep.
982 */
983 bias-pull-up;
984 };
985
986 qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
987 pins = "gpio31";
988 function = "gpio";
989 /*
990 * Configure a pull-up on RX. This is needed to avoid
991 * garbage data when the TX pin of the Bluetooth module
992 * is floating which may cause spurious wakeups.
993 */
994 bias-pull-up;
995 };
996
997 sw_ctrl_default: sw-ctrl-default-state {
998 pins = "gpio86";
999 function = "gpio";
1000 bias-pull-down;
1001 };
1002};
1003
1004&uart5 {
Tom Rini53633a82024-02-29 12:33:36 -05001005 status = "okay";
1006};
1007
1008&uart7 {
1009 /delete-property/interrupts;
1010 interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
1011 <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
1012
1013 pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
1014 pinctrl-names = "default", "sleep";
1015
1016 status = "okay";
1017
1018 bluetooth: bluetooth {
1019 compatible = "qcom,wcn6750-bt";
1020
1021 pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
1022 pinctrl-names = "default";
1023
1024 enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
1025 swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
1026
1027 vddio-supply = <&vreg_l19b>;
1028 vddaon-supply = <&vreg_s7b>;
1029 vddbtcxmx-supply = <&vreg_s7b>;
1030 vddrfacmn-supply = <&vreg_s7b>;
1031 vddrfa0p8-supply = <&vreg_s7b>;
1032 vddrfa1p7-supply = <&vreg_s1b>;
1033 vddrfa1p2-supply = <&vreg_s8b>;
1034 vddrfa2p2-supply = <&vreg_s1c>;
1035 vddasd-supply = <&vreg_l11c>;
1036
1037 max-speed = <3200000>;
1038 };
1039};
1040
Tom Rini93743d22024-04-01 09:08:13 -04001041&ufs_mem_hc {
1042 reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
1043
1044 vcc-supply = <&vreg_l7b>;
1045 vcc-max-microamp = <800000>;
1046 /*
1047 * Technically l9b enables an eLDO (supplied by s1b) which then powers
1048 * VCCQ2 of the UFS.
1049 */
1050 vccq-supply = <&vreg_l9b>;
1051 vccq-max-microamp = <900000>;
1052
1053 status = "okay";
1054};
1055
1056&ufs_mem_phy {
1057 vdda-phy-supply = <&vreg_l10c>;
1058 vdda-pll-supply = <&vreg_l6b>;
1059
1060 status = "okay";
1061};
1062
Tom Rini53633a82024-02-29 12:33:36 -05001063&usb_1 {
1064 status = "okay";
1065};
1066
1067&usb_1_dwc3 {
Tom Rini6bb92fc2024-05-20 09:54:58 -06001068 dr_mode = "otg";
1069 usb-role-switch;
1070};
1071
1072&usb_1_dwc3_hs {
1073 remote-endpoint = <&pmic_glink_hs_in>;
Tom Rini53633a82024-02-29 12:33:36 -05001074};
1075
Tom Rini6bb92fc2024-05-20 09:54:58 -06001076&usb_1_dwc3_ss {
1077 remote-endpoint = <&pmic_glink_ss_in>;
1078};
1079
Tom Rini53633a82024-02-29 12:33:36 -05001080&usb_1_hsphy {
1081 vdda-pll-supply = <&vreg_l10c>;
1082 vdda18-supply = <&vreg_l1c>;
1083 vdda33-supply = <&vreg_l2b>;
1084
1085 qcom,hs-crossover-voltage-microvolt = <28000>;
1086 qcom,hs-output-impedance-micro-ohms = <2600000>;
1087 qcom,hs-rise-fall-time-bp = <5430>;
1088 qcom,hs-disconnect-bp = <1743>;
1089 qcom,hs-amplitude-bp = <2430>;
1090
1091 qcom,pre-emphasis-amplitude-bp = <20000>;
1092 qcom,pre-emphasis-duration-bp = <20000>;
1093
1094 qcom,squelch-detector-bp = <(-2090)>;
1095
1096 status = "okay";
1097};
1098
1099&usb_1_qmpphy {
1100 vdda-phy-supply = <&vreg_l6b>;
1101 vdda-pll-supply = <&vreg_l1b>;
1102
Tom Rini6bb92fc2024-05-20 09:54:58 -06001103 status = "okay";
1104};
1105
1106&venus {
1107 firmware-name = "qcom/qcm6490/fairphone5/venus.mbn";
Tom Rini53633a82024-02-29 12:33:36 -05001108 status = "okay";
1109};
Tom Rini93743d22024-04-01 09:08:13 -04001110
1111&wifi {
1112 qcom,ath11k-calibration-variant = "Fairphone_5";
1113 status = "okay";
1114};