~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: BSD-3-Clause
  2 /*
  3  * Copyright (c) 2021, Luca Weiss <luca@z3ntu.xyz>
  4  */
  5 
  6 /dts-v1/;
  7 
  8 /* PM7250B is configured to use SID2/3 */
  9 #define PM7250B_SID 2
 10 #define PM7250B_SID1 3
 11 
 12 /* PMK8350 (in reality a PMK8003) is configured to use SID6 instead of 0 */
 13 #define PMK8350_SID 6
 14 
 15 #include <dt-bindings/firmware/qcom,scm.h>
 16 #include <dt-bindings/gpio/gpio.h>
 17 #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
 18 #include <dt-bindings/input/input.h>
 19 #include <dt-bindings/leds/common.h>
 20 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 21 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 22 #include <dt-bindings/usb/pd.h>
 23 #include "sm7225.dtsi"
 24 #include "pm6150l.dtsi"
 25 #include "pm6350.dtsi"
 26 #include "pm7250b.dtsi"
 27 #include "pmk8350.dtsi"
 28 
 29 / {
 30         model = "Fairphone 4";
 31         compatible = "fairphone,fp4", "qcom,sm7225";
 32         chassis-type = "handset";
 33 
 34         /* required for bootloader to select correct board */
 35         qcom,msm-id = <434 0x10000>, <459 0x10000>;
 36         qcom,board-id = <8 32>;
 37 
 38         aliases {
 39                 serial0 = &uart9;
 40                 serial1 = &uart1;
 41         };
 42 
 43         chosen {
 44                 #address-cells = <2>;
 45                 #size-cells = <2>;
 46                 ranges;
 47 
 48                 stdout-path = "serial0:115200n8";
 49 
 50                 framebuffer0: framebuffer@a000000 {
 51                         compatible = "simple-framebuffer";
 52                         reg = <0 0xa0000000 0 (2340 * 1080 * 4)>;
 53                         width = <1080>;
 54                         height = <2340>;
 55                         stride = <(1080 * 4)>;
 56                         format = "a8r8g8b8";
 57                 };
 58         };
 59 
 60         gpio-keys {
 61                 compatible = "gpio-keys";
 62                 pinctrl-names = "default";
 63                 pinctrl-0 = <&gpio_keys_pin>;
 64 
 65                 key-volume-up {
 66                         label = "volume_up";
 67                         linux,code = <KEY_VOLUMEUP>;
 68                         gpios = <&pm6350_gpios 2 GPIO_ACTIVE_LOW>;
 69                 };
 70         };
 71 
 72         /* Dummy regulator until PM6150L has LCDB VSP/VSN support */
 73         lcdb_dummy: regulator-lcdb-dummy {
 74                 compatible = "regulator-fixed";
 75                 regulator-name = "lcdb_dummy";
 76                 regulator-min-microvolt = <5500000>;
 77                 regulator-max-microvolt = <5500000>;
 78         };
 79 
 80         reserved-memory {
 81                 /*
 82                  * The rmtfs memory region in downstream is 'dynamically allocated'
 83                  * but given the same address every time. Hard code it as this address is
 84                  * where the modem firmware expects it to be.
 85                  */
 86                 memory@efe01000 {
 87                         compatible = "qcom,rmtfs-mem";
 88                         reg = <0 0xefe01000 0 0x600000>;
 89                         no-map;
 90 
 91                         qcom,client-id = <1>;
 92                         qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
 93                 };
 94         };
 95 
 96         msm_therm_sensor: thermal-sensor-msm {
 97                 compatible = "generic-adc-thermal";
 98                 #thermal-sensor-cells = <0>;
 99                 io-channels = <&pm6150l_adc ADC5_AMUX_THM2_100K_PU>;
100                 io-channel-names = "sensor-channel";
101         };
102 
103         rear_cam_sensor: thermal-sensor-rear-cam {
104                 compatible = "generic-adc-thermal";
105                 #thermal-sensor-cells = <0>;
106                 io-channels = <&pm6150l_adc ADC5_GPIO2_100K_PU>;
107                 io-channel-names = "sensor-channel";
108         };
109 
110         thermal-zones {
111                 chg-skin-thermal {
112                         thermal-sensors = <&pm7250b_adc_tm 0>;
113 
114                         trips {
115                                 active-config0 {
116                                         temperature = <125000>;
117                                         hysteresis = <1000>;
118                                         type = "passive";
119                                 };
120                         };
121                 };
122 
123                 conn-thermal {
124                         thermal-sensors = <&pm7250b_adc_tm 1>;
125 
126                         trips {
127                                 active-config0 {
128                                         temperature = <125000>;
129                                         hysteresis = <1000>;
130                                         type = "passive";
131                                 };
132                         };
133                 };
134 
135                 pa0-thermal {
136                         thermal-sensors = <&pm6150l_adc_tm 1>;
137 
138                         trips {
139                                 active-config0 {
140                                         temperature = <125000>;
141                                         hysteresis = <1000>;
142                                         type = "passive";
143                                 };
144                         };
145                 };
146 
147                 pa1-thermal {
148                         thermal-sensors = <&pm6150l_adc_tm 0>;
149 
150                         trips {
151                                 active-config0 {
152                                         temperature = <125000>;
153                                         hysteresis = <1000>;
154                                         type = "passive";
155                                 };
156                         };
157                 };
158 
159                 pm8008-thermal {
160                         polling-delay-passive = <100>;
161                         thermal-sensors = <&pm8008>;
162 
163                         trips {
164                                 trip0 {
165                                         temperature = <95000>;
166                                         hysteresis = <0>;
167                                         type = "passive";
168                                 };
169 
170                                 trip1 {
171                                         temperature = <115000>;
172                                         hysteresis = <0>;
173                                         type = "critical";
174                                 };
175                         };
176                 };
177 
178                 quiet-thermal {
179                         thermal-sensors = <&pm6150l_adc_tm 3>;
180 
181                         trips {
182                                 active-config0 {
183                                         temperature = <125000>;
184                                         hysteresis = <1000>;
185                                         type = "passive";
186                                 };
187                         };
188                 };
189 
190                 rear-cam-thermal {
191                         polling-delay-passive = <1000>;
192                         polling-delay = <5000>;
193                         thermal-sensors = <&rear_cam_sensor>;
194 
195                         trips {
196                                 active-config0 {
197                                         temperature = <125000>;
198                                         hysteresis = <1000>;
199                                         type = "passive";
200                                 };
201                         };
202                 };
203 
204                 rfc-flash-thermal {
205                         thermal-sensors = <&pm6150l_adc_tm 2>;
206 
207                         trips {
208                                 active-config0 {
209                                         temperature = <125000>;
210                                         hysteresis = <1000>;
211                                         type = "passive";
212                                 };
213                         };
214                 };
215 
216                 sdm-skin-thermal {
217                         polling-delay-passive = <1000>;
218                         polling-delay = <5000>;
219                         thermal-sensors = <&msm_therm_sensor>;
220 
221                         trips {
222                                 trip0 {
223                                         temperature = <45000>;
224                                         hysteresis = <0>;
225                                         type = "passive";
226                                 };
227 
228                                 trip1 {
229                                         temperature = <55000>;
230                                         hysteresis = <0>;
231                                         type = "critical";
232                                 };
233                         };
234                 };
235 
236                 xo-thermal {
237                         thermal-sensors = <&pmk8350_adc_tm 0>;
238 
239                         trips {
240                                 active-config0 {
241                                         temperature = <125000>;
242                                         hysteresis = <1000>;
243                                         type = "passive";
244                                 };
245                         };
246                 };
247         };
248 };
249 
250 &adsp {
251         firmware-name = "qcom/sm7225/fairphone4/adsp.mbn";
252         status = "okay";
253 };
254 
255 &apps_rsc {
256         regulators-0 {
257                 compatible = "qcom,pm6350-rpmh-regulators";
258                 qcom,pmic-id = "a";
259 
260                 vreg_s1a: smps1 {
261                         regulator-name = "vreg_s1a";
262                         regulator-min-microvolt = <1000000>;
263                         regulator-max-microvolt = <1200000>;
264                 };
265 
266                 vreg_s2a: smps2 {
267                         regulator-name = "vreg_s2a";
268                         regulator-min-microvolt = <1503000>;
269                         regulator-max-microvolt = <2048000>;
270                 };
271 
272                 vreg_l2a: ldo2 {
273                         regulator-name = "vreg_l2a";
274                         regulator-min-microvolt = <1503000>;
275                         regulator-max-microvolt = <1980000>;
276                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
277                 };
278 
279                 vreg_l3a: ldo3 {
280                         regulator-name = "vreg_l3a";
281                         regulator-min-microvolt = <2700000>;
282                         regulator-max-microvolt = <3300000>;
283                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
284                 };
285 
286                 vreg_l4a: ldo4 {
287                         regulator-name = "vreg_l4a";
288                         regulator-min-microvolt = <352000>;
289                         regulator-max-microvolt = <801000>;
290                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
291                 };
292 
293                 vreg_l5a: ldo5 {
294                         regulator-name = "vreg_l5a";
295                         regulator-min-microvolt = <1503000>;
296                         regulator-max-microvolt = <1980000>;
297                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
298                 };
299 
300                 vreg_l6a: ldo6 {
301                         regulator-name = "vreg_l6a";
302                         regulator-min-microvolt = <1710000>;
303                         regulator-max-microvolt = <3544000>;
304                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
305                 };
306 
307                 vreg_l7a: ldo7 {
308                         regulator-name = "vreg_l7a";
309                         regulator-min-microvolt = <1620000>;
310                         regulator-max-microvolt = <1980000>;
311                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
312                 };
313 
314                 vreg_l8a: ldo8 {
315                         regulator-name = "vreg_l8a";
316                         regulator-min-microvolt = <2800000>;
317                         regulator-max-microvolt = <2800000>;
318                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
319                 };
320 
321                 vreg_l9a: ldo9 {
322                         regulator-name = "vreg_l9a";
323                         regulator-min-microvolt = <1650000>;
324                         regulator-max-microvolt = <3401000>;
325                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
326                 };
327 
328                 vreg_l11a: ldo11 {
329                         regulator-name = "vreg_l11a";
330                         regulator-min-microvolt = <1800000>;
331                         regulator-max-microvolt = <2000000>;
332                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
333                 };
334 
335                 vreg_l12a: ldo12 {
336                         regulator-name = "vreg_l12a";
337                         regulator-min-microvolt = <1620000>;
338                         regulator-max-microvolt = <1980000>;
339                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
340                 };
341 
342                 vreg_l13a: ldo13 {
343                         regulator-name = "vreg_l13a";
344                         regulator-min-microvolt = <570000>;
345                         regulator-max-microvolt = <650000>;
346                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
347                 };
348 
349                 vreg_l14a: ldo14 {
350                         regulator-name = "vreg_l14a";
351                         regulator-min-microvolt = <1700000>;
352                         regulator-max-microvolt = <1900000>;
353                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
354                 };
355 
356                 vreg_l15a: ldo15 {
357                         regulator-name = "vreg_l15a";
358                         regulator-min-microvolt = <1100000>;
359                         regulator-max-microvolt = <1305000>;
360                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
361                 };
362 
363                 vreg_l16a: ldo16 {
364                         regulator-name = "vreg_l16a";
365                         regulator-min-microvolt = <830000>;
366                         regulator-max-microvolt = <921000>;
367                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
368                 };
369 
370                 vreg_l18a: ldo18 {
371                         regulator-name = "vreg_l18a";
372                         regulator-min-microvolt = <788000>;
373                         regulator-max-microvolt = <1049000>;
374                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
375                 };
376 
377                 vreg_l19a: ldo19 {
378                         regulator-name = "vreg_l19a";
379                         regulator-min-microvolt = <1080000>;
380                         regulator-max-microvolt = <1305000>;
381                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
382                 };
383 
384                 vreg_l20a: ldo20 {
385                         regulator-name = "vreg_l20a";
386                         regulator-min-microvolt = <530000>;
387                         regulator-max-microvolt = <801000>;
388                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
389                 };
390 
391                 vreg_l21a: ldo21 {
392                         regulator-name = "vreg_l21a";
393                         regulator-min-microvolt = <751000>;
394                         regulator-max-microvolt = <825000>;
395                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
396                 };
397 
398                 vreg_l22a: ldo22 {
399                         regulator-name = "vreg_l22a";
400                         regulator-min-microvolt = <1080000>;
401                         regulator-max-microvolt = <1305000>;
402                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
403                 };
404         };
405 
406         regulators-1 {
407                 compatible = "qcom,pm6150l-rpmh-regulators";
408                 qcom,pmic-id = "e";
409 
410                 vreg_s8e: smps8 {
411                         regulator-name = "vreg_s8e";
412                         regulator-min-microvolt = <313000>;
413                         regulator-max-microvolt = <1395000>;
414                 };
415 
416                 vreg_l1e: ldo1 {
417                         regulator-name = "vreg_l1e";
418                         regulator-min-microvolt = <1620000>;
419                         regulator-max-microvolt = <1980000>;
420                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
421                 };
422 
423                 vreg_l2e: ldo2 {
424                         regulator-name = "vreg_l2e";
425                         regulator-min-microvolt = <1170000>;
426                         regulator-max-microvolt = <1305000>;
427                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
428                 };
429 
430                 vreg_l3e: ldo3 {
431                         regulator-name = "vreg_l3e";
432                         regulator-min-microvolt = <1100000>;
433                         regulator-max-microvolt = <1299000>;
434                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
435                 };
436 
437                 vreg_l4e: ldo4 {
438                         regulator-name = "vreg_l4e";
439                         regulator-min-microvolt = <1620000>;
440                         regulator-max-microvolt = <3300000>;
441                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
442                 };
443 
444                 vreg_l5e: ldo5 {
445                         regulator-name = "vreg_l5e";
446                         regulator-min-microvolt = <1620000>;
447                         regulator-max-microvolt = <3300000>;
448                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
449                 };
450 
451                 vreg_l6e: ldo6 {
452                         regulator-name = "vreg_l6e";
453                         regulator-min-microvolt = <1700000>;
454                         regulator-max-microvolt = <2950000>;
455                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
456                         regulator-allow-set-load;
457                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
458                                                    RPMH_REGULATOR_MODE_HPM>;
459                 };
460 
461                 vreg_l7e: ldo7 {
462                         regulator-name = "vreg_l7e";
463                         regulator-min-microvolt = <2700000>;
464                         regulator-max-microvolt = <3544000>;
465                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
466                 };
467 
468                 vreg_l8e: ldo8 {
469                         regulator-name = "vreg_l8e";
470                         regulator-min-microvolt = <1620000>;
471                         regulator-max-microvolt = <2000000>;
472                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
473                 };
474 
475                 vreg_l9e: ldo9 {
476                         regulator-name = "vreg_l9e";
477                         regulator-min-microvolt = <2700000>;
478                         regulator-max-microvolt = <2960000>;
479                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
480                         regulator-allow-set-load;
481                         regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
482                                                    RPMH_REGULATOR_MODE_HPM>;
483                 };
484 
485                 vreg_l10e: ldo10 {
486                         regulator-name = "vreg_l10e";
487                         regulator-min-microvolt = <3000000>;
488                         regulator-max-microvolt = <3401000>;
489                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
490                 };
491 
492                 vreg_l11e: ldo11 {
493                         regulator-name = "vreg_l11e";
494                         regulator-min-microvolt = <3000000>;
495                         regulator-max-microvolt = <3401000>;
496                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
497                 };
498 
499                 vreg_bob: bob {
500                         regulator-name = "vreg_bob";
501                         regulator-min-microvolt = <1620000>;
502                         regulator-max-microvolt = <5492000>;
503                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
504                         regulator-allow-bypass;
505                 };
506         };
507 };
508 
509 &cci0 {
510         status = "okay";
511 };
512 
513 &cci0_i2c0 {
514         /* IMX582 @ 0x1a */
515 };
516 
517 &cci0_i2c1 {
518         /* IMX582 @ 0x1a */
519 };
520 
521 &cci1 {
522         status = "okay";
523 };
524 
525 &cci1_i2c0 {
526         /* IMX576 @ 0x10 */
527 };
528 
529 &cdsp {
530         firmware-name = "qcom/sm7225/fairphone4/cdsp.mbn";
531         status = "okay";
532 };
533 
534 &gpi_dma0 {
535         status = "okay";
536 };
537 
538 &gpi_dma1 {
539         status = "okay";
540 };
541 
542 &gpu {
543         status = "okay";
544 };
545 
546 &gpu_zap_shader {
547         firmware-name = "qcom/sm7225/fairphone4/a615_zap.mbn";
548 };
549 
550 &i2c0 {
551         clock-frequency = <400000>;
552         status = "okay";
553 
554         /* ST21NFCD NFC @ 8 */
555         /* VL53L3 ToF @ 29 */
556         /* AW88264A amplifier @ 34 */
557         /* AW88264A amplifier @ 35 */
558 };
559 
560 &i2c8 {
561         clock-frequency = <400000>;
562         status = "okay";
563 
564         /* HX83112A touchscreen @ 48 */
565 };
566 
567 &i2c10 {
568         clock-frequency = <400000>;
569         status = "okay";
570 
571         pm8008: pmic@8 {
572                 compatible = "qcom,pm8008";
573                 reg = <0x8>;
574 
575                 interrupts-extended = <&tlmm 59 IRQ_TYPE_EDGE_RISING>;
576                 reset-gpios = <&tlmm 58 GPIO_ACTIVE_LOW>;
577 
578                 vdd-l1-l2-supply = <&vreg_s8e>;
579                 vdd-l3-l4-supply = <&vreg_bob>;
580                 vdd-l5-supply = <&vreg_bob>;
581                 vdd-l6-supply = <&vreg_s2a>;
582                 vdd-l7-supply = <&vreg_bob>;
583 
584                 pinctrl-names = "default";
585                 pinctrl-0 = <&pm8008_default>;
586 
587                 gpio-controller;
588                 #gpio-cells = <2>;
589                 gpio-ranges = <&pm8008 0 0 2>;
590 
591                 interrupt-controller;
592                 #interrupt-cells = <2>;
593 
594                 #thermal-sensor-cells = <0>;
595 
596                 regulators {
597                         vreg_l1p: ldo1 {
598                                 regulator-name = "vreg_l1p";
599                                 regulator-min-microvolt = <528000>;
600                                 regulator-max-microvolt = <1200000>;
601                         };
602 
603                         vreg_l2p: ldo2 {
604                                 regulator-name = "vreg_l2p";
605                                 regulator-min-microvolt = <528000>;
606                                 regulator-max-microvolt = <1200000>;
607                         };
608 
609                         vreg_l3p: ldo3 {
610                                 regulator-name = "vreg_l3p";
611                                 regulator-min-microvolt = <1500000>;
612                                 regulator-max-microvolt = <2800000>;
613                         };
614 
615                         vreg_l4p: ldo4 {
616                                 regulator-name = "vreg_l4p";
617                                 regulator-min-microvolt = <1500000>;
618                                 regulator-max-microvolt = <2904000>;
619                         };
620 
621                         vreg_l5p: ldo5 {
622                                 regulator-name = "vreg_l5p";
623                                 regulator-min-microvolt = <1500000>;
624                                 regulator-max-microvolt = <2900000>;
625                         };
626 
627                         vreg_l6p: ldo6 {
628                                 regulator-name = "vreg_l6p";
629                                 regulator-min-microvolt = <1500000>;
630                                 regulator-max-microvolt = <1800000>;
631                         };
632 
633                         vreg_l7p: ldo7 {
634                                 regulator-name = "vreg_l7p";
635                                 regulator-min-microvolt = <1500000>;
636                                 regulator-max-microvolt = <3140000>;
637                         };
638                 };
639         };
640 
641         /* PX8618 @ 26 */
642         /* SMB1395 PMIC @ 34 */
643         /* awinic,aw8695 @ 5a */
644 };
645 
646 &ipa {
647         qcom,gsi-loader = "self";
648         memory-region = <&pil_ipa_fw_mem>;
649         firmware-name = "qcom/sm7225/fairphone4/ipa_fws.mbn";
650         status = "okay";
651 };
652 
653 &mdss {
654         status = "okay";
655 };
656 
657 &mdss_dsi0 {
658         vdda-supply = <&vreg_l22a>;
659         status = "okay";
660 
661         panel@0 {
662                 compatible = "djn,9a-3r063-1102b";
663                 reg = <0>;
664 
665                 backlight = <&pm6150l_wled>;
666                 reset-gpios = <&pm6150l_gpios 9 GPIO_ACTIVE_LOW>;
667 
668                 vdd1-supply = <&vreg_l1e>;
669                 vsn-supply = <&lcdb_dummy>;
670                 vsp-supply = <&lcdb_dummy>;
671 
672                 port {
673                         panel_in: endpoint {
674                                 remote-endpoint = <&mdss_dsi0_out>;
675                         };
676                 };
677         };
678 };
679 
680 &mdss_dsi0_out {
681         data-lanes = <0 1 2 3>;
682         remote-endpoint = <&panel_in>;
683 };
684 
685 &mdss_dsi0_phy {
686         vdds-supply = <&vreg_l18a>;
687         status = "okay";
688 };
689 
690 &mpss {
691         firmware-name = "qcom/sm7225/fairphone4/modem.mbn";
692         status = "okay";
693 };
694 
695 &pm6150l_adc {
696         pinctrl-0 = <&pm6150l_adc_default>;
697         pinctrl-names = "default";
698 
699         channel@4d {
700                 reg = <ADC5_AMUX_THM1_100K_PU>;
701                 label = "pa_therm1";
702                 qcom,hw-settle-time = <200>;
703                 qcom,pre-scaling = <1 1>;
704                 qcom,ratiometric;
705         };
706 
707         channel@4e {
708                 reg = <ADC5_AMUX_THM2_100K_PU>;
709                 label = "msm_therm";
710                 qcom,hw-settle-time = <200>;
711                 qcom,pre-scaling = <1 1>;
712                 qcom,ratiometric;
713         };
714 
715         channel@4f {
716                 reg = <ADC5_AMUX_THM3_100K_PU>;
717                 label = "pa_therm0";
718                 qcom,hw-settle-time = <200>;
719                 qcom,pre-scaling = <1 1>;
720                 qcom,ratiometric;
721         };
722 
723         channel@53 {
724                 reg = <ADC5_GPIO2_100K_PU>;
725                 label = "rear_cam_therm";
726                 qcom,hw-settle-time = <200>;
727                 qcom,pre-scaling = <1 1>;
728                 qcom,ratiometric;
729         };
730 
731         channel@54 {
732                 reg = <ADC5_GPIO3_100K_PU>;
733                 label = "rear_cam_flash_therm";
734                 qcom,hw-settle-time = <200>;
735                 qcom,pre-scaling = <1 1>;
736                 qcom,ratiometric;
737         };
738 
739         channel@55 {
740                 reg = <ADC5_GPIO4_100K_PU>;
741                 label = "quiet_therm";
742                 qcom,hw-settle-time = <200>;
743                 qcom,pre-scaling = <1 1>;
744                 qcom,ratiometric;
745         };
746 };
747 
748 &pm6150l_adc_tm {
749         status = "okay";
750 
751         pa-therm1@0 {
752                 reg = <0>;
753                 io-channels = <&pm6150l_adc ADC5_AMUX_THM1_100K_PU>;
754                 qcom,hw-settle-time-us = <200>;
755                 qcom,ratiometric;
756         };
757 
758         pa-therm0@1 {
759                 reg = <1>;
760                 io-channels = <&pm6150l_adc ADC5_AMUX_THM3_100K_PU>;
761                 qcom,hw-settle-time-us = <200>;
762                 qcom,ratiometric;
763         };
764 
765         rear-cam-flash-therm@2 {
766                 reg = <2>;
767                 io-channels = <&pm6150l_adc ADC5_GPIO3_100K_PU>;
768                 qcom,hw-settle-time-us = <200>;
769                 qcom,ratiometric;
770         };
771 
772         quiet-therm@3 {
773                 reg = <3>;
774                 io-channels = <&pm6150l_adc ADC5_GPIO4_100K_PU>;
775                 qcom,hw-settle-time-us = <200>;
776                 qcom,ratiometric;
777         };
778 };
779 
780 &pm6150l_flash {
781         status = "okay";
782 
783         led-0 {
784                 function = LED_FUNCTION_FLASH;
785                 color = <LED_COLOR_ID_YELLOW>;
786                 led-sources = <1>;
787                 led-max-microamp = <180000>;
788                 flash-max-microamp = <1000000>;
789                 flash-max-timeout-us = <1280000>;
790         };
791 
792         led-1 {
793                 function = LED_FUNCTION_FLASH;
794                 color = <LED_COLOR_ID_WHITE>;
795                 led-sources = <2>;
796                 led-max-microamp = <180000>;
797                 flash-max-microamp = <1000000>;
798                 flash-max-timeout-us = <1280000>;
799         };
800 };
801 
802 &pm6150l_gpios {
803         pm6150l_adc_default: adc-default-state {
804                 pins = "gpio6", "gpio7", "gpio10";
805                 function = PMIC_GPIO_FUNC_NORMAL;
806                 bias-high-impedance;
807         };
808 };
809 
810 &pm6150l_wled {
811         qcom,switching-freq = <800>;
812         qcom,current-limit-microamp = <20000>;
813         qcom,num-strings = <2>;
814 
815         status = "okay";
816 };
817 
818 &pm6350_gpios {
819         gpio_keys_pin: gpio-keys-state {
820                 pins = "gpio2";
821                 function = PMIC_GPIO_FUNC_NORMAL;
822                 bias-pull-up;
823                 input-enable;
824                 power-source = <0>;
825         };
826 };
827 
828 &pm6350_resin {
829         linux,code = <KEY_VOLUMEDOWN>;
830         status = "okay";
831 };
832 
833 &pm7250b_adc {
834         channel@4d {
835                 reg = <ADC5_AMUX_THM1_100K_PU>;
836                 qcom,ratiometric;
837                 qcom,hw-settle-time = <200>;
838                 qcom,pre-scaling = <1 1>;
839                 label = "charger_skin_therm";
840         };
841 
842         channel@4f {
843                 reg = <ADC5_AMUX_THM3_100K_PU>;
844                 qcom,ratiometric;
845                 qcom,hw-settle-time = <200>;
846                 qcom,pre-scaling = <1 1>;
847                 label = "conn_therm";
848         };
849 };
850 
851 &pm7250b_adc_tm {
852         status = "okay";
853 
854         charger-skin-therm@0 {
855                 reg = <0>;
856                 io-channels = <&pm7250b_adc ADC5_AMUX_THM1_100K_PU>;
857                 qcom,ratiometric;
858                 qcom,hw-settle-time-us = <200>;
859         };
860 
861         conn-therm@1 {
862                 reg = <1>;
863                 io-channels = <&pm7250b_adc ADC5_AMUX_THM3_100K_PU>;
864                 qcom,ratiometric;
865                 qcom,hw-settle-time-us = <200>;
866         };
867 };
868 
869 &pm7250b_typec {
870         vdd-pdphy-supply = <&vreg_l3a>;
871 
872         status = "okay";
873 
874         connector {
875                 compatible = "usb-c-connector";
876 
877                 power-role = "dual";
878                 data-role = "dual";
879                 self-powered;
880 
881                 /*
882                  * Disable USB Power Delivery for now, seems to need extra work
883                  * to support role switching while also letting the battery
884                  * charge still - without charger driver
885                  */
886                 typec-power-opmode = "default";
887                 pd-disable;
888 
889                 ports {
890                         #address-cells = <1>;
891                         #size-cells = <0>;
892 
893                         port@0 {
894                                 reg = <0>;
895                                 pm7250b_hs_in: endpoint {
896                                         remote-endpoint = <&usb_1_dwc3_hs_out>;
897                                 };
898                         };
899 
900                         port@1 {
901                                 reg = <1>;
902                                 pm7250b_ss_in: endpoint {
903                                         remote-endpoint = <&usb_1_qmpphy_out>;
904                                 };
905                         };
906                 };
907         };
908 };
909 
910 &pm7250b_vbus {
911         regulator-min-microamp = <500000>;
912         regulator-max-microamp = <1500000>;
913         status = "okay";
914 };
915 
916 &pmk8350_adc_tm {
917         status = "okay";
918 
919         xo-therm@0 {
920                 reg = <0>;
921                 io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
922                 qcom,hw-settle-time-us = <200>;
923                 qcom,ratiometric;
924         };
925 };
926 
927 &pmk8350_rtc {
928         status = "okay";
929 };
930 
931 &pmk8350_vadc {
932         channel@644 {
933                 reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
934                 qcom,ratiometric;
935                 qcom,hw-settle-time = <200>;
936                 qcom,pre-scaling = <1 1>;
937                 label = "xo_therm";
938         };
939 };
940 
941 &qup_uart1_cts {
942         /*
943          * Configure a bias-bus-hold on CTS to lower power
944          * usage when Bluetooth is turned off. Bus hold will
945          * maintain a low power state regardless of whether
946          * the Bluetooth module drives the pin in either
947          * direction or leaves the pin fully unpowered.
948          */
949         bias-bus-hold;
950 };
951 
952 &qup_uart1_rts {
953         /* We'll drive RTS, so no pull */
954         drive-strength = <2>;
955         bias-disable;
956 };
957 
958 &qup_uart1_rx {
959         /*
960          * Configure a pull-up on RX. This is needed to avoid
961          * garbage data when the TX pin of the Bluetooth module is
962          * in tri-state (module powered off or not driving the
963          * signal yet).
964          */
965         bias-pull-up;
966 };
967 
968 &qup_uart1_tx {
969         /* We'll drive TX, so no pull */
970         drive-strength = <2>;
971         bias-disable;
972 };
973 
974 &qupv3_id_0 {
975         status = "okay";
976 };
977 
978 &qupv3_id_1 {
979         status = "okay";
980 };
981 
982 &sdc2_off_state {
983         sd-cd-pins {
984                 pins = "gpio94";
985                 function = "gpio";
986                 drive-strength = <2>;
987                 bias-disable;
988         };
989 };
990 
991 &sdc2_on_state {
992         sd-cd-pins {
993                 pins = "gpio94";
994                 function = "gpio";
995                 drive-strength = <2>;
996                 bias-pull-up;
997         };
998 };
999 
1000 &sdhc_2 {
1001         vmmc-supply = <&vreg_l9e>;
1002         vqmmc-supply = <&vreg_l6e>;
1003 
1004         cd-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
1005 
1006         status = "okay";
1007 };
1008 
1009 &tlmm {
1010         gpio-reserved-ranges = <13 4>, <56 2>;
1011 
1012         qup_uart1_sleep_cts: qup-uart1-sleep-cts-state {
1013                 pins = "gpio61";
1014                 function = "gpio";
1015                 /*
1016                  * Configure a bias-bus-hold on CTS to lower power
1017                  * usage when Bluetooth is turned off. Bus hold will
1018                  * maintain a low power state regardless of whether
1019                  * the Bluetooth module drives the pin in either
1020                  * direction or leaves the pin fully unpowered.
1021                  */
1022                 bias-bus-hold;
1023         };
1024 
1025         qup_uart1_sleep_rts: qup-uart1-sleep-rts-state {
1026                 pins = "gpio62";
1027                 function = "gpio";
1028                 /*
1029                  * Configure pull-down on RTS. As RTS is active low
1030                  * signal, pull it low to indicate the BT SoC that it
1031                  * can wakeup the system anytime from suspend state by
1032                  * pulling RX low (by sending wakeup bytes).
1033                  */
1034                 bias-pull-down;
1035         };
1036 
1037         qup_uart1_sleep_rx: qup-uart1-sleep-rx-state {
1038                 pins = "gpio64";
1039                 function = "gpio";
1040                 /*
1041                  * Configure a pull-up on RX. This is needed to avoid
1042                  * garbage data when the TX pin of the Bluetooth module
1043                  * is floating which may cause spurious wakeups.
1044                  */
1045                 bias-pull-up;
1046         };
1047 
1048         qup_uart1_sleep_tx: qup-uart1-sleep-tx-state {
1049                 pins = "gpio63";
1050                 function = "gpio";
1051                 /*
1052                  * Configure pull-up on TX when it isn't actively driven
1053                  * to prevent BT SoC from receiving garbage during sleep.
1054                  */
1055                 bias-pull-up;
1056         };
1057 
1058         pm8008_default: pm8008-default-state {
1059                 int-pins {
1060                         pins = "gpio59";
1061                         function = "gpio";
1062                         drive-strength = <2>;
1063                         bias-pull-down;
1064                 };
1065 
1066                 reset-n-pins {
1067                         pins = "gpio58";
1068                         function = "gpio";
1069                         drive-strength = <2>;
1070                         bias-disable;
1071                 };
1072         };
1073 };
1074 
1075 &uart1 {
1076         /delete-property/ interrupts;
1077         interrupts-extended = <&intc GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>,
1078                               <&tlmm 64 IRQ_TYPE_EDGE_FALLING>;
1079 
1080         pinctrl-names = "default", "sleep";
1081         pinctrl-1 = <&qup_uart1_sleep_cts>, <&qup_uart1_sleep_rts>, <&qup_uart1_sleep_tx>, <&qup_uart1_sleep_rx>;
1082 
1083         status = "okay";
1084 
1085         bluetooth {
1086                 compatible = "qcom,wcn3988-bt";
1087 
1088                 vddio-supply = <&vreg_l11a>;
1089                 vddxo-supply = <&vreg_l7a>;
1090                 vddrf-supply = <&vreg_l2e>;
1091                 vddch0-supply = <&vreg_l10e>;
1092                 swctrl-gpios = <&tlmm 69 GPIO_ACTIVE_HIGH>;
1093 
1094                 max-speed = <3200000>;
1095         };
1096 };
1097 
1098 &uart9 {
1099         status = "okay";
1100 };
1101 
1102 &ufs_mem_hc {
1103         reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>;
1104 
1105         vcc-supply = <&vreg_l7e>;
1106         vcc-max-microamp = <800000>;
1107         vccq2-supply = <&vreg_l12a>;
1108         vccq2-max-microamp = <800000>;
1109 
1110         status = "okay";
1111 };
1112 
1113 &ufs_mem_phy {
1114         vdda-phy-supply = <&vreg_l18a>;
1115         vdda-pll-supply = <&vreg_l22a>;
1116 
1117         status = "okay";
1118 };
1119 
1120 &usb_1 {
1121         status = "okay";
1122 };
1123 
1124 &usb_1_dwc3 {
1125         maximum-speed = "super-speed";
1126         dr_mode = "otg";
1127 };
1128 
1129 &usb_1_dwc3_hs_out {
1130         remote-endpoint = <&pm7250b_hs_in>;
1131 };
1132 
1133 &usb_1_hsphy {
1134         vdd-supply = <&vreg_l18a>;
1135         vdda-pll-supply = <&vreg_l2a>;
1136         vdda-phy-dpdm-supply = <&vreg_l3a>;
1137 
1138         status = "okay";
1139 };
1140 
1141 &usb_1_qmpphy {
1142         vdda-phy-supply = <&vreg_l22a>;
1143         vdda-pll-supply = <&vreg_l16a>;
1144 
1145         status = "okay";
1146 };
1147 
1148 &usb_1_qmpphy_out {
1149         remote-endpoint = <&pm7250b_ss_in>;
1150 };
1151 
1152 &wifi {
1153         vdd-0.8-cx-mx-supply = <&vreg_l4a>;
1154         vdd-1.8-xo-supply = <&vreg_l7a>;
1155         vdd-1.3-rfa-supply = <&vreg_l2e>;
1156         vdd-3.3-ch0-supply = <&vreg_l10e>;
1157         vdd-3.3-ch1-supply = <&vreg_l11e>;
1158 
1159         status = "okay";
1160 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php