staging: rtl8192u: remove redundant assignment to pointer crypt
[linux/fpc-iii.git] / arch / arm64 / boot / dts / qcom / sdm845-cheza.dtsi
blob1ebbd568dfd72cab82400ef69d73b2b8921e0935
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Google Cheza device tree source (common between revisions)
4  *
5  * Copyright 2018 Google LLC.
6  */
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
11 #include "sdm845.dtsi"
13 /* PMICs depend on spmi_bus label and so must come after SoC */
14 #include "pm8005.dtsi"
15 #include "pm8998.dtsi"
17 / {
18         aliases {
19                 bluetooth0 = &bluetooth;
20                 hsuart0 = &uart6;
21                 serial0 = &uart9;
22                 wifi0 = &wifi;
23         };
25         chosen {
26                 stdout-path = "serial0:115200n8";
27         };
29         backlight: backlight {
30                 compatible = "pwm-backlight";
31                 pwms = <&cros_ec_pwm 0>;
32                 enable-gpios = <&tlmm 37 GPIO_ACTIVE_HIGH>;
33                 power-supply = <&ppvar_sys>;
34                 pinctrl-names = "default";
35                 pinctrl-0 = <&ap_edp_bklten>;
36         };
38         /* FIXED REGULATORS - parents above children */
40         /* This is the top level supply and variable voltage */
41         ppvar_sys: ppvar-sys-regulator {
42                 compatible = "regulator-fixed";
43                 regulator-name = "ppvar_sys";
44                 regulator-always-on;
45                 regulator-boot-on;
46         };
48         /* This divides ppvar_sys by 2, so voltage is variable */
49         src_vph_pwr: src-vph-pwr-regulator {
50                 compatible = "regulator-fixed";
51                 regulator-name = "src_vph_pwr";
53                 /* EC turns on with switchcap_on_l; always on for AP */
54                 regulator-always-on;
55                 regulator-boot-on;
57                 vin-supply = <&ppvar_sys>;
58         };
60         pp5000_a: pp5000-a-regulator {
61                 compatible = "regulator-fixed";
62                 regulator-name = "pp5000_a";
64                 /* EC turns on with en_pp5000_a; always on for AP */
65                 regulator-always-on;
66                 regulator-boot-on;
67                 regulator-min-microvolt = <5000000>;
68                 regulator-max-microvolt = <5000000>;
70                 vin-supply = <&ppvar_sys>;
71         };
73         src_vreg_bob: src-vreg-bob-regulator {
74                 compatible = "regulator-fixed";
75                 regulator-name = "src_vreg_bob";
77                 /* EC turns on with vbob_en; always on for AP */
78                 regulator-always-on;
79                 regulator-boot-on;
80                 regulator-min-microvolt = <3600000>;
81                 regulator-max-microvolt = <3600000>;
83                 vin-supply = <&ppvar_sys>;
84         };
86         pp3300_dx_edp: pp3300-dx-edp-regulator {
87                 compatible = "regulator-fixed";
88                 regulator-name = "pp3300_dx_edp";
90                 regulator-min-microvolt = <3300000>;
91                 regulator-max-microvolt = <3300000>;
93                 gpio = <&tlmm 43 GPIO_ACTIVE_HIGH>;
94                 enable-active-high;
95                 pinctrl-names = "default";
96                 pinctrl-0 = <&en_pp3300_dx_edp>;
97         };
99         /*
100          * Apparently RPMh does not provide support for PM8998 S4 because it
101          * is always-on; model it as a fixed regulator.
102          */
103         src_pp1800_s4a: pm8998-smps4 {
104                 compatible = "regulator-fixed";
105                 regulator-name = "src_pp1800_s4a";
107                 regulator-min-microvolt = <1800000>;
108                 regulator-max-microvolt = <1800000>;
110                 regulator-always-on;
111                 regulator-boot-on;
113                 vin-supply = <&src_vph_pwr>;
114         };
116         /* BOARD-SPECIFIC TOP LEVEL NODES */
118         gpio-keys {
119                 compatible = "gpio-keys";
120                 pinctrl-names = "default";
121                 pinctrl-0 = <&pen_eject_odl>;
123                 pen-insert {
124                         label = "Pen Insert";
125                         /* Insert = low, eject = high */
126                         gpios = <&tlmm 119 GPIO_ACTIVE_LOW>;
127                         linux,code = <SW_PEN_INSERTED>;
128                         linux,input-type = <EV_SW>;
129                         wakeup-source;
130                 };
131         };
133         panel: panel {
134                 compatible ="innolux,p120zdg-bf1";
135                 power-supply = <&pp3300_dx_edp>;
136                 backlight = <&backlight>;
137                 no-hpd;
139                 ports {
140                         panel_in: port {
141                                 panel_in_edp: endpoint {
142                                         remote-endpoint = <&sn65dsi86_out>;
143                                 };
144                         };
145                 };
146         };
150  * Reserved memory changes
152  * Putting this all together (out of order with the rest of the file) to keep
153  * all modifications to the memory map (from sdm845.dtsi) in one place.
154  */
157  * Our mpss_region is 8MB bigger than the default one and that conflicts
158  * with venus_mem and cdsp_mem.
160  * For venus_mem we'll delete and re-create at a different address.
162  * cdsp_mem isn't used on cheza right now so we won't bother re-creating it; but
163  * that also means we need to delete cdsp_pas.
164  */
165 /delete-node/ &venus_mem;
166 /delete-node/ &cdsp_mem;
167 /delete-node/ &cdsp_pas;
169 /* Increase the size from 120 MB to 128 MB */
170 &mpss_region {
171         reg = <0 0x8e000000 0 0x8000000>;
174 /* Increase the size from 2MB to 8MB */
175 &rmtfs_mem {
176         reg = <0 0x88f00000 0 0x800000>;
179 / {
180         reserved-memory {
181                 venus_mem: memory@96000000 {
182                         reg = <0 0x96000000 0 0x500000>;
183                         no-map;
184                 };
185         };
188 &qspi {
189         status = "okay";
190         pinctrl-names = "default";
191         pinctrl-0 = <&qspi_clk &qspi_cs0 &qspi_data01>;
193         flash@0 {
194                 compatible = "jedec,spi-nor";
195                 reg = <0>;
197                 /*
198                  * In theory chip supports up to 104 MHz and controller up
199                  * to 80 MHz, but above 25 MHz wasn't reliable so we'll use
200                  * that for now.  b:117440651
201                  */
202                 spi-max-frequency = <25000000>;
203                 spi-tx-bus-width = <2>;
204                 spi-rx-bus-width = <2>;
205         };
209 &apps_rsc {
210         pm8998-rpmh-regulators {
211                 compatible = "qcom,pm8998-rpmh-regulators";
212                 qcom,pmic-id = "a";
214                 vdd-s1-supply = <&src_vph_pwr>;
215                 vdd-s2-supply = <&src_vph_pwr>;
216                 vdd-s3-supply = <&src_vph_pwr>;
217                 vdd-s4-supply = <&src_vph_pwr>;
218                 vdd-s5-supply = <&src_vph_pwr>;
219                 vdd-s6-supply = <&src_vph_pwr>;
220                 vdd-s7-supply = <&src_vph_pwr>;
221                 vdd-s8-supply = <&src_vph_pwr>;
222                 vdd-s9-supply = <&src_vph_pwr>;
223                 vdd-s10-supply = <&src_vph_pwr>;
224                 vdd-s11-supply = <&src_vph_pwr>;
225                 vdd-s12-supply = <&src_vph_pwr>;
226                 vdd-s13-supply = <&src_vph_pwr>;
227                 vdd-l1-l27-supply = <&src_pp1025_s7a>;
228                 vdd-l2-l8-l17-supply = <&src_pp1350_s3a>;
229                 vdd-l3-l11-supply = <&src_pp1025_s7a>;
230                 vdd-l4-l5-supply = <&src_pp1025_s7a>;
231                 vdd-l6-supply = <&src_vph_pwr>;
232                 vdd-l7-l12-l14-l15-supply = <&src_pp2040_s5a>;
233                 vdd-l9-supply = <&src_pp2040_s5a>;
234                 vdd-l10-l23-l25-supply = <&src_vreg_bob>;
235                 vdd-l13-l19-l21-supply = <&src_vreg_bob>;
236                 vdd-l16-l28-supply = <&src_vreg_bob>;
237                 vdd-l18-l22-supply = <&src_vreg_bob>;
238                 vdd-l20-l24-supply = <&src_vreg_bob>;
239                 vdd-l26-supply = <&src_pp1350_s3a>;
240                 vin-lvs-1-2-supply = <&src_pp1800_s4a>;
242                 src_pp1125_s2a: smps2 {
243                         regulator-min-microvolt = <1100000>;
244                         regulator-max-microvolt = <1100000>;
245                 };
247                 src_pp1350_s3a: smps3 {
248                         regulator-min-microvolt = <1352000>;
249                         regulator-max-microvolt = <1352000>;
250                 };
252                 src_pp2040_s5a: smps5 {
253                         regulator-min-microvolt = <1904000>;
254                         regulator-max-microvolt = <2040000>;
255                 };
257                 src_pp1025_s7a: smps7 {
258                         regulator-min-microvolt = <900000>;
259                         regulator-max-microvolt = <1028000>;
260                 };
262                 vdd_qusb_hs0:
263                 vdda_hp_pcie_core:
264                 vdda_mipi_csi0_0p9:
265                 vdda_mipi_csi1_0p9:
266                 vdda_mipi_csi2_0p9:
267                 vdda_mipi_dsi0_pll:
268                 vdda_mipi_dsi1_pll:
269                 vdda_qlink_lv:
270                 vdda_qlink_lv_ck:
271                 vdda_qrefs_0p875:
272                 vdda_pcie_core:
273                 vdda_pll_cc_ebi01:
274                 vdda_pll_cc_ebi23:
275                 vdda_sp_sensor:
276                 vdda_ufs1_core:
277                 vdda_ufs2_core:
278                 vdda_usb1_ss_core:
279                 vdda_usb2_ss_core:
280                 src_pp875_l1a: ldo1 {
281                         regulator-min-microvolt = <880000>;
282                         regulator-max-microvolt = <880000>;
283                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
284                 };
286                 vddpx_10:
287                 src_pp1200_l2a: ldo2 {
288                         regulator-min-microvolt = <1200000>;
289                         regulator-max-microvolt = <1200000>;
290                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
292                         /* TODO: why??? */
293                         regulator-always-on;
294                 };
296                 pp1000_l3a_sdr845: ldo3 {
297                         regulator-min-microvolt = <1000000>;
298                         regulator-max-microvolt = <1000000>;
299                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
300                 };
302                 vdd_wcss_cx:
303                 vdd_wcss_mx:
304                 vdda_wcss_pll:
305                 src_pp800_l5a: ldo5 {
306                         regulator-min-microvolt = <800000>;
307                         regulator-max-microvolt = <800000>;
308                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
309                 };
311                 vddpx_13:
312                 src_pp1800_l6a: ldo6 {
313                         regulator-min-microvolt = <1856000>;
314                         regulator-max-microvolt = <1856000>;
315                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
316                 };
318                 pp1800_l7a_wcn3990: ldo7 {
319                         regulator-min-microvolt = <1800000>;
320                         regulator-max-microvolt = <1800000>;
321                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
322                 };
324                 src_pp1200_l8a: ldo8 {
325                         regulator-min-microvolt = <1200000>;
326                         regulator-max-microvolt = <1248000>;
327                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
328                 };
330                 pp1800_dx_pen:
331                 src_pp1800_l9a: ldo9 {
332                         regulator-min-microvolt = <1800000>;
333                         regulator-max-microvolt = <1800000>;
334                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
335                 };
337                 src_pp1800_l10a: ldo10 {
338                         regulator-min-microvolt = <1800000>;
339                         regulator-max-microvolt = <1800000>;
340                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
341                 };
343                 pp1000_l11a_sdr845: ldo11 {
344                         regulator-min-microvolt = <1000000>;
345                         regulator-max-microvolt = <1048000>;
346                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
347                 };
349                 vdd_qfprom:
350                 vdd_qfprom_sp:
351                 vdda_apc1_cs_1p8:
352                 vdda_gfx_cs_1p8:
353                 vdda_qrefs_1p8:
354                 vdda_qusb_hs0_1p8:
355                 vddpx_11:
356                 src_pp1800_l12a: ldo12 {
357                         regulator-min-microvolt = <1800000>;
358                         regulator-max-microvolt = <1800000>;
359                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
360                 };
362                 vddpx_2:
363                 src_pp2950_l13a: ldo13 {
364                         regulator-min-microvolt = <1800000>;
365                         regulator-max-microvolt = <2960000>;
366                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
367                 };
369                 src_pp1800_l14a: ldo14 {
370                         regulator-min-microvolt = <1800000>;
371                         regulator-max-microvolt = <1800000>;
372                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
373                 };
375                 src_pp1800_l15a: ldo15 {
376                         regulator-min-microvolt = <1800000>;
377                         regulator-max-microvolt = <1800000>;
378                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
379                 };
381                 pp2700_l16a: ldo16 {
382                         regulator-min-microvolt = <2704000>;
383                         regulator-max-microvolt = <2704000>;
384                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
385                 };
387                 src_pp1300_l17a: ldo17 {
388                         regulator-min-microvolt = <1304000>;
389                         regulator-max-microvolt = <1304000>;
390                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
391                 };
393                 pp2700_l18a: ldo18 {
394                         regulator-min-microvolt = <2704000>;
395                         regulator-max-microvolt = <2960000>;
396                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
397                 };
399                 /*
400                  * NOTE: this rail should have been called
401                  * src_pp3300_l19a in the schematic
402                  */
403                 src_pp3000_l19a: ldo19 {
404                         regulator-min-microvolt = <3304000>;
405                         regulator-max-microvolt = <3304000>;
407                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
408                 };
410                 src_pp2950_l20a: ldo20 {
411                         regulator-min-microvolt = <2704000>;
412                         regulator-max-microvolt = <2960000>;
413                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
414                 };
416                 src_pp2950_l21a: ldo21 {
417                         regulator-min-microvolt = <2704000>;
418                         regulator-max-microvolt = <2960000>;
419                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
420                 };
422                 pp3300_hub:
423                 src_pp3300_l22a: ldo22 {
424                         regulator-min-microvolt = <3304000>;
425                         regulator-max-microvolt = <3304000>;
426                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
427                         /*
428                          * HACK: Should add a usb hub node and driver
429                          * to turn this on and off at suspend/resume time
430                          */
431                         regulator-boot-on;
432                         regulator-always-on;
433                 };
435                 pp3300_l23a_ch1_wcn3990: ldo23 {
436                         regulator-min-microvolt = <3000000>;
437                         regulator-max-microvolt = <3312000>;
438                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
439                 };
441                 vdda_qusb_hs0_3p1:
442                 src_pp3075_l24a: ldo24 {
443                         regulator-min-microvolt = <3088000>;
444                         regulator-max-microvolt = <3088000>;
445                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
446                 };
448                 pp3300_l25a_ch0_wcn3990: ldo25 {
449                         regulator-min-microvolt = <3304000>;
450                         regulator-max-microvolt = <3304000>;
451                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
452                 };
454                 pp1200_hub:
455                 vdda_hp_pcie_1p2:
456                 vdda_hv_ebi0:
457                 vdda_hv_ebi1:
458                 vdda_hv_ebi2:
459                 vdda_hv_ebi3:
460                 vdda_mipi_csi_1p25:
461                 vdda_mipi_dsi0_1p2:
462                 vdda_mipi_dsi1_1p2:
463                 vdda_pcie_1p2:
464                 vdda_ufs1_1p2:
465                 vdda_ufs2_1p2:
466                 vdda_usb1_ss_1p2:
467                 vdda_usb2_ss_1p2:
468                 src_pp1200_l26a: ldo26 {
469                         regulator-min-microvolt = <1200000>;
470                         regulator-max-microvolt = <1200000>;
471                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
472                 };
474                 pp3300_dx_pen:
475                 src_pp3300_l28a: ldo28 {
476                         regulator-min-microvolt = <3304000>;
477                         regulator-max-microvolt = <3304000>;
478                         regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
479                 };
481                 src_pp1800_lvs1: lvs1 {
482                         regulator-min-microvolt = <1800000>;
483                         regulator-max-microvolt = <1800000>;
484                 };
486                 src_pp1800_lvs2: lvs2 {
487                         regulator-min-microvolt = <1800000>;
488                         regulator-max-microvolt = <1800000>;
489                 };
490         };
492         pm8005-rpmh-regulators {
493                 compatible = "qcom,pm8005-rpmh-regulators";
494                 qcom,pmic-id = "c";
496                 vdd-s1-supply = <&src_vph_pwr>;
497                 vdd-s2-supply = <&src_vph_pwr>;
498                 vdd-s3-supply = <&src_vph_pwr>;
499                 vdd-s4-supply = <&src_vph_pwr>;
501                 src_pp600_s3c: smps3 {
502                         regulator-min-microvolt = <600000>;
503                         regulator-max-microvolt = <600000>;
504                 };
505         };
508 &dsi0 {
509         status = "okay";
510         vdda-supply = <&vdda_mipi_dsi0_1p2>;
512         ports {
513                 port@1 {
514                         endpoint {
515                                 remote-endpoint = <&sn65dsi86_in>;
516                                 data-lanes = <0 1 2 3>;
517                         };
518                 };
519         };
522 &dsi0_phy {
523         status = "okay";
524         vdds-supply = <&vdda_mipi_dsi0_pll>;
527 edp_brij_i2c: &i2c3 {
528         status = "okay";
529         clock-frequency = <400000>;
531         sn65dsi86_bridge: bridge@2d {
532                 compatible = "ti,sn65dsi86";
533                 reg = <0x2d>;
534                 pinctrl-names = "default";
535                 pinctrl-0 = <&edp_brij_en &edp_brij_irq>;
537                 interrupt-parent = <&tlmm>;
538                 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
540                 enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
542                 vpll-supply = <&src_pp1800_s4a>;
543                 vccio-supply = <&src_pp1800_s4a>;
544                 vcca-supply = <&src_pp1200_l2a>;
545                 vcc-supply = <&src_pp1200_l2a>;
547                 clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
548                 clock-names = "refclk";
550                 ports {
551                         #address-cells = <1>;
552                         #size-cells = <0>;
554                         port@0 {
555                                 reg = <0>;
556                                 sn65dsi86_in: endpoint {
557                                         remote-endpoint = <&dsi0_out>;
558                                 };
559                         };
561                         port@1 {
562                                 reg = <1>;
563                                 sn65dsi86_out: endpoint {
564                                         remote-endpoint = <&panel_in_edp>;
565                                 };
566                         };
567                 };
568         };
571 ap_pen_1v8: &i2c11 {
572         status = "okay";
573         clock-frequency = <400000>;
575         digitizer@9 {
576                 compatible = "wacom,w9013", "hid-over-i2c";
577                 reg = <0x9>;
578                 pinctrl-names = "default";
579                 pinctrl-0 = <&pen_irq_l>, <&pen_pdct_l>, <&pen_rst_l>;
581                 vdd-supply = <&pp3300_dx_pen>;
582                 vddl-supply = <&pp1800_dx_pen>;
583                 post-power-on-delay-ms = <100>;
585                 interrupt-parent = <&tlmm>;
586                 interrupts = <24 IRQ_TYPE_LEVEL_LOW>;
588                 hid-descr-addr = <0x1>;
589         };
592 amp_i2c: &i2c12 {
593         status = "okay";
594         clock-frequency = <400000>;
597 ap_ts_i2c: &i2c14 {
598         status = "okay";
599         clock-frequency = <400000>;
601         touchscreen@10 {
602                 compatible = "elan,ekth3500";
603                 reg = <0x10>;
604                 pinctrl-names = "default";
605                 pinctrl-0 = <&ts_int_l &ts_reset_l>;
607                 interrupt-parent = <&tlmm>;
608                 interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
610                 vcc33-supply = <&src_pp3300_l28a>;
612                 reset-gpios = <&tlmm 118 GPIO_ACTIVE_LOW>;
613         };
616 &lpasscc {
617         status = "okay";
620 &mdss {
621         status = "okay";
624 &mdss_mdp {
625         status = "okay";
628 &qupv3_id_0 {
629         status = "okay";
632 &qupv3_id_1 {
633         status = "okay";
636 &sdhc_2 {
637         status = "okay";
639         pinctrl-names = "default";
640         pinctrl-0 = <&sdc2_clk &sdc2_cmd &sdc2_data &sd_cd_odl>;
642         vmmc-supply = <&src_pp2950_l21a>;
643         vqmmc-supply = <&vddpx_2>;
645         cd-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
648 &spi0 {
649         status = "okay";
652 &spi10 {
653         status = "okay";
655         cros_ec: ec@0 {
656                 compatible = "google,cros-ec-spi";
657                 reg = <0>;
658                 interrupt-parent = <&tlmm>;
659                 interrupts = <122 IRQ_TYPE_LEVEL_LOW>;
660                 pinctrl-names = "default";
661                 pinctrl-0 = <&ec_ap_int_l>;
662                 spi-max-frequency = <3000000>;
664                 cros_ec_pwm: ec-pwm {
665                         compatible = "google,cros-ec-pwm";
666                         #pwm-cells = <1>;
667                 };
669                 i2c_tunnel: i2c-tunnel {
670                         compatible = "google,cros-ec-i2c-tunnel";
671                         google,remote-bus = <0>;
672                         #address-cells = <1>;
673                         #size-cells = <0>;
674                 };
676                 pdupdate {
677                         compatible = "google,cros-ec-pd-update";
678                 };
679         };
682 #include <arm/cros-ec-keyboard.dtsi>
683 #include <arm/cros-ec-sbs.dtsi>
685 &uart6 {
686         status = "okay";
688         bluetooth: wcn3990-bt {
689                 compatible = "qcom,wcn3990-bt";
690                 vddio-supply = <&src_pp1800_s4a>;
691                 vddxo-supply = <&pp1800_l7a_wcn3990>;
692                 vddrf-supply = <&src_pp1300_l17a>;
693                 vddch0-supply = <&pp3300_l25a_ch0_wcn3990>;
694                 max-speed = <3200000>;
695         };
698 &uart9 {
699         status = "okay";
702 &ufs_mem_hc {
703         status = "okay";
704         pinctrl-names = "init", "default";
705         pinctrl-0 = <&ufs_dev_reset_assert>;
706         pinctrl-1 = <&ufs_dev_reset_deassert>;
708         vcc-supply = <&src_pp2950_l20a>;
709         vcc-max-microamp = <600000>;
712 &ufs_mem_phy {
713         status = "okay";
715         vdda-phy-supply = <&vdda_ufs1_core>;
716         vdda-pll-supply = <&vdda_ufs1_1p2>;
719 &usb_1 {
720         status = "okay";
722         /* We'll use this as USB 2.0 only */
723         qcom,select-utmi-as-pipe-clk;
726 &usb_1_dwc3 {
727         /*
728          * The hardware design intends this port to be hooked up in peripheral
729          * mode, so we'll hardcode it here.  Some details:
730          * - SDM845 expects only a single Type C connector so it has only one
731          *   native Type C port but cheza has two Type C connectors.
732          * - The only source of DP is the single native Type C port.
733          * - On cheza we want to be able to hook DP up to _either_ of the
734          *   two Type C connectors and want to be able to achieve 4 lanes of DP.
735          * - When you configure a Type C port for 4 lanes of DP you lose USB3.
736          * - In order to make everything work, the native Type C port is always
737          *   configured as 4-lanes DP so it's always available.
738          * - The extra USB3 port on SDM845 goes to a USB 3 hub which is then
739          *   sent to the two Type C connectors.
740          * - The extra USB2 lines from the native Type C port are always
741          *   setup as "peripheral" so that we can mux them over to one connector
742          *   or the other if someone needs the connector configured as a gadget
743          *   (but they only get USB2 speeds).
744          *
745          * All the hardware muxes would allow us to hook things up in different
746          * ways to some potential benefit for static configurations (you could
747          * achieve extra USB2 bandwidth by using two different ports for the
748          * two conenctors or possibly even get USB3 peripheral mode), but in
749          * each case you end up forcing to disconnect/reconnect an in-use
750          * USB session in some cases depending on what you hotplug into the
751          * other connector.  Thus hardcoding this as peripheral makes sense.
752          */
753         dr_mode = "peripheral";
755         /*
756          * We always need the high speed pins as 4-lanes DP in case someone
757          * hotplugs a DP peripheral.  Thus limit this port to a max of high
758          * speed.
759          */
760         maximum-speed = "high-speed";
762         /*
763          * We don't need the usb3-phy since we run in highspeed mode always, so
764          * re-define these properties removing the superspeed USB PHY reference.
765          */
766         phys = <&usb_1_hsphy>;
767         phy-names = "usb2-phy";
770 &usb_1_hsphy {
771         status = "okay";
773         vdd-supply = <&vdda_usb1_ss_core>;
774         vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
775         vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
777         qcom,imp-res-offset-value = <8>;
778         qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
779         qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
780         qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
783 &usb_2 {
784         status = "okay";
787 &usb_2_dwc3 {
788         /* We have this hooked up to a hub and we always use in host mode */
789         dr_mode = "host";
792 &usb_2_hsphy {
793         status = "okay";
795         vdd-supply = <&vdda_usb2_ss_core>;
796         vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
797         vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
799         qcom,imp-res-offset-value = <8>;
800         qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
803 &usb_2_qmpphy {
804         status = "okay";
806         vdda-phy-supply = <&vdda_usb2_ss_1p2>;
807         vdda-pll-supply = <&vdda_usb2_ss_core>;
810 &wifi {
811         status = "okay";
813         vdd-0.8-cx-mx-supply = <&src_pp800_l5a >;
814         vdd-1.8-xo-supply = <&pp1800_l7a_wcn3990>;
815         vdd-1.3-rfa-supply = <&src_pp1300_l17a>;
816         vdd-3.3-ch0-supply = <&pp3300_l25a_ch0_wcn3990>;
819 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
821 &qspi_cs0 {
822         pinconf {
823                 pins = "gpio90";
824                 bias-disable;
825         };
828 &qspi_clk {
829         pinconf {
830                 pins = "gpio95";
831                 bias-disable;
832         };
835 &qspi_data01 {
836         pinconf {
837                 pins = "gpio91", "gpio92";
839                 /* High-Z when no transfers; nice to park the lines */
840                 bias-pull-up;
841         };
844 &qup_i2c3_default {
845         pinconf {
846                 pins = "gpio41", "gpio42";
847                 drive-strength = <2>;
849                 /* Has external pullup */
850                 bias-disable;
851         };
854 &qup_i2c11_default {
855         pinconf {
856                 pins = "gpio31", "gpio32";
857                 drive-strength = <2>;
859                 /* Has external pullup */
860                 bias-disable;
861         };
864 &qup_i2c12_default {
865         pinconf {
866                 pins = "gpio49", "gpio50";
867                 drive-strength = <2>;
869                 /* Has external pullup */
870                 bias-disable;
871         };
874 &qup_i2c14_default {
875         pinconf {
876                 pins = "gpio33", "gpio34";
877                 drive-strength = <2>;
879                 /* Has external pullup */
880                 bias-disable;
881         };
884 &qup_spi0_default {
885         pinconf {
886                 pins = "gpio0", "gpio1", "gpio2", "gpio3";
887                 drive-strength = <2>;
888                 bias-disable;
889         };
892 &qup_spi5_default {
893         pinconf {
894                 pins = "gpio85", "gpio86", "gpio87", "gpio88";
895                 drive-strength = <2>;
896                 bias-disable;
897         };
900 &qup_spi10_default {
901         pinconf {
902                 pins = "gpio53", "gpio54", "gpio55", "gpio56";
903                 drive-strength = <2>;
904                 bias-disable;
905         };
908 &qup_uart6_default {
909         /* Change pinmux to all 4 pins since CTS and RTS are connected */
910         pinmux {
911                 pins = "gpio45", "gpio46",
912                        "gpio47", "gpio48";
913         };
915         pinconf-cts {
916                 /*
917                  * Configure a pull-down on 45 (CTS) to match the pull of
918                  * the Bluetooth module.
919                  */
920                 pins = "gpio45";
921                 bias-pull-down;
922         };
924         pinconf-rts-tx {
925                 /* We'll drive 46 (RTS) and 47 (TX), so no pull */
926                 pins = "gpio46", "gpio47";
927                 drive-strength = <2>;
928                 bias-disable;
929         };
931         pinconf-rx {
932                 /*
933                  * Configure a pull-up on 48 (RX). This is needed to avoid
934                  * garbage data when the TX pin of the Bluetooth module is
935                  * in tri-state (module powered off or not driving the
936                  * signal yet).
937                  */
938                 pins = "gpio48";
939                 bias-pull-up;
940         };
943 &qup_uart9_default {
944         pinconf-tx {
945                 pins = "gpio4";
946                 drive-strength = <2>;
947                 bias-disable;
948         };
950         pinconf-rx {
951                 pins = "gpio5";
952                 drive-strength = <2>;
953                 bias-pull-up;
954         };
957 /* PINCTRL - board-specific pinctrl */
958 &pm8005_gpio {
959         gpio-line-names = "",
960                           "",
961                           "SLB",
962                           "";
965 &pm8998_adc {
966         adc-chan@ADC5_AMUX_THM1_100K_PU {
967                 reg = <ADC5_AMUX_THM1_100K_PU>;
968                 label = "sdm_temp";
969         };
971         adc-chan@ADC5_AMUX_THM2_100K_PU {
972                 reg = <ADC5_AMUX_THM2_100K_PU>;
973                 label = "quiet_temp";
974         };
976         adc-chan@ADC5_AMUX_THM3_100K_PU {
977                 reg = <ADC5_AMUX_THM3_100K_PU>;
978                 label = "lte_temp_1";
979         };
981         adc-chan@ADC5_AMUX_THM4_100K_PU {
982                 reg = <ADC5_AMUX_THM4_100K_PU>;
983                 label = "lte_temp_2";
984         };
986         adc-chan@ADC5_AMUX_THM5_100K_PU {
987                 reg = <ADC5_AMUX_THM5_100K_PU>;
988                 label = "charger_temp";
989         };
992 &pm8998_gpio {
993         gpio-line-names = "",
994                           "",
995                           "SW_CTRL",
996                           "",
997                           "",
998                           "",
999                           "",
1000                           "",
1001                           "",
1002                           "",
1003                           "",
1004                           "",
1005                           "",
1006                           "",
1007                           "",
1008                           "",
1009                           "",
1010                           "",
1011                           "",
1012                           "",
1013                           "",
1014                           "CFG_OPT1",
1015                           "WCSS_PWR_REQ",
1016                           "",
1017                           "CFG_OPT2",
1018                           "SLB";
1021 &tlmm {
1022         /*
1023          * pinctrl settings for pins that have no real owners.
1024          */
1025         pinctrl-names = "default", "sleep";
1026         pinctrl-0 = <&bios_flash_wp_r_l>,
1027                     <&ap_suspend_l_deassert>;
1029         pinctrl-1 = <&bios_flash_wp_r_l>,
1030                     <&ap_suspend_l_assert>;
1032         /*
1033          * Hogs prevent usermode from changing the value. A GPIO can be both
1034          * here and in the pinctrl section.
1035          */
1036         ap-suspend-l-hog {
1037                 gpio-hog;
1038                 gpios = <126 GPIO_ACTIVE_LOW>;
1039                 output-low;
1040         };
1042         ap_edp_bklten: ap-edp-bklten {
1043                 pinmux {
1044                         pins = "gpio37";
1045                         function = "gpio";
1046                 };
1048                 pinconf {
1049                         pins = "gpio37";
1050                         drive-strength = <2>;
1051                         bias-disable;
1052                 };
1053         };
1055         bios_flash_wp_r_l: bios-flash-wp-r-l {
1056                 pinmux {
1057                         pins = "gpio128";
1058                         function = "gpio";
1059                         input-enable;
1060                 };
1062                 pinconf {
1063                         pins = "gpio128";
1064                         bias-disable;
1065                 };
1066         };
1068         ec_ap_int_l: ec-ap-int-l {
1069                 pinmux {
1070                        pins = "gpio122";
1071                        function = "gpio";
1072                        input-enable;
1073                 };
1075                 pinconf {
1076                        pins = "gpio122";
1077                        bias-pull-up;
1078                 };
1079         };
1081         edp_brij_en: edp-brij-en {
1082                 pinmux {
1083                         pins = "gpio102";
1084                         function = "gpio";
1085                 };
1087                 pinconf {
1088                         pins = "gpio102";
1089                         drive-strength = <2>;
1090                         bias-disable;
1091                 };
1092         };
1094         edp_brij_irq: edp-brij-irq {
1095                 pinmux {
1096                         pins = "gpio10";
1097                         function = "gpio";
1098                 };
1100                 pinconf {
1101                         pins = "gpio10";
1102                         drive-strength = <2>;
1103                         bias-pull-down;
1104                 };
1105         };
1107         en_pp3300_dx_edp: en-pp3300-dx-edp {
1108                 pinmux {
1109                         pins = "gpio43";
1110                         function = "gpio";
1111                 };
1113                 pinconf {
1114                         pins = "gpio43";
1115                         drive-strength = <2>;
1116                         bias-disable;
1117                 };
1118         };
1120         h1_ap_int_odl: h1-ap-int-odl {
1121                 pinmux {
1122                         pins = "gpio129";
1123                         function = "gpio";
1124                         input-enable;
1125                 };
1127                 pinconf {
1128                         pins = "gpio129";
1129                         bias-pull-up;
1130                 };
1131         };
1133         pen_eject_odl: pen-eject-odl {
1134                 pinmux {
1135                         pins = "gpio119";
1136                         function = "gpio";
1137                         bias-pull-up;
1138                 };
1139         };
1141         pen_irq_l: pen-irq-l {
1142                 pinmux {
1143                         pins = "gpio24";
1144                         function = "gpio";
1145                 };
1147                 pinconf {
1148                         pins = "gpio24";
1150                         /* Has external pullup */
1151                         bias-disable;
1152                 };
1153         };
1155         pen_pdct_l: pen-pdct-l {
1156                 pinmux {
1157                         pins = "gpio63";
1158                         function = "gpio";
1159                 };
1161                 pinconf {
1162                         pins = "gpio63";
1164                         /* Has external pullup */
1165                         bias-disable;
1166                 };
1167         };
1169         pen_rst_l: pen-rst-l {
1170                 pinmux  {
1171                         pins = "gpio23";
1172                         function = "gpio";
1173                 };
1175                 pinconf {
1176                         pins = "gpio23";
1177                         bias-disable;
1178                         drive-strength = <2>;
1180                         /*
1181                          * The pen driver doesn't currently support
1182                          * driving this reset line.  By specifying
1183                          * output-high here we're relying on the fact
1184                          * that this pin has a default pulldown at boot
1185                          * (which makes sure the pen was in reset if it
1186                          * was powered) and then we set it high here to
1187                          * take it out of reset.  Better would be if the
1188                          * pen driver could control this and we could
1189                          * remove "output-high" here.
1190                          */
1191                         output-high;
1192                 };
1193         };
1195         sdc2_clk: sdc2-clk {
1196                 pinconf {
1197                         pins = "sdc2_clk";
1198                         bias-disable;
1200                         /*
1201                          * It seems that mmc_test reports errors if drive
1202                          * strength is not 16.
1203                          */
1204                         drive-strength = <16>;
1205                 };
1206         };
1208         sdc2_cmd: sdc2-cmd {
1209                 pinconf {
1210                         pins = "sdc2_cmd";
1211                         bias-pull-up;
1212                         drive-strength = <16>;
1213                 };
1214         };
1216         sdc2_data: sdc2-data {
1217                 pinconf {
1218                         pins = "sdc2_data";
1219                         bias-pull-up;
1220                         drive-strength = <16>;
1221                 };
1222         };
1224         sd_cd_odl: sd-cd-odl {
1225                 pinmux {
1226                         pins = "gpio44";
1227                         function = "gpio";
1228                 };
1230                 pinconf {
1231                         pins = "gpio44";
1232                         bias-pull-up;
1233                 };
1234         };
1236         ts_int_l: ts-int-l {
1237                 pinmux  {
1238                         pins = "gpio125";
1239                         function = "gpio";
1240                 };
1242                 pinconf {
1243                         pins = "gpio125";
1244                         bias-pull-up;
1245                 };
1246         };
1248         ts_reset_l: ts-reset-l {
1249                 pinmux  {
1250                         pins = "gpio118";
1251                         function = "gpio";
1252                 };
1254                 pinconf {
1255                         pins = "gpio118";
1256                         bias-disable;
1257                         drive-strength = <2>;
1258                 };
1259         };
1261         ufs_dev_reset_assert: ufs_dev_reset_assert {
1262                 config {
1263                         pins = "ufs_reset";
1264                         bias-pull-down;         /* default: pull down */
1265                         /*
1266                          * UFS_RESET driver strengths are having
1267                          * different values/steps compared to typical
1268                          * GPIO drive strengths.
1269                          *
1270                          * Following table clarifies:
1271                          *
1272                          * HDRV value | UFS_RESET | Typical GPIO
1273                          *   (dec)    |   (mA)    |    (mA)
1274                          *     0      |   0.8     |    2
1275                          *     1      |   1.55    |    4
1276                          *     2      |   2.35    |    6
1277                          *     3      |   3.1     |    8
1278                          *     4      |   3.9     |    10
1279                          *     5      |   4.65    |    12
1280                          *     6      |   5.4     |    14
1281                          *     7      |   6.15    |    16
1282                          *
1283                          * POR value for UFS_RESET HDRV is 3 which means
1284                          * 3.1mA and we want to use that. Hence just
1285                          * specify 8mA to "drive-strength" binding and
1286                          * that should result into writing 3 to HDRV
1287                          * field.
1288                          */
1289                         drive-strength = <8>;   /* default: 3.1 mA */
1290                         output-low; /* active low reset */
1291                 };
1292         };
1294         ufs_dev_reset_deassert: ufs_dev_reset_deassert {
1295                 config {
1296                         pins = "ufs_reset";
1297                         bias-pull-down;         /* default: pull down */
1298                         /*
1299                          * default: 3.1 mA
1300                          * check comments under ufs_dev_reset_assert
1301                          */
1302                         drive-strength = <8>;
1303                         output-high; /* active low reset */
1304                 };
1305         };
1307         ap_suspend_l_assert: ap_suspend_l_assert {
1308                 config {
1309                         pins = "gpio126";
1310                         function = "gpio";
1311                         bias-no-pull;
1312                         drive-strength = <2>;
1313                         output-low;
1314                 };
1315         };
1317         ap_suspend_l_deassert: ap_suspend_l_deassert {
1318                 config {
1319                         pins = "gpio126";
1320                         function = "gpio";
1321                         bias-no-pull;
1322                         drive-strength = <2>;
1323                         output-high;
1324                 };
1325         };