arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / arm64 / boot / dts / qcom / qcm6490-fairphone-fp5.dts
1 // 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
12 #include <dt-bindings/leds/common.h>
13 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
14 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
15 #include "sc7280.dtsi"
16 #include "pm7250b.dtsi"
17 #include "pm7325.dtsi"
18 #include "pm8350c.dtsi" /* PM7350C */
19 #include "pmk8350.dtsi" /* PMK7325 */
20
21 /delete-node/ &rmtfs_mem;
22
23 / {
24         model = "Fairphone 5";
25         compatible = "fairphone,fp5", "qcom,qcm6490";
26         chassis-type = "handset";
27
28         aliases {
29                 serial0 = &uart5;
30                 serial1 = &uart7;
31         };
32
33         chosen {
34                 #address-cells = <2>;
35                 #size-cells = <2>;
36                 ranges;
37
38                 framebuffer0: framebuffer@a000000 {
39                         compatible = "simple-framebuffer";
40                         reg = <0x0 0xe1000000 0x0 (2700 * 1224 * 4)>;
41                         width = <1224>;
42                         height = <2700>;
43                         stride = <(1224 * 4)>;
44                         format = "a8r8g8b8";
45                         clocks = <&gcc GCC_DISP_HF_AXI_CLK>;
46                 };
47         };
48
49         gpio-keys {
50                 compatible = "gpio-keys";
51
52                 pinctrl-0 = <&volume_down_default>, <&hall_sensor_default>;
53                 pinctrl-names = "default";
54
55                 key-volume-up {
56                         label = "Volume up";
57                         gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
58                         linux,code = <KEY_VOLUMEUP>;
59                 };
60
61                 /* Powered by the always-on vreg_l8c */
62                 event-hall-sensor {
63                         label = "Hall Effect Sensor";
64                         gpios = <&tlmm 155 GPIO_ACTIVE_LOW>;
65                         linux,input-type = <EV_SW>;
66                         linux,code = <SW_LID>;
67                         linux,can-disable;
68                         wakeup-source;
69                 };
70         };
71
72         reserved-memory {
73                 cont_splash_mem: cont-splash@e1000000 {
74                         reg = <0x0 0xe1000000 0x0 0x2300000>;
75                         no-map;
76                 };
77
78                 adsp_mem: adsp@86700000 {
79                         reg = <0x0 0x86700000 0x0 0x2800000>;
80                         no-map;
81                 };
82
83                 cdsp_mem: cdsp@88f00000 {
84                         reg = <0x0 0x88f00000 0x0 0x1e00000>;
85                         no-map;
86                 };
87
88                 mpss_mem: mpss@8b800000 {
89                         reg = <0x0 0x8b800000 0x0 0xf600000>;
90                         no-map;
91                 };
92
93                 wpss_mem: wpss@9ae00000 {
94                         reg = <0x0 0x9ae00000 0x0 0x1900000>;
95                         no-map;
96                 };
97
98                 rmtfs_mem: memory@f8500000 {
99                         compatible = "qcom,rmtfs-mem";
100                         reg = <0x0 0xf8500000 0x0 0x600000>;
101                         no-map;
102
103                         qcom,client-id = <1>;
104                         qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>, <QCOM_SCM_VMID_NAV>;
105                 };
106         };
107
108         ois_avdd0_1p8: regulator-ois-avdd0-1p8 {
109                 compatible = "regulator-fixed";
110                 regulator-name = "OIS_AVDD0_1P8";
111                 regulator-min-microvolt = <1800000>;
112                 regulator-max-microvolt = <1800000>;
113                 gpio = <&tlmm 157 GPIO_ACTIVE_HIGH>;
114                 enable-active-high;
115                 vin-supply = <&vreg_bob>;
116         };
117
118         ois_dvdd_1p1: regulator-ois-dvdd-1p1 {
119                 compatible = "regulator-fixed";
120                 regulator-name = "OIS_DVDD_1P1";
121                 regulator-min-microvolt = <1100000>;
122                 regulator-max-microvolt = <1100000>;
123                 gpio = <&tlmm 97 GPIO_ACTIVE_HIGH>;
124                 enable-active-high;
125                 vin-supply = <&vreg_s8b>;
126         };
127
128         afvdd_2p8: regulator-afvdd-2p8 {
129                 compatible = "regulator-fixed";
130                 regulator-name = "AFVDD_2P8";
131                 regulator-min-microvolt = <2800000>;
132                 regulator-max-microvolt = <2800000>;
133                 gpio = <&tlmm 68 GPIO_ACTIVE_HIGH>;
134                 enable-active-high;
135                 vin-supply = <&vreg_bob>;
136         };
137 };
138
139 &apps_rsc {
140         regulators-0 {
141                 compatible = "qcom,pm7325-rpmh-regulators";
142                 qcom,pmic-id = "b";
143
144                 vreg_s1b: smps1 {
145                         regulator-min-microvolt = <1840000>;
146                         regulator-max-microvolt = <2040000>;
147                 };
148
149                 vreg_s7b: smps7 {
150                         regulator-min-microvolt = <535000>;
151                         regulator-max-microvolt = <1120000>;
152                 };
153
154                 vreg_s8b: smps8 {
155                         regulator-min-microvolt = <1200000>;
156                         regulator-max-microvolt = <1500000>;
157                         regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
158                 };
159
160                 vreg_l1b: ldo1 {
161                         regulator-min-microvolt = <825000>;
162                         regulator-max-microvolt = <925000>;
163                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
164                 };
165
166                 vreg_l2b: ldo2 {
167                         regulator-min-microvolt = <2700000>;
168                         regulator-max-microvolt = <3544000>;
169                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
170                 };
171
172                 vreg_l3b: ldo3 {
173                         regulator-min-microvolt = <312000>;
174                         regulator-max-microvolt = <910000>;
175                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
176                 };
177
178                 vreg_l6b: ldo6 {
179                         regulator-min-microvolt = <1140000>;
180                         regulator-max-microvolt = <1260000>;
181                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
182                 };
183
184                 vreg_l7b: ldo7 {
185                         regulator-min-microvolt = <2400000>;
186                         regulator-max-microvolt = <3544000>;
187                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
188                 };
189
190                 vreg_l8b: ldo8 {
191                         regulator-min-microvolt = <870000>;
192                         regulator-max-microvolt = <970000>;
193                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
194                 };
195
196                 vreg_l9b: ldo9 {
197                         regulator-min-microvolt = <1200000>;
198                         regulator-max-microvolt = <1304000>;
199                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
200                 };
201
202                 vreg_l11b: ldo11 {
203                         regulator-min-microvolt = <1504000>;
204                         regulator-max-microvolt = <2000000>;
205                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
206                 };
207
208                 vreg_l12b: ldo12 {
209                         regulator-min-microvolt = <751000>;
210                         regulator-max-microvolt = <824000>;
211                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
212                 };
213
214                 vreg_l13b: ldo13 {
215                         regulator-min-microvolt = <530000>;
216                         regulator-max-microvolt = <824000>;
217                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
218                 };
219
220                 vreg_l14b: ldo14 {
221                         regulator-min-microvolt = <1080000>;
222                         regulator-max-microvolt = <1304000>;
223                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
224                 };
225
226                 vreg_l15b: ldo15 {
227                         regulator-min-microvolt = <765000>;
228                         regulator-max-microvolt = <1020000>;
229                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
230                 };
231
232                 vreg_l16b: ldo16 {
233                         regulator-min-microvolt = <1100000>;
234                         regulator-max-microvolt = <1300000>;
235                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
236                 };
237
238                 vreg_l17b: ldo17 {
239                         regulator-min-microvolt = <1700000>;
240                         regulator-max-microvolt = <1900000>;
241                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
242                 };
243
244                 vreg_l18b: ldo18 {
245                         regulator-min-microvolt = <1800000>;
246                         regulator-max-microvolt = <2000000>;
247                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
248                 };
249
250                 vreg_l19b: ldo19 {
251                         regulator-min-microvolt = <1800000>;
252                         regulator-max-microvolt = <2000000>;
253                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
254                 };
255         };
256
257         regulators-1 {
258                 compatible = "qcom,pm8350c-rpmh-regulators";
259                 qcom,pmic-id = "c";
260
261                 vreg_s1c: smps1 {
262                         regulator-min-microvolt = <2190000>;
263                         regulator-max-microvolt = <2210000>;
264                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
265                 };
266
267                 vreg_s9c: smps9 {
268                         regulator-min-microvolt = <1010000>;
269                         regulator-max-microvolt = <1170000>;
270                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
271                 };
272
273                 vreg_l1c: ldo1 {
274                         regulator-min-microvolt = <1800000>;
275                         regulator-max-microvolt = <1980000>;
276                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
277                 };
278
279                 vreg_l2c: ldo2 {
280                         regulator-min-microvolt = <1800000>;
281                         regulator-max-microvolt = <1950000>;
282                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
283                 };
284
285                 vreg_l3c: ldo3 {
286                         regulator-min-microvolt = <3000000>;
287                         regulator-max-microvolt = <3400000>;
288                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
289                 };
290
291                 vreg_l4c: ldo4 {
292                         regulator-min-microvolt = <1620000>;
293                         regulator-max-microvolt = <3300000>;
294                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
295                 };
296
297                 vreg_l5c: ldo5 {
298                         regulator-min-microvolt = <1620000>;
299                         regulator-max-microvolt = <3300000>;
300                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
301                 };
302
303                 vreg_l6c: ldo6 {
304                         regulator-min-microvolt = <1650000>;
305                         regulator-max-microvolt = <3544000>;
306                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
307                 };
308
309                 vreg_l7c: ldo7 {
310                         regulator-min-microvolt = <3000000>;
311                         regulator-max-microvolt = <3544000>;
312                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
313                 };
314
315                 vreg_l8c: ldo8 {
316                         regulator-min-microvolt = <1620000>;
317                         regulator-max-microvolt = <2000000>;
318                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
319                         /* Hall sensor VDD */
320                         regulator-always-on;
321                 };
322
323                 vreg_l9c: ldo9 {
324                         regulator-min-microvolt = <2700000>;
325                         regulator-max-microvolt = <3544000>;
326                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
327                 };
328
329                 vreg_l10c: ldo10 {
330                         regulator-min-microvolt = <720000>;
331                         regulator-max-microvolt = <1050000>;
332                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
333                 };
334
335                 vreg_l11c: ldo11 {
336                         regulator-min-microvolt = <2800000>;
337                         regulator-max-microvolt = <3544000>;
338                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
339                 };
340
341                 vreg_l12c: ldo12 {
342                         regulator-min-microvolt = <1650000>;
343                         regulator-max-microvolt = <2000000>;
344                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
345                 };
346
347                 vreg_l13c: ldo13 {
348                         regulator-min-microvolt = <2700000>;
349                         regulator-max-microvolt = <3544000>;
350                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
351                 };
352
353                 vreg_bob: bob {
354                         regulator-min-microvolt = <3008000>;
355                         regulator-max-microvolt = <3960000>;
356                         regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
357                 };
358         };
359 };
360
361 &dispcc {
362         /* Disable for now so simple-framebuffer continues working */
363         status = "disabled";
364 };
365
366 &gcc {
367         protected-clocks = <GCC_CFG_NOC_LPASS_CLK>,
368                            <GCC_EDP_CLKREF_EN>,
369                            <GCC_MSS_CFG_AHB_CLK>,
370                            <GCC_MSS_GPLL0_MAIN_DIV_CLK_SRC>,
371                            <GCC_MSS_OFFLINE_AXI_CLK>,
372                            <GCC_MSS_Q6SS_BOOT_CLK_SRC>,
373                            <GCC_MSS_Q6_MEMNOC_AXI_CLK>,
374                            <GCC_MSS_SNOC_AXI_CLK>,
375                            <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
376                            <GCC_QSPI_CORE_CLK>,
377                            <GCC_QSPI_CORE_CLK_SRC>,
378                            <GCC_SEC_CTRL_CLK_SRC>,
379                            <GCC_WPSS_AHB_BDG_MST_CLK>,
380                            <GCC_WPSS_AHB_CLK>,
381                            <GCC_WPSS_RSCP_CLK>;
382 };
383
384 &gpi_dma0 {
385         status = "okay";
386 };
387
388 &gpi_dma1 {
389         status = "okay";
390 };
391
392 &i2c1 {
393         status = "okay";
394
395         /* PM8008 PMIC @ 8 and 9 */
396         /* Pixelworks @ 26 */
397         /* FSA4480 USB audio switch @ 42 */
398         /* AW86927FCR haptics @ 5a */
399 };
400
401 &i2c2 {
402         status = "okay";
403
404         /* AW88261FCR amplifier @ 34 */
405         /* AW88261FCR amplifier @ 35 */
406 };
407
408 &i2c4 {
409         status = "okay";
410
411         /* PTN36502 USB redriver @ 1a */
412 };
413
414 &i2c9 {
415         status = "okay";
416
417         /* ST21NFC NFC @ 28 */
418         /* VL53L3 ToF @ 29 */
419 };
420
421 &ipa {
422         qcom,gsi-loader = "self";
423         memory-region = <&ipa_fw_mem>;
424         firmware-name = "/*(DEBLOBBED)*/";
425         status = "okay";
426 };
427
428 &pm7325_gpios {
429         volume_down_default: volume-down-default-state {
430                 pins = "gpio6";
431                 function = PMIC_GPIO_FUNC_NORMAL;
432                 power-source = <1>;
433                 bias-pull-up;
434                 input-enable;
435         };
436 };
437
438 &pm8350c_flash {
439         status = "okay";
440
441         led-0 {
442                 function = LED_FUNCTION_FLASH;
443                 color = <LED_COLOR_ID_WHITE>;
444                 led-sources = <1>, <4>;
445                 led-max-microamp = <500000>;
446                 flash-max-microamp = <1500000>;
447                 flash-max-timeout-us = <1280000>;
448         };
449 };
450
451 &pmk8350_rtc {
452         status = "okay";
453 };
454
455 &pon_pwrkey {
456         status = "okay";
457 };
458
459 &pon_resin {
460         linux,code = <KEY_VOLUMEDOWN>;
461         status = "okay";
462 };
463
464 &qup_spi13_cs {
465         drive-strength = <6>;
466         bias-disable;
467 };
468
469 &qup_spi13_data_clk {
470         drive-strength = <6>;
471         bias-disable;
472 };
473
474 &qup_uart5_rx {
475         drive-strength = <2>;
476         bias-disable;
477 };
478
479 &qup_uart5_tx {
480         drive-strength = <2>;
481         bias-disable;
482 };
483
484 &qupv3_id_0 {
485         status = "okay";
486 };
487
488 &qupv3_id_1 {
489         status = "okay";
490 };
491
492 &sdc2_clk {
493         drive-strength = <16>;
494         bias-disable;
495 };
496
497 &sdc2_cmd {
498         drive-strength = <10>;
499         bias-pull-up;
500 };
501
502 &sdc2_data {
503         drive-strength = <10>;
504         bias-pull-up;
505 };
506
507 &sdhc_2 {
508         vmmc-supply = <&vreg_l9c>;
509         vqmmc-supply = <&vreg_l6c>;
510
511         pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
512         pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
513
514         status = "okay";
515 };
516
517 &spi13 {
518         status = "okay";
519
520         /* Goodix touchscreen @ 0 */
521 };
522
523 &tlmm {
524         /*
525          * 32-33: SMB1394 (SPMI)
526          * 56-59: fingerprint reader (SPI)
527          */
528         gpio-reserved-ranges = <32 2>, <56 4>;
529
530         bluetooth_enable_default: bluetooth-enable-default-state {
531                 pins = "gpio85";
532                 function = "gpio";
533                 output-low;
534                 bias-disable;
535         };
536
537         hall_sensor_default: hall-sensor-default-state {
538                 pins = "gpio155";
539                 function = "gpio";
540                 drive-strength = <2>;
541                 bias-pull-up;
542         };
543
544         qup_uart7_sleep_cts: qup-uart7-sleep-cts-state {
545                 pins = "gpio28";
546                 function = "gpio";
547                 /*
548                  * Configure a bias-bus-hold on CTS to lower power
549                  * usage when Bluetooth is turned off. Bus hold will
550                  * maintain a low power state regardless of whether
551                  * the Bluetooth module drives the pin in either
552                  * direction or leaves the pin fully unpowered.
553                  */
554                 bias-bus-hold;
555         };
556
557         qup_uart7_sleep_rts: qup-uart7-sleep-rts-state {
558                 pins = "gpio29";
559                 function = "gpio";
560                 /*
561                  * Configure pull-down on RTS. As RTS is active low
562                  * signal, pull it low to indicate the BT SoC that it
563                  * can wakeup the system anytime from suspend state by
564                  * pulling RX low (by sending wakeup bytes).
565                  */
566                 bias-pull-down;
567         };
568
569         qup_uart7_sleep_tx: qup-uart7-sleep-tx-state {
570                 pins = "gpio30";
571                 function = "gpio";
572                 /*
573                  * Configure pull-up on TX when it isn't actively driven
574                  * to prevent BT SoC from receiving garbage during sleep.
575                  */
576                 bias-pull-up;
577         };
578
579         qup_uart7_sleep_rx: qup-uart7-sleep-rx-state {
580                 pins = "gpio31";
581                 function = "gpio";
582                 /*
583                  * Configure a pull-up on RX. This is needed to avoid
584                  * garbage data when the TX pin of the Bluetooth module
585                  * is floating which may cause spurious wakeups.
586                  */
587                 bias-pull-up;
588         };
589
590         sw_ctrl_default: sw-ctrl-default-state {
591                 pins = "gpio86";
592                 function = "gpio";
593                 bias-pull-down;
594         };
595 };
596
597 &uart5 {
598         compatible = "qcom,geni-debug-uart";
599         status = "okay";
600 };
601
602 &uart7 {
603         /delete-property/interrupts;
604         interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
605                               <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
606
607         pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
608         pinctrl-names = "default", "sleep";
609
610         status = "okay";
611
612         bluetooth: bluetooth {
613                 compatible = "qcom,wcn6750-bt";
614
615                 pinctrl-0 = <&bluetooth_enable_default>, <&sw_ctrl_default>;
616                 pinctrl-names = "default";
617
618                 enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
619                 swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
620
621                 vddio-supply = <&vreg_l19b>;
622                 vddaon-supply = <&vreg_s7b>;
623                 vddbtcxmx-supply = <&vreg_s7b>;
624                 vddrfacmn-supply = <&vreg_s7b>;
625                 vddrfa0p8-supply = <&vreg_s7b>;
626                 vddrfa1p7-supply = <&vreg_s1b>;
627                 vddrfa1p2-supply = <&vreg_s8b>;
628                 vddrfa2p2-supply = <&vreg_s1c>;
629                 vddasd-supply = <&vreg_l11c>;
630
631                 max-speed = <3200000>;
632         };
633 };
634
635 &usb_1 {
636         status = "okay";
637 };
638
639 &usb_1_dwc3 {
640         dr_mode = "peripheral";
641 };
642
643 &usb_1_hsphy {
644         vdda-pll-supply = <&vreg_l10c>;
645         vdda18-supply = <&vreg_l1c>;
646         vdda33-supply = <&vreg_l2b>;
647
648         qcom,hs-crossover-voltage-microvolt = <28000>;
649         qcom,hs-output-impedance-micro-ohms = <2600000>;
650         qcom,hs-rise-fall-time-bp = <5430>;
651         qcom,hs-disconnect-bp = <1743>;
652         qcom,hs-amplitude-bp = <2430>;
653
654         qcom,pre-emphasis-amplitude-bp = <20000>;
655         qcom,pre-emphasis-duration-bp = <20000>;
656
657         qcom,squelch-detector-bp = <(-2090)>;
658
659         status = "okay";
660 };
661
662 &usb_1_qmpphy {
663         vdda-phy-supply = <&vreg_l6b>;
664         vdda-pll-supply = <&vreg_l1b>;
665
666         status = "okay";
667 };