0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003 * sc7280 IDP board device tree source (common between SKU1 and SKU2)
0004 *
0005 * Copyright (c) 2021, The Linux Foundation. All rights reserved.
0006 */
0007
0008 #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
0009 #include <dt-bindings/input/linux-event-codes.h>
0010 #include "sc7280.dtsi"
0011 #include "pm7325.dtsi"
0012 #include "pm8350c.dtsi"
0013 #include "pmk8350.dtsi"
0014
0015 #include "sc7280-chrome-common.dtsi"
0016
0017 / {
0018 aliases {
0019 bluetooth0 = &bluetooth;
0020 serial1 = &uart7;
0021 };
0022
0023 gpio-keys {
0024 compatible = "gpio-keys";
0025 label = "gpio-keys";
0026
0027 pinctrl-names = "default";
0028 pinctrl-0 = <&key_vol_up_default>;
0029
0030 key-volume-up {
0031 label = "volume_up";
0032 gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
0033 linux,input-type = <1>;
0034 linux,code = <KEY_VOLUMEUP>;
0035 gpio-key,wakeup;
0036 debounce-interval = <15>;
0037 linux,can-disable;
0038 };
0039 };
0040
0041 nvme_3v3_regulator: nvme-3v3-regulator {
0042 compatible = "regulator-fixed";
0043 regulator-name = "VLDO_3V3";
0044
0045 regulator-min-microvolt = <3300000>;
0046 regulator-max-microvolt = <3300000>;
0047
0048 enable-active-high;
0049 pinctrl-names = "default";
0050 pinctrl-0 = <&nvme_pwren>;
0051 };
0052 };
0053
0054 &apps_rsc {
0055 pm7325-regulators {
0056 compatible = "qcom,pm7325-rpmh-regulators";
0057 qcom,pmic-id = "b";
0058
0059 vreg_s1b_1p8: smps1 {
0060 regulator-min-microvolt = <1856000>;
0061 regulator-max-microvolt = <2040000>;
0062 };
0063
0064 vreg_s7b_0p9: smps7 {
0065 regulator-min-microvolt = <535000>;
0066 regulator-max-microvolt = <1120000>;
0067 };
0068
0069 vreg_s8b_1p2: smps8 {
0070 regulator-min-microvolt = <1256000>;
0071 regulator-max-microvolt = <1500000>;
0072 };
0073
0074 vreg_l1b_0p8: ldo1 {
0075 regulator-min-microvolt = <825000>;
0076 regulator-max-microvolt = <925000>;
0077 };
0078
0079 vreg_l2b_3p0: ldo2 {
0080 regulator-min-microvolt = <2700000>;
0081 regulator-max-microvolt = <3544000>;
0082 };
0083
0084 vreg_l6b_1p2: ldo6 {
0085 regulator-min-microvolt = <1140000>;
0086 regulator-max-microvolt = <1260000>;
0087 };
0088
0089 vreg_l7b_2p9: ldo7 {
0090 regulator-min-microvolt = <2960000>;
0091 regulator-max-microvolt = <2960000>;
0092 };
0093
0094 vreg_l8b_0p9: ldo8 {
0095 regulator-min-microvolt = <870000>;
0096 regulator-max-microvolt = <970000>;
0097 };
0098
0099 vreg_l9b_1p2: ldo9 {
0100 regulator-min-microvolt = <1080000>;
0101 regulator-max-microvolt = <1304000>;
0102 };
0103
0104 vreg_l11b_1p7: ldo11 {
0105 regulator-min-microvolt = <1504000>;
0106 regulator-max-microvolt = <2000000>;
0107 };
0108
0109 vreg_l12b_0p8: ldo12 {
0110 regulator-min-microvolt = <751000>;
0111 regulator-max-microvolt = <824000>;
0112 };
0113
0114 vreg_l13b_0p8: ldo13 {
0115 regulator-min-microvolt = <530000>;
0116 regulator-max-microvolt = <824000>;
0117 };
0118
0119 vreg_l14b_1p2: ldo14 {
0120 regulator-min-microvolt = <1080000>;
0121 regulator-max-microvolt = <1304000>;
0122 };
0123
0124 vreg_l15b_0p8: ldo15 {
0125 regulator-min-microvolt = <765000>;
0126 regulator-max-microvolt = <1020000>;
0127 };
0128
0129 vreg_l16b_1p2: ldo16 {
0130 regulator-min-microvolt = <1100000>;
0131 regulator-max-microvolt = <1300000>;
0132 };
0133
0134 vreg_l17b_1p8: ldo17 {
0135 regulator-min-microvolt = <1700000>;
0136 regulator-max-microvolt = <1900000>;
0137 };
0138
0139 vreg_l18b_1p8: ldo18 {
0140 regulator-min-microvolt = <1800000>;
0141 regulator-max-microvolt = <2000000>;
0142 };
0143
0144 vreg_l19b_1p8: ldo19 {
0145 regulator-min-microvolt = <1800000>;
0146 regulator-max-microvolt = <1800000>;
0147 };
0148 };
0149
0150 pm8350c-regulators {
0151 compatible = "qcom,pm8350c-rpmh-regulators";
0152 qcom,pmic-id = "c";
0153
0154 vreg_s1c_2p2: smps1 {
0155 regulator-min-microvolt = <2190000>;
0156 regulator-max-microvolt = <2210000>;
0157 };
0158
0159 vreg_s9c_1p0: smps9 {
0160 regulator-min-microvolt = <1010000>;
0161 regulator-max-microvolt = <1170000>;
0162 };
0163
0164 vreg_l1c_1p8: ldo1 {
0165 regulator-min-microvolt = <1800000>;
0166 regulator-max-microvolt = <1980000>;
0167 };
0168
0169 vreg_l2c_1p8: ldo2 {
0170 regulator-min-microvolt = <1620000>;
0171 regulator-max-microvolt = <1980000>;
0172 };
0173
0174 vreg_l3c_3p0: ldo3 {
0175 regulator-min-microvolt = <2800000>;
0176 regulator-max-microvolt = <3540000>;
0177 };
0178
0179 vreg_l4c_1p8: ldo4 {
0180 regulator-min-microvolt = <1620000>;
0181 regulator-max-microvolt = <3300000>;
0182 };
0183
0184 vreg_l5c_1p8: ldo5 {
0185 regulator-min-microvolt = <1620000>;
0186 regulator-max-microvolt = <3300000>;
0187 };
0188
0189 vreg_l6c_2p9: ldo6 {
0190 regulator-min-microvolt = <1800000>;
0191 regulator-max-microvolt = <2950000>;
0192 };
0193
0194 vreg_l7c_3p0: ldo7 {
0195 regulator-min-microvolt = <3000000>;
0196 regulator-max-microvolt = <3544000>;
0197 };
0198
0199 vreg_l8c_1p8: ldo8 {
0200 regulator-min-microvolt = <1620000>;
0201 regulator-max-microvolt = <2000000>;
0202 };
0203
0204 vreg_l9c_2p9: ldo9 {
0205 regulator-min-microvolt = <2960000>;
0206 regulator-max-microvolt = <2960000>;
0207 };
0208
0209 vreg_l10c_0p8: ldo10 {
0210 regulator-min-microvolt = <720000>;
0211 regulator-max-microvolt = <1050000>;
0212 };
0213
0214 vreg_l11c_2p8: ldo11 {
0215 regulator-min-microvolt = <2800000>;
0216 regulator-max-microvolt = <3544000>;
0217 };
0218
0219 vreg_l12c_1p8: ldo12 {
0220 regulator-min-microvolt = <1650000>;
0221 regulator-max-microvolt = <2000000>;
0222 };
0223
0224 vreg_l13c_3p0: ldo13 {
0225 regulator-min-microvolt = <2700000>;
0226 regulator-max-microvolt = <3544000>;
0227 };
0228
0229 vreg_bob: bob {
0230 regulator-min-microvolt = <3008000>;
0231 regulator-max-microvolt = <3960000>;
0232 };
0233 };
0234 };
0235
0236 &gpi_dma0 {
0237 status = "okay";
0238 };
0239
0240 &gpi_dma1 {
0241 status = "okay";
0242 };
0243
0244 &ipa {
0245 status = "okay";
0246 modem-init;
0247 };
0248
0249 &pcie1 {
0250 status = "okay";
0251 perst-gpio = <&tlmm 2 GPIO_ACTIVE_LOW>;
0252
0253 vddpe-3v3-supply = <&nvme_3v3_regulator>;
0254
0255 pinctrl-names = "default";
0256 pinctrl-0 = <&pcie1_reset_n>, <&pcie1_wake_n>;
0257 };
0258
0259 &pcie1_phy {
0260 status = "okay";
0261
0262 vdda-phy-supply = <&vreg_l10c_0p8>;
0263 vdda-pll-supply = <&vreg_l6b_1p2>;
0264 };
0265
0266 &pmk8350_vadc {
0267 pmk8350_die_temp {
0268 reg = <PMK8350_ADC7_DIE_TEMP>;
0269 label = "pmk8350_die_temp";
0270 qcom,pre-scaling = <1 1>;
0271 };
0272 };
0273
0274 &qfprom {
0275 vcc-supply = <&vreg_l1c_1p8>;
0276 };
0277
0278 &qupv3_id_0 {
0279 status = "okay";
0280 };
0281
0282 &qupv3_id_1 {
0283 status = "okay";
0284 };
0285
0286 &sdhc_1 {
0287 status = "okay";
0288
0289 non-removable;
0290 no-sd;
0291 no-sdio;
0292
0293 vmmc-supply = <&vreg_l7b_2p9>;
0294 vqmmc-supply = <&vreg_l19b_1p8>;
0295 };
0296
0297 &sdhc_2 {
0298 status = "okay";
0299
0300 pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
0301 pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;
0302
0303 vmmc-supply = <&vreg_l9c_2p9>;
0304 vqmmc-supply = <&vreg_l6c_2p9>;
0305
0306 cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
0307 };
0308
0309 &uart5 {
0310 compatible = "qcom,geni-debug-uart";
0311 status = "okay";
0312 };
0313
0314 &usb_1 {
0315 status = "okay";
0316 };
0317
0318 &usb_1_dwc3 {
0319 dr_mode = "host";
0320 };
0321
0322 &usb_1_hsphy {
0323 status = "okay";
0324
0325 vdda-pll-supply = <&vreg_l10c_0p8>;
0326 vdda33-supply = <&vreg_l2b_3p0>;
0327 vdda18-supply = <&vreg_l1c_1p8>;
0328 };
0329
0330 &usb_1_qmpphy {
0331 status = "okay";
0332
0333 vdda-phy-supply = <&vreg_l6b_1p2>;
0334 vdda-pll-supply = <&vreg_l1b_0p8>;
0335 };
0336
0337 &uart7 {
0338 status = "okay";
0339
0340 /delete-property/interrupts;
0341 interrupts-extended = <&intc GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>,
0342 <&tlmm 31 IRQ_TYPE_EDGE_FALLING>;
0343 pinctrl-names = "default", "sleep";
0344 pinctrl-1 = <&qup_uart7_sleep_cts>, <&qup_uart7_sleep_rts>, <&qup_uart7_sleep_tx>, <&qup_uart7_sleep_rx>;
0345
0346 bluetooth: bluetooth {
0347 compatible = "qcom,wcn6750-bt";
0348 pinctrl-names = "default";
0349 pinctrl-0 = <&bt_en>, <&sw_ctrl>;
0350 enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
0351 swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
0352 vddaon-supply = <&vreg_s7b_0p9>;
0353 vddbtcxmx-supply = <&vreg_s7b_0p9>;
0354 vddrfacmn-supply = <&vreg_s7b_0p9>;
0355 vddrfa0p8-supply = <&vreg_s7b_0p9>;
0356 vddrfa1p7-supply = <&vreg_s1b_1p8>;
0357 vddrfa1p2-supply = <&vreg_s8b_1p2>;
0358 vddrfa2p2-supply = <&vreg_s1c_2p2>;
0359 vddasd-supply = <&vreg_l11c_2p8>;
0360 max-speed = <3200000>;
0361 };
0362 };
0363
0364 /* PINCTRL - additions to nodes defined in sc7280.dtsi */
0365
0366 &dp_hot_plug_det {
0367 bias-disable;
0368 };
0369
0370 &lpass_dmic01_clk {
0371 drive-strength = <8>;
0372 bias-disable;
0373 };
0374
0375 &lpass_dmic01_clk_sleep {
0376 drive-strength = <2>;
0377 };
0378
0379 &lpass_dmic01_data {
0380 bias-pull-down;
0381 };
0382
0383 &lpass_dmic23_clk {
0384 drive-strength = <8>;
0385 bias-disable;
0386 };
0387
0388 &lpass_dmic23_clk_sleep {
0389 drive-strength = <2>;
0390 };
0391
0392 &lpass_dmic23_data {
0393 bias-pull-down;
0394 };
0395
0396 &lpass_rx_swr_clk {
0397 drive-strength = <2>;
0398 slew-rate = <1>;
0399 bias-disable;
0400 };
0401
0402 &lpass_rx_swr_clk_sleep {
0403 bias-pull-down;
0404 };
0405
0406 &lpass_rx_swr_data {
0407 drive-strength = <2>;
0408 slew-rate = <1>;
0409 bias-bus-hold;
0410 };
0411
0412 &lpass_rx_swr_data_sleep {
0413 bias-pull-down;
0414 };
0415
0416 &lpass_tx_swr_clk {
0417 drive-strength = <2>;
0418 slew-rate = <1>;
0419 bias-disable;
0420 };
0421
0422 &lpass_tx_swr_clk_sleep {
0423 bias-pull-down;
0424 };
0425
0426 &lpass_tx_swr_data {
0427 drive-strength = <2>;
0428 slew-rate = <1>;
0429 bias-bus-hold;
0430 };
0431
0432 &mi2s1_data0 {
0433 drive-strength = <6>;
0434 bias-disable;
0435 };
0436
0437 &mi2s1_sclk {
0438 drive-strength = <6>;
0439 bias-disable;
0440 };
0441
0442 &mi2s1_ws {
0443 drive-strength = <6>;
0444 };
0445
0446 &pm7325_gpios {
0447 key_vol_up_default: key-vol-up-state {
0448 pins = "gpio6";
0449 function = "normal";
0450 input-enable;
0451 bias-pull-up;
0452 power-source = <0>;
0453 qcom,drive-strength = <3>;
0454 };
0455 };
0456
0457 &pcie1_clkreq_n {
0458 bias-pull-up;
0459 drive-strength = <2>;
0460 };
0461
0462 &qspi_cs0 {
0463 bias-disable;
0464 };
0465
0466 &qspi_clk {
0467 bias-disable;
0468 };
0469
0470 &qspi_data01 {
0471 /* High-Z when no transfers; nice to park the lines */
0472 bias-pull-up;
0473 };
0474
0475 &qup_uart5_tx {
0476 drive-strength = <2>;
0477 bias-disable;
0478 };
0479
0480 &qup_uart5_rx {
0481 drive-strength = <2>;
0482 bias-pull-up;
0483 };
0484
0485 &qup_uart7_cts {
0486 /*
0487 * Configure a bias-bus-hold on CTS to lower power
0488 * usage when Bluetooth is turned off. Bus hold will
0489 * maintain a low power state regardless of whether
0490 * the Bluetooth module drives the pin in either
0491 * direction or leaves the pin fully unpowered.
0492 */
0493 bias-bus-hold;
0494 };
0495
0496 &qup_uart7_rts {
0497 /* We'll drive RTS, so no pull */
0498 drive-strength = <2>;
0499 bias-disable;
0500 };
0501
0502 &qup_uart7_tx {
0503 /* We'll drive TX, so no pull */
0504 drive-strength = <2>;
0505 bias-disable;
0506 };
0507
0508 &qup_uart7_rx {
0509 /*
0510 * Configure a pull-up on RX. This is needed to avoid
0511 * garbage data when the TX pin of the Bluetooth module is
0512 * in tri-state (module powered off or not driving the
0513 * signal yet).
0514 */
0515 bias-pull-up;
0516 };
0517
0518 &sdc1_clk {
0519 bias-disable;
0520 drive-strength = <16>;
0521 };
0522
0523 &sdc1_cmd {
0524 bias-pull-up;
0525 drive-strength = <10>;
0526 };
0527
0528 &sdc1_data {
0529 bias-pull-up;
0530 drive-strength = <10>;
0531 };
0532
0533 &sdc1_rclk {
0534 bias-pull-down;
0535 };
0536
0537 &sdc2_clk {
0538 bias-disable;
0539 drive-strength = <16>;
0540 };
0541
0542 &sdc2_cmd {
0543 bias-pull-up;
0544 drive-strength = <10>;
0545 };
0546
0547 &sdc2_data {
0548 bias-pull-up;
0549 drive-strength = <10>;
0550 };
0551
0552 &tlmm {
0553 bt_en: bt-en {
0554 pins = "gpio85";
0555 function = "gpio";
0556 output-low;
0557 bias-disable;
0558 };
0559
0560 nvme_pwren: nvme-pwren {
0561 function = "gpio";
0562 };
0563
0564 pcie1_reset_n: pcie1-reset-n {
0565 pins = "gpio2";
0566 function = "gpio";
0567
0568 drive-strength = <16>;
0569 output-low;
0570 bias-disable;
0571 };
0572
0573 pcie1_wake_n: pcie1-wake-n {
0574 pins = "gpio3";
0575 function = "gpio";
0576
0577 drive-strength = <2>;
0578 bias-pull-up;
0579 };
0580
0581 qup_uart7_sleep_cts: qup-uart7-sleep-cts {
0582 pins = "gpio28";
0583 function = "gpio";
0584 /*
0585 * Configure a bias-bus-hold on CTS to lower power
0586 * usage when Bluetooth is turned off. Bus hold will
0587 * maintain a low power state regardless of whether
0588 * the Bluetooth module drives the pin in either
0589 * direction or leaves the pin fully unpowered.
0590 */
0591 bias-bus-hold;
0592 };
0593
0594 qup_uart7_sleep_rts: qup-uart7-sleep-rts {
0595 pins = "gpio29";
0596 function = "gpio";
0597 /*
0598 * Configure pull-down on RTS. As RTS is active low
0599 * signal, pull it low to indicate the BT SoC that it
0600 * can wakeup the system anytime from suspend state by
0601 * pulling RX low (by sending wakeup bytes).
0602 */
0603 bias-pull-down;
0604 };
0605
0606 qup_uart7_sleep_tx: qup-uart7-sleep-tx {
0607 pins = "gpio30";
0608 function = "gpio";
0609 /*
0610 * Configure pull-up on TX when it isn't actively driven
0611 * to prevent BT SoC from receiving garbage during sleep.
0612 */
0613 bias-pull-up;
0614 };
0615
0616 qup_uart7_sleep_rx: qup-uart7-sleep-rx {
0617 pins = "gpio31";
0618 function = "gpio";
0619 /*
0620 * Configure a pull-up on RX. This is needed to avoid
0621 * garbage data when the TX pin of the Bluetooth module
0622 * is floating which may cause spurious wakeups.
0623 */
0624 bias-pull-up;
0625 };
0626
0627 sd_cd: sd-cd {
0628 pins = "gpio91";
0629 function = "gpio";
0630 bias-pull-up;
0631 };
0632
0633 sw_ctrl: sw-ctrl {
0634 pins = "gpio86";
0635 function = "gpio";
0636 bias-pull-down;
0637 };
0638 };