1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Lenovo Yoga C630 4 * 5 * Copyright (c) 2019, Linaro Ltd. 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/input/gpio-keys.h> 12#include <dt-bindings/input/input.h> 13#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 14#include <dt-bindings/sound/qcom,q6afe.h> 15#include <dt-bindings/sound/qcom,q6asm.h> 16#include "sdm850.dtsi" 17#include "pm8998.dtsi" 18 19/ { 20 model = "Lenovo Yoga C630"; 21 compatible = "lenovo,yoga-c630", "qcom,sdm845"; 22 23 aliases { 24 hsuart0 = &uart6; 25 }; 26 27 gpio-keys { 28 compatible = "gpio-keys"; 29 30 pinctrl-names = "default"; 31 pinctrl-0 = <&lid_pin_active>, <&mode_pin_active>; 32 33 lid { 34 gpios = <&tlmm 124 GPIO_ACTIVE_HIGH>; 35 linux,input-type = <EV_SW>; 36 linux,code = <SW_LID>; 37 wakeup-source; 38 wakeup-event-action = <EV_ACT_DEASSERTED>; 39 }; 40 41 mode { 42 gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>; 43 linux,input-type = <EV_SW>; 44 linux,code = <SW_TABLET_MODE>; 45 }; 46 }; 47 48 panel { 49 compatible = "boe,nv133fhm-n61"; 50 no-hpd; 51 52 ports { 53 port { 54 panel_in_edp: endpoint { 55 remote-endpoint = <&sn65dsi86_out>; 56 }; 57 }; 58 }; 59 }; 60 61 sn65dsi86_refclk: sn65dsi86-refclk { 62 compatible = "fixed-clock"; 63 #clock-cells = <0>; 64 65 clock-frequency = <19200000>; 66 }; 67}; 68 69&adsp_pas { 70 firmware-name = "qcom/LENOVO/81JL/qcadsp850.mbn"; 71 status = "okay"; 72}; 73 74&apps_rsc { 75 pm8998-rpmh-regulators { 76 compatible = "qcom,pm8998-rpmh-regulators"; 77 qcom,pmic-id = "a"; 78 79 vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>; 80 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>; 81 82 vreg_s2a_1p125: smps2 { 83 }; 84 85 vreg_s3a_1p35: smps3 { 86 regulator-min-microvolt = <1352000>; 87 regulator-max-microvolt = <1352000>; 88 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 89 }; 90 91 vreg_s4a_1p8: smps4 { 92 regulator-min-microvolt = <1800000>; 93 regulator-max-microvolt = <1800000>; 94 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 95 }; 96 97 vreg_s5a_2p04: smps5 { 98 regulator-min-microvolt = <2040000>; 99 regulator-max-microvolt = <2040000>; 100 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 101 }; 102 103 vreg_s7a_1p025: smps7 { 104 }; 105 106 vdd_qusb_hs0: 107 vdda_hp_pcie_core: 108 vdda_mipi_csi0_0p9: 109 vdda_mipi_csi1_0p9: 110 vdda_mipi_csi2_0p9: 111 vdda_mipi_dsi0_pll: 112 vdda_mipi_dsi1_pll: 113 vdda_qlink_lv: 114 vdda_qlink_lv_ck: 115 vdda_qrefs_0p875: 116 vdda_pcie_core: 117 vdda_pll_cc_ebi01: 118 vdda_pll_cc_ebi23: 119 vdda_sp_sensor: 120 vdda_ufs1_core: 121 vdda_ufs2_core: 122 vdda_usb1_ss_core: 123 vdda_usb2_ss_core: 124 vreg_l1a_0p875: ldo1 { 125 regulator-min-microvolt = <880000>; 126 regulator-max-microvolt = <880000>; 127 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 128 }; 129 130 vddpx_10: 131 vreg_l2a_1p2: ldo2 { 132 regulator-min-microvolt = <1200000>; 133 regulator-max-microvolt = <1200000>; 134 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 135 regulator-always-on; 136 }; 137 138 vreg_l3a_1p0: ldo3 { 139 }; 140 141 vdd_wcss_cx: 142 vdd_wcss_mx: 143 vdda_wcss_pll: 144 vreg_l5a_0p8: ldo5 { 145 regulator-min-microvolt = <800000>; 146 regulator-max-microvolt = <800000>; 147 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 148 }; 149 150 vddpx_13: 151 vreg_l6a_1p8: ldo6 { 152 regulator-min-microvolt = <1800000>; 153 regulator-max-microvolt = <1800000>; 154 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 155 }; 156 157 vreg_l7a_1p8: ldo7 { 158 regulator-min-microvolt = <1800000>; 159 regulator-max-microvolt = <1800000>; 160 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 161 }; 162 163 vreg_l8a_1p2: ldo8 { 164 }; 165 166 vreg_l9a_1p8: ldo9 { 167 }; 168 169 vreg_l10a_1p8: ldo10 { 170 }; 171 172 vreg_l11a_1p0: ldo11 { 173 }; 174 175 vdd_qfprom: 176 vdd_qfprom_sp: 177 vdda_apc1_cs_1p8: 178 vdda_gfx_cs_1p8: 179 vdda_qrefs_1p8: 180 vdda_qusb_hs0_1p8: 181 vddpx_11: 182 vreg_l12a_1p8: ldo12 { 183 regulator-min-microvolt = <1800000>; 184 regulator-max-microvolt = <1800000>; 185 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 186 }; 187 188 vddpx_2: 189 vreg_l13a_2p95: ldo13 { 190 }; 191 192 vreg_l14a_1p88: ldo14 { 193 regulator-min-microvolt = <1880000>; 194 regulator-max-microvolt = <1880000>; 195 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 196 regulator-always-on; 197 }; 198 199 vreg_l15a_1p8: ldo15 { 200 }; 201 202 vreg_l16a_2p7: ldo16 { 203 }; 204 205 vreg_l17a_1p3: ldo17 { 206 regulator-min-microvolt = <1304000>; 207 regulator-max-microvolt = <1304000>; 208 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 209 }; 210 211 vreg_l18a_2p7: ldo18 { 212 }; 213 214 vreg_l19a_3p0: ldo19 { 215 regulator-min-microvolt = <3100000>; 216 regulator-max-microvolt = <3108000>; 217 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 218 }; 219 220 vreg_l20a_2p95: ldo20 { 221 regulator-min-microvolt = <2960000>; 222 regulator-max-microvolt = <2960000>; 223 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 224 }; 225 226 vreg_l21a_2p95: ldo21 { 227 }; 228 229 vreg_l22a_2p85: ldo22 { 230 }; 231 232 vreg_l23a_3p3: ldo23 { 233 regulator-min-microvolt = <3300000>; 234 regulator-max-microvolt = <3312000>; 235 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 236 }; 237 238 vdda_qusb_hs0_3p1: 239 vreg_l24a_3p075: ldo24 { 240 regulator-min-microvolt = <3075000>; 241 regulator-max-microvolt = <3083000>; 242 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 243 }; 244 245 vreg_l25a_3p3: ldo25 { 246 regulator-min-microvolt = <3104000>; 247 regulator-max-microvolt = <3112000>; 248 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 249 }; 250 251 vdda_hp_pcie_1p2: 252 vdda_hv_ebi0: 253 vdda_hv_ebi1: 254 vdda_hv_ebi2: 255 vdda_hv_ebi3: 256 vdda_mipi_csi_1p25: 257 vdda_mipi_dsi0_1p2: 258 vdda_mipi_dsi1_1p2: 259 vdda_pcie_1p2: 260 vdda_ufs1_1p2: 261 vdda_ufs2_1p2: 262 vdda_usb1_ss_1p2: 263 vdda_usb2_ss_1p2: 264 vreg_l26a_1p2: ldo26 { 265 regulator-min-microvolt = <1200000>; 266 regulator-max-microvolt = <1208000>; 267 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 268 }; 269 270 vreg_l28a_3p0: ldo28 { 271 }; 272 273 vreg_lvs1a_1p8: lvs1 { 274 }; 275 276 vreg_lvs2a_1p8: lvs2 { 277 }; 278 }; 279}; 280 281&cdsp_pas { 282 firmware-name = "qcom/LENOVO/81JL/qccdsp850.mbn"; 283 status = "okay"; 284}; 285 286&dsi0 { 287 status = "okay"; 288 vdda-supply = <&vreg_l26a_1p2>; 289 290 ports { 291 port@1 { 292 endpoint { 293 remote-endpoint = <&sn65dsi86_in_a>; 294 data-lanes = <0 1 2 3>; 295 }; 296 }; 297 }; 298}; 299 300&dsi0_phy { 301 status = "okay"; 302 vdds-supply = <&vreg_l1a_0p875>; 303}; 304 305&gcc { 306 protected-clocks = <GCC_QSPI_CORE_CLK>, 307 <GCC_QSPI_CORE_CLK_SRC>, 308 <GCC_QSPI_CNOC_PERIPH_AHB_CLK>, 309 <GCC_LPASS_Q6_AXI_CLK>, 310 <GCC_LPASS_SWAY_CLK>; 311}; 312 313&gpu { 314 zap-shader { 315 memory-region = <&gpu_mem>; 316 firmware-name = "qcom/LENOVO/81JL/qcdxkmsuc850.mbn"; 317 }; 318}; 319 320&i2c1 { 321 status = "okay"; 322 clock-frequency = <400000>; 323}; 324 325&i2c3 { 326 status = "okay"; 327 clock-frequency = <400000>; 328 /* Overwrite pinctrl-0 from sdm845.dtsi */ 329 pinctrl-0 = <&qup_i2c3_default &i2c3_hid_active>; 330 331 tsel: hid@15 { 332 compatible = "hid-over-i2c"; 333 reg = <0x15>; 334 hid-descr-addr = <0x1>; 335 336 interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>; 337 }; 338 339 tsc2: hid@2c { 340 compatible = "hid-over-i2c"; 341 reg = <0x2c>; 342 hid-descr-addr = <0x20>; 343 344 interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_HIGH>; 345 }; 346}; 347 348&i2c5 { 349 status = "okay"; 350 clock-frequency = <400000>; 351 352 tsc1: hid@10 { 353 compatible = "hid-over-i2c"; 354 reg = <0x10>; 355 hid-descr-addr = <0x1>; 356 357 interrupts-extended = <&tlmm 125 IRQ_TYPE_LEVEL_LOW>; 358 359 pinctrl-names = "default"; 360 pinctrl-0 = <&i2c5_hid_active>; 361 }; 362}; 363 364&i2c10 { 365 status = "okay"; 366 clock-frequency = <400000>; 367 368 sn65dsi86: bridge@2c { 369 compatible = "ti,sn65dsi86"; 370 reg = <0x2c>; 371 pinctrl-names = "default"; 372 pinctrl-0 = <&sn65dsi86_pin_active>; 373 374 enable-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>; 375 376 vpll-supply = <&vreg_l14a_1p88>; 377 vccio-supply = <&vreg_l14a_1p88>; 378 379 clocks = <&sn65dsi86_refclk>; 380 clock-names = "refclk"; 381 382 no-hpd; 383 384 ports { 385 #address-cells = <1>; 386 #size-cells = <0>; 387 388 port@0 { 389 reg = <0>; 390 sn65dsi86_in_a: endpoint { 391 remote-endpoint = <&dsi0_out>; 392 }; 393 }; 394 395 port@1 { 396 reg = <1>; 397 sn65dsi86_out: endpoint { 398 remote-endpoint = <&panel_in_edp>; 399 }; 400 }; 401 }; 402 }; 403}; 404 405&i2c11 { 406 status = "okay"; 407 clock-frequency = <400000>; 408 409 ecsh: hid@5c { 410 compatible = "hid-over-i2c"; 411 reg = <0x5c>; 412 hid-descr-addr = <0x1>; 413 414 interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>; 415 416 pinctrl-names = "default"; 417 pinctrl-0 = <&i2c11_hid_active>; 418 }; 419}; 420 421&ipa { 422 status = "okay"; 423 memory-region = <&ipa_fw_mem>; 424}; 425 426&mdss { 427 status = "okay"; 428}; 429 430&mdss_mdp { 431 status = "okay"; 432}; 433 434&mss_pil { 435 firmware-name = "qcom/LENOVO/81JL/qcdsp1v2850.mbn", "qcom/LENOVO/81JL/qcdsp2850.mbn"; 436}; 437 438&qup_i2c10_default { 439 pinconf { 440 pins = "gpio55", "gpio56"; 441 drive-strength = <2>; 442 bias-disable; 443 }; 444}; 445 446&qup_i2c12_default { 447 drive-strength = <2>; 448 bias-disable; 449}; 450 451&qup_uart6_default { 452 pinmux { 453 pins = "gpio45", "gpio46", "gpio47", "gpio48"; 454 function = "qup6"; 455 }; 456 457 cts { 458 pins = "gpio45"; 459 bias-pull-down; 460 }; 461 462 rts-tx { 463 pins = "gpio46", "gpio47"; 464 drive-strength = <2>; 465 bias-disable; 466 }; 467 468 rx { 469 pins = "gpio48"; 470 bias-pull-up; 471 }; 472}; 473 474&qupv3_id_0 { 475 status = "okay"; 476}; 477 478&qupv3_id_1 { 479 status = "okay"; 480}; 481 482&q6asmdai { 483 dai@0 { 484 reg = <0>; 485 }; 486 487 dai@1 { 488 reg = <1>; 489 }; 490}; 491 492&sound { 493 compatible = "qcom,db845c-sndcard"; 494 model = "Lenovo-YOGA-C630-13Q50"; 495 496 audio-routing = 497 "RX_BIAS", "MCLK", 498 "AMIC2", "MIC BIAS2", 499 "SpkrLeft IN", "SPK1 OUT", 500 "SpkrRight IN", "SPK2 OUT", 501 "MM_DL1", "MultiMedia1 Playback", 502 "MultiMedia2 Capture", "MM_UL2"; 503 504 mm1-dai-link { 505 link-name = "MultiMedia1"; 506 cpu { 507 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 508 }; 509 }; 510 511 mm2-dai-link { 512 link-name = "MultiMedia2"; 513 cpu { 514 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 515 }; 516 }; 517 518 slim-dai-link { 519 link-name = "SLIM Playback"; 520 cpu { 521 sound-dai = <&q6afedai SLIMBUS_0_RX>; 522 }; 523 524 platform { 525 sound-dai = <&q6routing>; 526 }; 527 528 codec { 529 sound-dai = <&left_spkr>, <&right_spkr>, <&swm 0>, <&wcd9340 0>; 530 }; 531 }; 532 533 slimcap-dai-link { 534 link-name = "SLIM Capture"; 535 cpu { 536 sound-dai = <&q6afedai SLIMBUS_0_TX>; 537 }; 538 539 platform { 540 sound-dai = <&q6routing>; 541 }; 542 543 codec { 544 sound-dai = <&wcd9340 1>; 545 }; 546 }; 547}; 548 549&tlmm { 550 gpio-reserved-ranges = <0 4>, <81 4>; 551 552 sn65dsi86_pin_active: sn65dsi86-enable { 553 pins = "gpio96"; 554 drive-strength = <2>; 555 bias-disable; 556 }; 557 558 i2c3_hid_active: i2c2-hid-active { 559 pins = "gpio37"; 560 function = "gpio"; 561 562 input-enable; 563 bias-pull-up; 564 drive-strength = <2>; 565 }; 566 567 i2c5_hid_active: i2c5-hid-active { 568 pins = "gpio125"; 569 function = "gpio"; 570 571 input-enable; 572 bias-pull-up; 573 drive-strength = <2>; 574 }; 575 576 i2c11_hid_active: i2c11-hid-active { 577 pins = "gpio92"; 578 function = "gpio"; 579 580 input-enable; 581 bias-pull-up; 582 drive-strength = <2>; 583 }; 584 585 wcd_intr_default: wcd_intr_default { 586 pins = "gpio54"; 587 function = "gpio"; 588 589 input-enable; 590 bias-pull-down; 591 drive-strength = <2>; 592 }; 593 594 lid_pin_active: lid-pin { 595 pins = "gpio124"; 596 function = "gpio"; 597 598 input-enable; 599 bias-disable; 600 }; 601 602 mode_pin_active: mode-pin { 603 pins = "gpio95"; 604 function = "gpio"; 605 606 input-enable; 607 bias-disable; 608 }; 609}; 610 611&uart6 { 612 status = "okay"; 613 614 bluetooth { 615 compatible = "qcom,wcn3990-bt"; 616 617 vddio-supply = <&vreg_s4a_1p8>; 618 vddxo-supply = <&vreg_l7a_1p8>; 619 vddrf-supply = <&vreg_l17a_1p3>; 620 vddch0-supply = <&vreg_l25a_3p3>; 621 vddch1-supply = <&vreg_l23a_3p3>; 622 max-speed = <3200000>; 623 }; 624}; 625 626&ufs_mem_hc { 627 status = "okay"; 628 629 reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>; 630 631 vcc-supply = <&vreg_l20a_2p95>; 632 vcc-max-microamp = <600000>; 633}; 634 635&ufs_mem_phy { 636 status = "okay"; 637 638 vdda-phy-supply = <&vdda_ufs1_core>; 639 vdda-pll-supply = <&vdda_ufs1_1p2>; 640}; 641 642&usb_1 { 643 status = "okay"; 644}; 645 646&usb_1_dwc3 { 647 dr_mode = "host"; 648}; 649 650&usb_1_hsphy { 651 status = "okay"; 652 653 vdd-supply = <&vdda_usb1_ss_core>; 654 vdda-pll-supply = <&vdda_qusb_hs0_1p8>; 655 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>; 656 657 qcom,imp-res-offset-value = <8>; 658 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>; 659 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>; 660 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>; 661}; 662 663&usb_1_qmpphy { 664 status = "okay"; 665 666 vdda-phy-supply = <&vdda_usb1_ss_1p2>; 667 vdda-pll-supply = <&vdda_usb1_ss_core>; 668}; 669 670&usb_2 { 671 status = "okay"; 672}; 673 674&usb_2_dwc3 { 675 dr_mode = "host"; 676}; 677 678&usb_2_hsphy { 679 status = "okay"; 680 681 vdd-supply = <&vdda_usb2_ss_core>; 682 vdda-pll-supply = <&vdda_qusb_hs0_1p8>; 683 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>; 684 685 qcom,imp-res-offset-value = <8>; 686 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>; 687}; 688 689&usb_2_qmpphy { 690 status = "okay"; 691 692 vdda-phy-supply = <&vdda_usb2_ss_1p2>; 693 vdda-pll-supply = <&vdda_usb2_ss_core>; 694}; 695 696&wcd9340{ 697 pinctrl-0 = <&wcd_intr_default>; 698 pinctrl-names = "default"; 699 clock-names = "extclk"; 700 clocks = <&rpmhcc RPMH_LN_BB_CLK2>; 701 reset-gpios = <&tlmm 64 0>; 702 vdd-buck-supply = <&vreg_s4a_1p8>; 703 vdd-buck-sido-supply = <&vreg_s4a_1p8>; 704 vdd-tx-supply = <&vreg_s4a_1p8>; 705 vdd-rx-supply = <&vreg_s4a_1p8>; 706 vdd-io-supply = <&vreg_s4a_1p8>; 707 708 swm: swm@c85 { 709 left_spkr: wsa8810-left{ 710 compatible = "sdw10217211000"; 711 reg = <0 3>; 712 powerdown-gpios = <&wcdgpio 1 GPIO_ACTIVE_HIGH>; 713 #thermal-sensor-cells = <0>; 714 sound-name-prefix = "SpkrLeft"; 715 #sound-dai-cells = <0>; 716 }; 717 718 right_spkr: wsa8810-right{ 719 compatible = "sdw10217211000"; 720 powerdown-gpios = <&wcdgpio 2 GPIO_ACTIVE_HIGH>; 721 reg = <0 4>; 722 #thermal-sensor-cells = <0>; 723 sound-name-prefix = "SpkrRight"; 724 #sound-dai-cells = <0>; 725 }; 726 }; 727}; 728 729&wifi { 730 status = "okay"; 731 732 vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>; 733 vdd-1.8-xo-supply = <&vreg_l7a_1p8>; 734 vdd-1.3-rfa-supply = <&vreg_l17a_1p3>; 735 vdd-3.3-ch0-supply = <&vreg_l25a_3p3>; 736 vdd-3.3-ch1-supply = <&vreg_l23a_3p3>; 737 738 qcom,snoc-host-cap-8bit-quirk; 739}; 740