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

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/qcom/msm8998-oneplus-common.dtsi

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ 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  * OnePlus 5(T) (cheeseburger / dumpling) common device tree source based on msm8998-mtp.dtsi
  4  *
  5  * Copyright (c) 2021, Jami Kettunen <jamipkettunen@gmail.com>
  6  * Copyright (c) 2016, The Linux Foundation. All rights reserved.
  7  */
  8 
  9 /dts-v1/;
 10 
 11 #include <dt-bindings/gpio/gpio.h>
 12 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 13 #include "msm8998.dtsi"
 14 #include "pm8005.dtsi"
 15 #include "pm8998.dtsi"
 16 #include "pmi8998.dtsi"
 17 
 18 / {
 19         /* Required for bootloader to select correct board */
 20         qcom,msm-id = <292 0x20001>; /* 8998 v2.1 */
 21 
 22         chosen {
 23                 #address-cells = <2>;
 24                 #size-cells = <2>;
 25                 ranges;
 26 
 27                 /* Use display framebuffer setup by the UEFI XBL bootloader for simplefb */
 28                 framebuffer0: framebuffer@9d400000 {
 29                         compatible = "simple-framebuffer";
 30                         reg = <0x0 0x9d400000 0x0 0x2400000>;
 31                         width = <1080>;
 32                         height = <1920>;
 33                         stride = <(1080 * 4)>;
 34                         format = "a8r8g8b8";
 35                         /*
 36                         * That's a lot of clocks, but it's necessary due
 37                         * to unused clk cleanup & no panel driver yet..
 38                         */
 39                         clocks = <&mmcc MDSS_AHB_CLK>,
 40                                  <&mmcc MDSS_AXI_CLK>,
 41                                  <&mmcc MDSS_VSYNC_CLK>,
 42                                  <&mmcc MDSS_MDP_CLK>,
 43                                  <&mmcc MDSS_BYTE0_CLK>,
 44                                  <&mmcc MDSS_BYTE0_INTF_CLK>,
 45                                  <&mmcc MDSS_PCLK0_CLK>,
 46                                  <&mmcc MDSS_ESC0_CLK>;
 47                         power-domains = <&mmcc MDSS_GDSC>;
 48                 };
 49         };
 50 
 51         reserved-memory {
 52                 /* Bootloader display framebuffer region */
 53                 cont_splash_mem: memory@9d400000 {
 54                         reg = <0x0 0x9d400000 0x0 0x2400000>;
 55                         no-map;
 56                 };
 57 
 58                 /* For getting crash logs using Android downstream kernels */
 59                 ramoops@ac000000 {
 60                         compatible = "ramoops";
 61                         reg = <0x0 0xac000000 0x0 0x200000>;
 62                         console-size = <0x80000>;
 63                         pmsg-size = <0x40000>;
 64                         record-size = <0x8000>;
 65                         ftrace-size = <0x20000>;
 66                 };
 67 
 68                 /*
 69                  * The following memory regions on downstream are "dynamically allocated"
 70                  * but given the same addresses every time. Hard code them as these addresses
 71                  * are where the OnePlus signed firmware expects them to be.
 72                  */
 73                 ipa_fws_region: ipa@f6800000 {
 74                         compatible = "shared-dma-pool";
 75                         reg = <0x0 0xf6800000 0x0 0x5000>;
 76                         no-map;
 77                 };
 78                 zap_shader_region: gpu@f6900000 {
 79                         compatible = "shared-dma-pool";
 80                         reg = <0x0 0xf6900000 0x0 0x2000>;
 81                         no-map;
 82                 };
 83         };
 84 
 85         gpio-keys {
 86                 compatible = "gpio-keys";
 87                 label = "Volume buttons";
 88                 autorepeat;
 89 
 90                 pinctrl-names = "default";
 91                 pinctrl-0 = <&vol_keys_default>;
 92 
 93                 button-vol-down {
 94                         label = "Volume down";
 95                         gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
 96                         linux,code = <KEY_VOLUMEDOWN>;
 97                         debounce-interval = <15>;
 98                         wakeup-source;
 99                 };
100 
101                 button-vol-up {
102                         label = "Volume up";
103                         gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
104                         linux,code = <KEY_VOLUMEUP>;
105                         debounce-interval = <15>;
106                         wakeup-source;
107                 };
108         };
109 
110         gpio-hall-sensor {
111                 compatible = "gpio-keys";
112                 label = "Hall effect sensor";
113 
114                 pinctrl-names = "default";
115                 pinctrl-0 = <&hall_sensor_default>;
116 
117                 event-hall-sensor {
118                         label = "Hall Effect Sensor";
119                         gpios = <&tlmm 124 GPIO_ACTIVE_LOW>;
120                         linux,input-type = <EV_SW>;
121                         linux,code = <SW_LID>;
122                         linux,can-disable;
123                         wakeup-source;
124                 };
125         };
126 
127         vph_pwr: vph-pwr-regulator {
128                 compatible = "regulator-fixed";
129                 regulator-name = "vph_pwr";
130                 regulator-always-on;
131                 regulator-boot-on;
132         };
133 };
134 
135 /*
136  * OnePlus' ADSP firmware requires 30 MiB in total, so increase the adsp_mem
137  * region by 4 MiB to account for this while relocating the other now
138  * conflicting memory nodes accordingly.
139  */
140 &adsp_mem {
141         reg = <0x0 0x8b200000 0x0 0x1e00000>;
142 };
143 &mpss_mem {
144         reg = <0x0 0x8d000000 0x0 0x7000000>;
145 };
146 &venus_mem {
147         reg = <0x0 0x94000000 0x0 0x500000>;
148 };
149 &mba_mem {
150         reg = <0x0 0x94500000 0x0 0x200000>;
151 };
152 &slpi_mem {
153         reg = <0x0 0x94700000 0x0 0xf00000>;
154 };
155 &ipa_fw_mem {
156         reg = <0x0 0x95600000 0x0 0x10000>;
157 };
158 &ipa_gsi_mem {
159         reg = <0x0 0x95610000 0x0 0x5000>;
160 };
161 &gpu_mem {
162         reg = <0x0 0x95615000 0x0 0x100000>;
163 };
164 &wlan_msa_mem {
165         reg = <0x0 0x95715000 0x0 0x100000>;
166 };
167 
168 &blsp1_i2c5 {
169         status = "okay";
170 
171         touchscreen@20 {
172                 compatible = "syna,rmi4-i2c";
173                 reg = <0x20>;
174                 #address-cells = <1>;
175                 #size-cells = <0>;
176 
177                 interrupt-parent = <&tlmm>;
178                 interrupts = <125 IRQ_TYPE_EDGE_FALLING>;
179 
180                 pinctrl-names = "default";
181                 pinctrl-0 = <&ts_int_active &ts_reset_active>;
182 
183                 vdd-supply = <&vreg_l28_3p0>;
184                 vio-supply = <&vreg_l6a_1p8>;
185 
186                 syna,reset-delay-ms = <20>;
187                 syna,startup-delay-ms = <20>;
188 
189                 rmi4-f01@1 {
190                         reg = <0x01>;
191                         syna,nosleep-mode = <1>;
192                 };
193 
194                 rmi4_f12: rmi4-f12@12 {
195                         reg = <0x12>;
196                         syna,rezero-wait-ms = <20>;
197                         syna,sensor-type = <1>;
198                         touchscreen-x-mm = <68>;
199                         touchscreen-y-mm = <122>;
200                 };
201         };
202 };
203 
204 &blsp1_i2c6 {
205         status = "okay";
206 
207         nfc@28 {
208                 compatible = "nxp,nxp-nci-i2c";
209                 reg = <0x28>;
210 
211                 interrupt-parent = <&tlmm>;
212                 interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
213 
214                 enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
215 
216                 pinctrl-names = "default";
217                 pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
218         };
219 };
220 
221 &blsp1_uart3 {
222         status = "okay";
223 
224         bluetooth {
225                 compatible = "qcom,wcn3990-bt";
226 
227                 vddio-supply = <&vreg_s4a_1p8>;
228                 vddxo-supply = <&vreg_l7a_1p8>;
229                 vddrf-supply = <&vreg_l17a_1p3>;
230                 vddch0-supply = <&vreg_l25a_3p3>;
231                 max-speed = <3200000>;
232         };
233 };
234 
235 &blsp1_uart3_on {
236         rx-pins {
237                 /delete-property/ bias-disable;
238                 /*
239                  * Configure a pull-up on 46 (RX). This is needed to
240                  * avoid garbage data when the TX pin of the Bluetooth
241                  * module is in tri-state (module powered off or not
242                  * driving the signal yet).
243                  */
244                 bias-pull-up;
245         };
246 
247         cts-pins {
248                 /delete-property/ bias-disable;
249                 /*
250                  * Configure a pull-down on 47 (CTS) to match the pull
251                  * of the Bluetooth module.
252                  */
253                 bias-pull-down;
254         };
255 };
256 
257 &blsp2_uart1 {
258         status = "okay";
259 };
260 
261 &pm8005_regulators {
262         /* VDD_GFX supply */
263         pm8005_s1: s1 {
264                 regulator-min-microvolt = <524000>;
265                 regulator-max-microvolt = <1100000>;
266                 regulator-enable-ramp-delay = <500>;
267                 /* Hack until we rig up the gpu consumer */
268                 regulator-always-on;
269         };
270 };
271 
272 &pm8998_gpios {
273         vol_keys_default: vol-keys-state {
274                 pins = "gpio5", "gpio6";
275                 function = "normal";
276                 bias-pull-up;
277                 input-enable;
278                 qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
279         };
280 };
281 
282 &qusb2phy {
283         status = "okay";
284 
285         vdd-supply = <&vreg_l1a_0p875>;
286         vdda-pll-supply = <&vreg_l12a_1p8>;
287         vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
288 };
289 
290 &rpm_requests {
291         regulators-0 {
292                 compatible = "qcom,rpm-pm8998-regulators";
293 
294                 vdd_s1-supply = <&vph_pwr>;
295                 vdd_s2-supply = <&vph_pwr>;
296                 vdd_s3-supply = <&vph_pwr>;
297                 vdd_s4-supply = <&vph_pwr>;
298                 vdd_s5-supply = <&vph_pwr>;
299                 vdd_s6-supply = <&vph_pwr>;
300                 vdd_s7-supply = <&vph_pwr>;
301                 vdd_s8-supply = <&vph_pwr>;
302                 vdd_s9-supply = <&vph_pwr>;
303                 vdd_s10-supply = <&vph_pwr>;
304                 vdd_s11-supply = <&vph_pwr>;
305                 vdd_s12-supply = <&vph_pwr>;
306                 vdd_s13-supply = <&vph_pwr>;
307                 vdd_l1_l27-supply = <&vreg_s7a_1p025>;
308                 vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>;
309                 vdd_l3_l11-supply = <&vreg_s7a_1p025>;
310                 vdd_l4_l5-supply = <&vreg_s7a_1p025>;
311                 vdd_l6-supply = <&vreg_s5a_2p04>;
312                 vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>;
313                 vdd_l9-supply = <&vreg_bob>;
314                 vdd_l10_l23_l25-supply = <&vreg_bob>;
315                 vdd_l13_l19_l21-supply = <&vreg_bob>;
316                 vdd_l16_l28-supply = <&vreg_bob>;
317                 vdd_l18_l22-supply = <&vreg_bob>;
318                 vdd_l20_l24-supply = <&vreg_bob>;
319                 vdd_l26-supply = <&vreg_s3a_1p35>;
320                 vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
321 
322                 vreg_s3a_1p35: s3 {
323                         regulator-min-microvolt = <1352000>;
324                         regulator-max-microvolt = <1352000>;
325                 };
326 
327                 vreg_s4a_1p8: s4 {
328                         regulator-min-microvolt = <1800000>;
329                         regulator-max-microvolt = <1800000>;
330                         regulator-allow-set-load;
331                 };
332 
333                 vreg_s5a_2p04: s5 {
334                         regulator-min-microvolt = <1904000>;
335                         regulator-max-microvolt = <2040000>;
336                 };
337 
338                 vreg_s7a_1p025: s7 {
339                         regulator-min-microvolt = <900000>;
340                         regulator-max-microvolt = <1028000>;
341                 };
342 
343                 vreg_l1a_0p875: l1 {
344                         regulator-min-microvolt = <880000>;
345                         regulator-max-microvolt = <880000>;
346                 };
347 
348                 vreg_l2a_1p2: l2 {
349                         regulator-min-microvolt = <1200000>;
350                         regulator-max-microvolt = <1200000>;
351                 };
352 
353                 vreg_l3a_1p0: l3 {
354                         regulator-min-microvolt = <1000000>;
355                         regulator-max-microvolt = <1000000>;
356                 };
357 
358                 vreg_l5a_0p8: l5 {
359                         regulator-min-microvolt = <800000>;
360                         regulator-max-microvolt = <800000>;
361                 };
362 
363                 vreg_l6a_1p8: l6 {
364                         regulator-min-microvolt = <1808000>;
365                         regulator-max-microvolt = <1808000>;
366                 };
367 
368                 vreg_l7a_1p8: l7 {
369                         regulator-min-microvolt = <1800000>;
370                         regulator-max-microvolt = <1800000>;
371                 };
372 
373                 vreg_l8a_1p2: l8 {
374                         regulator-min-microvolt = <1200000>;
375                         regulator-max-microvolt = <1200000>;
376                 };
377 
378                 vreg_l9a_1p8: l9 {
379                         regulator-min-microvolt = <1808000>;
380                         regulator-max-microvolt = <2960000>;
381                 };
382 
383                 vreg_l10a_1p8: l10 {
384                         regulator-min-microvolt = <1808000>;
385                         regulator-max-microvolt = <2960000>;
386                 };
387 
388                 vreg_l11a_1p0: l11 {
389                         regulator-min-microvolt = <1000000>;
390                         regulator-max-microvolt = <1000000>;
391                 };
392 
393                 vreg_l12a_1p8: l12 {
394                         regulator-min-microvolt = <1800000>;
395                         regulator-max-microvolt = <1800000>;
396                 };
397 
398                 vreg_l13a_2p95: l13 {
399                         regulator-min-microvolt = <1808000>;
400                         regulator-max-microvolt = <2960000>;
401                 };
402 
403                 vreg_l14a_1p88: l14 {
404                         regulator-min-microvolt = <1880000>;
405                         regulator-max-microvolt = <1880000>;
406                 };
407 
408                 vreg_l15a_1p8: l15 {
409                         regulator-min-microvolt = <1800000>;
410                         regulator-max-microvolt = <1800000>;
411                 };
412 
413                 vreg_l16a_2p7: l16 {
414                         regulator-min-microvolt = <2704000>;
415                         regulator-max-microvolt = <2704000>;
416                 };
417 
418                 vreg_l17a_1p3: l17 {
419                         regulator-min-microvolt = <1304000>;
420                         regulator-max-microvolt = <1304000>;
421                 };
422 
423                 vreg_l18a_2p7: l18 {
424                         regulator-min-microvolt = <2704000>;
425                         regulator-max-microvolt = <2704000>;
426                 };
427 
428                 vreg_l19a_3p0: l19 {
429                         regulator-min-microvolt = <3008000>;
430                         regulator-max-microvolt = <3008000>;
431                 };
432 
433                 vreg_l20a_2p95: l20 {
434                         regulator-min-microvolt = <2960000>;
435                         regulator-max-microvolt = <2960000>;
436                         regulator-allow-set-load;
437                 };
438                 vreg_l21a_2p95: l21 {
439                         regulator-min-microvolt = <2960000>;
440                         regulator-max-microvolt = <2960000>;
441                         regulator-system-load = <800000>;
442                         regulator-allow-set-load;
443                 };
444 
445                 vreg_l22a_2p85: l22 {
446                         regulator-min-microvolt = <2864000>;
447                         regulator-max-microvolt = <2864000>;
448                 };
449 
450                 vreg_l23a_3p3: l23 {
451                         regulator-min-microvolt = <3312000>;
452                         regulator-max-microvolt = <3312000>;
453                 };
454 
455                 vreg_l24a_3p075: l24 {
456                         regulator-min-microvolt = <3088000>;
457                         regulator-max-microvolt = <3088000>;
458                 };
459 
460                 vreg_l25a_3p3: l25 {
461                         regulator-min-microvolt = <3104000>;
462                         regulator-max-microvolt = <3312000>;
463                 };
464 
465                 vreg_l26a_1p2: l26 {
466                         regulator-min-microvolt = <1200000>;
467                         regulator-max-microvolt = <1200000>;
468                         regulator-allow-set-load;
469                 };
470 
471                 vreg_l28_3p0: l28 {
472                         regulator-min-microvolt = <3008000>;
473                         regulator-max-microvolt = <3008000>;
474                 };
475 
476                 vreg_lvs1a_1p8: lvs1 { };
477                 vreg_lvs2a_1p8: lvs2 { };
478         };
479 
480         regulators-1 {
481                 compatible = "qcom,rpm-pmi8998-regulators";
482 
483                 vdd_bob-supply = <&vph_pwr>;
484 
485                 vreg_bob: bob {
486                         regulator-min-microvolt = <3312000>;
487                         regulator-max-microvolt = <3600000>;
488                 };
489         };
490 };
491 
492 &tlmm {
493         gpio-reserved-ranges = <0 4>, <81 4>;
494 
495         hall_sensor_default: hall-sensor-default-state {
496                 pins = "gpio124";
497                 function = "gpio";
498                 drive-strength = <2>;
499                 bias-disable;
500         };
501 
502         ts_int_active: ts-int-active-state {
503                 pins = "gpio125";
504                 function = "gpio";
505                 drive-strength = <8>;
506                 bias-pull-up;
507         };
508 
509         ts_reset_active: ts-reset-active-state {
510                 pins = "gpio89";
511                 function = "gpio";
512                 drive-strength = <8>;
513                 bias-pull-up;
514         };
515 
516         nfc_int_active: nfc-int-active-state {
517                 pins = "gpio92";
518                 function = "gpio";
519                 drive-strength = <6>;
520                 bias-pull-up;
521         };
522 
523         nfc_enable_active: nfc-enable-active-state {
524                 pins = "gpio12", "gpio116";
525                 function = "gpio";
526                 drive-strength = <6>;
527                 bias-pull-up;
528         };
529 };
530 
531 &ufshc {
532         status = "okay";
533 
534         vcc-supply = <&vreg_l20a_2p95>;
535         vccq-supply = <&vreg_l26a_1p2>;
536         vccq2-supply = <&vreg_s4a_1p8>;
537         vdd-hba-supply = <&vreg_l26a_1p2>;
538         vcc-max-microamp = <750000>;
539         vccq-max-microamp = <560000>;
540         vccq2-max-microamp = <750000>;
541 };
542 
543 &ufsphy {
544         status = "okay";
545 
546         vdda-phy-supply = <&vreg_l1a_0p875>;
547         vdda-pll-supply = <&vreg_l2a_1p2>;
548 };
549 
550 &usb3 {
551         status = "okay";
552 
553         /* Disable USB3 clock requirement as the device only supports USB2 */
554         qcom,select-utmi-as-pipe-clk;
555 };
556 
557 &usb3_dwc3 {
558         /* Drop the unused USB 3 PHY */
559         phys = <&qusb2phy>;
560         phy-names = "usb2-phy";
561 
562         /* Fastest mode for USB 2 */
563         maximum-speed = "high-speed";
564 
565         /* Force to peripheral until we can switch modes */
566         dr_mode = "peripheral";
567 };
568 
569 &wifi {
570         /* Leave disabled until MSS is functional */
571         vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
572         vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
573         vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
574         vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
575 };

~ [ 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