Re: [PATCH 2/2] arm64: dts: qcom: x1e80100: add Lenovo Thinkpad Yoga slim 7x devicetree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 3, 2024 at 10:17 AM Srinivas Kandagatla
<srinivas.kandagatla@xxxxxxxxxx> wrote:
>
> Add an initial devicetree for the Lenovo Yoga slim 7x with support for
> Display, usb, keyboard, touchscreen, PMICs, speaker audio, gpu, NVMe,
> and remoteprocs.
>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
> ---
>  arch/arm64/boot/dts/qcom/Makefile                  |   1 +
>  .../boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts  | 910 +++++++++++++++++++++
>  2 files changed, 911 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index e0babd642fa8..d7de2aea4748 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -261,4 +261,5 @@ dtb-$(CONFIG_ARCH_QCOM)     += sm8650-mtp.dtb
>  dtb-$(CONFIG_ARCH_QCOM)        += sm8650-qrd.dtb
>  dtb-$(CONFIG_ARCH_QCOM)        += x1e80100-asus-vivobook-s15.dtb
>  dtb-$(CONFIG_ARCH_QCOM)        += x1e80100-crd.dtb
> +dtb-$(CONFIG_ARCH_QCOM)        += x1e80100-lenovo-yoga-slim7x.dtb
>  dtb-$(CONFIG_ARCH_QCOM)        += x1e80100-qcp.dtb
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
> new file mode 100644
> index 000000000000..1d00119691bc
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
> @@ -0,0 +1,910 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +
> +#include "x1e80100.dtsi"
> +#include "x1e80100-pmics.dtsi"
> +
> +/ {
> +       model = "Lenovo Yoga Slim 7x";
> +       compatible = "lenovo,yoga-slim7x", "qcom,x1e80100";
> +
> +       pmic-glink {
> +               compatible = "qcom,x1e80100-pmic-glink",
> +                            "qcom,sm8550-pmic-glink",
> +                            "qcom,pmic-glink";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> +                                   <&tlmm 123 GPIO_ACTIVE_HIGH>,
> +                                   <&tlmm 125 GPIO_ACTIVE_HIGH>;
> +
> +               /* Left-side rear port */
> +               connector@0 {
> +                       compatible = "usb-c-connector";
> +                       reg = <0>;
> +                       power-role = "dual";
> +                       data-role = "dual";
> +
> +                       ports {
> +                               #address-cells = <1>;
> +                               #size-cells = <0>;
> +
> +                               port@0 {
> +                                       reg = <0>;
> +
> +                                       pmic_glink_ss0_hs_in: endpoint {
> +                                               remote-endpoint = <&usb_1_ss0_dwc3_hs>;
> +                                       };
> +                               };
> +
> +                               port@1 {
> +                                       reg = <1>;
> +
> +                                       pmic_glink_ss0_ss_in: endpoint {
> +                                               remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> +                                       };
> +                               };
> +                       };
> +               };
> +
> +               /* Left-side front port */
> +               connector@1 {
> +                       compatible = "usb-c-connector";
> +                       reg = <1>;
> +                       power-role = "dual";
> +                       data-role = "dual";
> +
> +                       ports {
> +                               #address-cells = <1>;
> +                               #size-cells = <0>;
> +
> +                               port@0 {
> +                                       reg = <0>;
> +
> +                                       pmic_glink_ss1_hs_in: endpoint {
> +                                               remote-endpoint = <&usb_1_ss1_dwc3_hs>;
> +                                       };
> +                               };
> +
> +                               port@1 {
> +                                       reg = <1>;
> +
> +                                       pmic_glink_ss1_ss_in: endpoint {
> +                                               remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> +                                       };
> +                               };
> +                       };
> +               };
> +
> +               /* Right-side port */
> +               connector@2 {
> +                       compatible = "usb-c-connector";
> +                       reg = <2>;
> +                       power-role = "dual";
> +                       data-role = "dual";
> +
> +                       ports {
> +                               #address-cells = <1>;
> +                               #size-cells = <0>;
> +
> +                               port@0 {
> +                                       reg = <0>;
> +
> +                                       pmic_glink_ss2_hs_in: endpoint {
> +                                               remote-endpoint = <&usb_1_ss2_dwc3_hs>;
> +                                       };
> +                               };
> +
> +                               port@1 {
> +                                       reg = <1>;
> +
> +                                       pmic_glink_ss2_ss_in: endpoint {
> +                                               remote-endpoint = <&usb_1_ss2_qmpphy_out>;
> +                                       };
> +                               };
> +                       };
> +               };
> +       };
> +
> +       reserved-memory {
> +               linux,cma {
> +                       compatible = "shared-dma-pool";
> +                       size = <0x0 0x8000000>;
> +                       reusable;
> +                       linux,cma-default;
> +               };
> +       };
> +
> +       sound {
> +               compatible = "qcom,x1e80100-sndcard";
> +               model = "X1E80100-LENOVO-Yoga-Slim7x";
> +               audio-routing = "WooferLeft IN", "WSA WSA_SPK1 OUT",
> +                               "TwitterLeft IN", "WSA WSA_SPK2 OUT",
> +                               "WooferRight IN", "WSA2 WSA_SPK2 OUT",
> +                               "TwitterRight IN", "WSA2 WSA_SPK2 OUT";
> +
> +               wsa-dai-link {
> +                       link-name = "WSA Playback";
> +
> +                       cpu {
> +                               sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>;
> +                       };
> +
> +                       codec {
> +                               sound-dai = <&left_woofer>, <&left_tweeter>,
> +                                           <&swr0 0>, <&lpass_wsamacro 0>,
> +                                           <&right_woofer>, <&right_tweeter>,
> +                                           <&swr3 0>, <&lpass_wsa2macro 0>;
> +                       };
> +
> +                       platform {
> +                               sound-dai = <&q6apm>;
> +                       };
> +               };
> +
> +               va-dai-link {
> +                       link-name = "VA Capture";
> +
> +                       cpu {
> +                               sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>;
> +                       };
> +
> +                       codec {
> +                               sound-dai = <&lpass_vamacro 0>;
> +                       };
> +
> +                       platform {
> +                               sound-dai = <&q6apm>;
> +                       };
> +               };
> +       };
> +
> +       vph_pwr: vph-pwr-regulator {
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "vph_pwr";
> +               regulator-min-microvolt = <3700000>;
> +               regulator-max-microvolt = <3700000>;
> +
> +               regulator-always-on;
> +               regulator-boot-on;
> +       };
> +
> +       vreg_edp_3p3: regulator-edp-3p3 {
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "VREG_EDP_3P3";
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;
> +
> +               gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +
> +               pinctrl-0 = <&edp_reg_en>;
> +               pinctrl-names = "default";
> +
> +               regulator-always-on;
> +               regulator-boot-on;
> +       };
> +
> +       vreg_nvme: regulator-nvme {
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "VREG_NVME_3P3";
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;
> +
> +               gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +
> +               pinctrl-0 = <&nvme_reg_en>;
> +               pinctrl-names = "default";
> +       };
> +};
> +
> +&apps_rsc {
> +       regulators-0 {
> +               compatible = "qcom,pm8550-rpmh-regulators";
> +               qcom,pmic-id = "b";
> +
> +               vdd-bob1-supply = <&vph_pwr>;
> +               vdd-bob2-supply = <&vph_pwr>;
> +               vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
> +               vdd-l2-l13-l14-supply = <&vreg_bob1>;
> +               vdd-l5-l16-supply = <&vreg_bob1>;
> +               vdd-l6-l7-supply = <&vreg_bob2>;
> +               vdd-l8-l9-supply = <&vreg_bob1>;
> +               vdd-l12-supply = <&vreg_s5j_1p2>;
> +               vdd-l15-supply = <&vreg_s4c_1p8>;
> +               vdd-l17-supply = <&vreg_bob2>;
> +
> +               vreg_bob1: bob1 {
> +                       regulator-name = "vreg_bob1";
> +                       regulator-min-microvolt = <3008000>;
> +                       regulator-max-microvolt = <3960000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_bob2: bob2 {
> +                       regulator-name = "vreg_bob2";
> +                       regulator-min-microvolt = <2504000>;
> +                       regulator-max-microvolt = <3008000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l1b_1p8: ldo1 {
> +                       regulator-name = "vreg_l1b_1p8";
> +                       regulator-min-microvolt = <1800000>;
> +                       regulator-max-microvolt = <1800000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l2b_3p0: ldo2 {
> +                       regulator-name = "vreg_l2b_3p0";
> +                       regulator-min-microvolt = <3072000>;
> +                       regulator-max-microvolt = <3100000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l8b_3p0: ldo8 {
> +                       regulator-name = "vreg_l8b_3p0";
> +                       regulator-min-microvolt = <3072000>;
> +                       regulator-max-microvolt = <3072000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l12b_1p2: ldo12 {
> +                       regulator-name = "vreg_l12b_1p2";
> +                       regulator-min-microvolt = <1200000>;
> +                       regulator-max-microvolt = <1200000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l14b_3p0: ldo14 {
> +                       regulator-name = "vreg_l14b_3p0";
> +                       regulator-min-microvolt = <3072000>;
> +                       regulator-max-microvolt = <3072000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l15b_1p8: ldo15 {
> +                       regulator-name = "vreg_l15b_1p8";
> +                       regulator-min-microvolt = <1800000>;
> +                       regulator-max-microvolt = <1800000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +       };
> +
> +       regulators-1 {
> +               compatible = "qcom,pm8550ve-rpmh-regulators";
> +               qcom,pmic-id = "c";
> +
> +               vdd-l1-supply = <&vreg_s5j_1p2>;
> +               vdd-l2-supply = <&vreg_s1f_0p7>;
> +               vdd-l3-supply = <&vreg_s1f_0p7>;
> +               vdd-s4-supply = <&vph_pwr>;
> +
> +               vreg_s4c_1p8: smps4 {
> +                       regulator-name = "vreg_s4c_1p8";
> +                       regulator-min-microvolt = <1856000>;
> +                       regulator-max-microvolt = <2000000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l1c_1p2: ldo1 {
> +                       regulator-name = "vreg_l1c_1p2";
> +                       regulator-min-microvolt = <1200000>;
> +                       regulator-max-microvolt = <1200000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l2c_0p8: ldo2 {
> +                       regulator-name = "vreg_l2c_0p8";
> +                       regulator-min-microvolt = <880000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l3c_0p8: ldo3 {
> +                       regulator-name = "vreg_l3c_0p8";
> +                       regulator-min-microvolt = <880000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +       };
> +
> +       regulators-2 {
> +               compatible = "qcom,pmc8380-rpmh-regulators";
> +               qcom,pmic-id = "d";
> +
> +               vdd-l1-supply = <&vreg_s1f_0p7>;
> +               vdd-l2-supply = <&vreg_s1f_0p7>;
> +               vdd-l3-supply = <&vreg_s4c_1p8>;
> +               vdd-s1-supply = <&vph_pwr>;
> +
> +               vreg_l1d_0p8: ldo1 {
> +                       regulator-name = "vreg_l1d_0p8";
> +                       regulator-min-microvolt = <880000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l2d_0p9: ldo2 {
> +                       regulator-name = "vreg_l2d_0p9";
> +                       regulator-min-microvolt = <912000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l3d_1p8: ldo3 {
> +                       regulator-name = "vreg_l3d_1p8";
> +                       regulator-min-microvolt = <1800000>;
> +                       regulator-max-microvolt = <1800000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +       };
> +
> +       regulators-3 {
> +               compatible = "qcom,pmc8380-rpmh-regulators";
> +               qcom,pmic-id = "e";
> +
> +               vdd-l2-supply = <&vreg_s1f_0p7>;
> +               vdd-l3-supply = <&vreg_s5j_1p2>;
> +
> +               vreg_l2e_0p8: ldo2 {
> +                       regulator-name = "vreg_l2e_0p8";
> +                       regulator-min-microvolt = <880000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l3e_1p2: ldo3 {
> +                       regulator-name = "vreg_l3e_1p2";
> +                       regulator-min-microvolt = <1200000>;
> +                       regulator-max-microvolt = <1200000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +       };
> +
> +       regulators-4 {
> +               compatible = "qcom,pmc8380-rpmh-regulators";
> +               qcom,pmic-id = "f";
> +
> +               vdd-l1-supply = <&vreg_s5j_1p2>;
> +               vdd-l2-supply = <&vreg_s5j_1p2>;
> +               vdd-l3-supply = <&vreg_s5j_1p2>;
> +               vdd-s1-supply = <&vph_pwr>;
> +
> +               vreg_s1f_0p7: smps1 {
> +                       regulator-name = "vreg_s1f_0p7";
> +                       regulator-min-microvolt = <700000>;
> +                       regulator-max-microvolt = <1100000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l1f_1p0: ldo1 {
> +                       regulator-name = "vreg_l1f_1p0";
> +                       regulator-min-microvolt = <1024000>;
> +                       regulator-max-microvolt = <1024000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l2f_1p0: ldo2 {
> +                       regulator-name = "vreg_l2f_1p0";
> +                       regulator-min-microvolt = <1024000>;
> +                       regulator-max-microvolt = <1024000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l3f_1p0: ldo3 {
> +                       regulator-name = "vreg_l3f_1p0";
> +                       regulator-min-microvolt = <1024000>;
> +                       regulator-max-microvolt = <1024000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +       };
> +
> +       regulators-6 {
> +               compatible = "qcom,pm8550ve-rpmh-regulators";
> +               qcom,pmic-id = "i";
> +
> +               vdd-l1-supply = <&vreg_s4c_1p8>;
> +               vdd-l2-supply = <&vreg_s5j_1p2>;
> +               vdd-l3-supply = <&vreg_s1f_0p7>;
> +               vdd-s1-supply = <&vph_pwr>;
> +               vdd-s2-supply = <&vph_pwr>;
> +
> +               vreg_s1i_0p9: smps1 {
> +                       regulator-name = "vreg_s1i_0p9";
> +                       regulator-min-microvolt = <900000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_s2i_1p0: smps2 {
> +                       regulator-name = "vreg_s2i_1p0";
> +                       regulator-min-microvolt = <1000000>;
> +                       regulator-max-microvolt = <1100000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l1i_1p8: ldo1 {
> +                       regulator-name = "vreg_l1i_1p8";
> +                       regulator-min-microvolt = <1800000>;
> +                       regulator-max-microvolt = <1800000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l2i_1p2: ldo2 {
> +                       regulator-name = "vreg_l2i_1p2";
> +                       regulator-min-microvolt = <1200000>;
> +                       regulator-max-microvolt = <1200000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l3i_0p8: ldo3 {
> +                       regulator-name = "vreg_l3i_0p8";
> +                       regulator-min-microvolt = <880000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +       };
> +
> +       regulators-7 {
> +               compatible = "qcom,pm8550ve-rpmh-regulators";
> +               qcom,pmic-id = "j";
> +
> +               vdd-l1-supply = <&vreg_s1f_0p7>;
> +               vdd-l2-supply = <&vreg_s5j_1p2>;
> +               vdd-l3-supply = <&vreg_s1f_0p7>;
> +               vdd-s5-supply = <&vph_pwr>;
> +
> +               vreg_s5j_1p2: smps5 {
> +                       regulator-name = "vreg_s5j_1p2";
> +                       regulator-min-microvolt = <1256000>;
> +                       regulator-max-microvolt = <1304000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l1j_0p8: ldo1 {
> +                       regulator-name = "vreg_l1j_0p8";
> +                       regulator-min-microvolt = <880000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l2j_1p2: ldo2 {
> +                       regulator-name = "vreg_l2j_1p2";
> +                       regulator-min-microvolt = <1200000>;
> +                       regulator-max-microvolt = <1200000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +
> +               vreg_l3j_0p8: ldo3 {
> +                       regulator-name = "vreg_l3j_0p8";
> +                       regulator-min-microvolt = <880000>;
> +                       regulator-max-microvolt = <920000>;
> +                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +               };
> +       };
> +};
> +
> +&gpu {
> +       status = "okay";
> +
> +       zap-shader {
> +               firmware-name = "qcom/x1e80100/LENOVO/14Q8X9/qcdxkmsuc8380.mbn";

I ended up with:

  firmware-name = "qcom/x1e80100/LENOVO/83ED/qcdxkmsuc8380.mbn";

my DMI string is:

  DMI: LENOVO 83ED/LNVNB161216, BIOS NHCN36WW 05/23/2024

idk if that is different for you?

> +       };
> +};
> +
> +&i2c0 {
> +       clock-frequency = <400000>;
> +
> +       status = "okay";
> +

I also have this, which is working for me (sry about gmail butchering
the formating):


touchpad@2c {
compatible = "hid-over-i2c";
reg = <0x2c>;

hid-descr-addr = <0x20>;
interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;

pinctrl-0 = <&tpad_default>;
pinctrl-names = "default";

wakeup-source;
};

basically just uncommented the node from Xilin's tree, but seems to work fine.

BR,
-R

> +       keyboard@3a {
> +               compatible = "hid-over-i2c";
> +               reg = <0x3a>;
> +
> +               hid-descr-addr = <0x1>;
> +               interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> +
> +               pinctrl-0 = <&kybd_default>;
> +               pinctrl-names = "default";
> +
> +               wakeup-source;
> +       };
> +};
> +
> +&i2c8 {
> +       clock-frequency = <400000>;
> +
> +       status = "okay";
> +
> +       touchscreen@14 {
> +               compatible = "hid-over-i2c";
> +               reg = <0x14>;
> +
> +               hid-descr-addr = <0x1>;
> +               interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> +
> +               pinctrl-0 = <&ts0_default>;
> +               pinctrl-names = "default";
> +       };
> +};
> +
> +&lpass_tlmm {
> +       spkr_01_sd_n_active: spkr-01-sd-n-active-state {
> +               pins = "gpio12";
> +               function = "gpio";
> +               drive-strength = <16>;
> +               bias-disable;
> +               output-low;
> +       };
> +
> +       spkr_23_sd_n_active: spkr-23-sd-n-active-state {
> +               pins = "gpio13";
> +               function = "gpio";
> +               drive-strength = <16>;
> +               bias-disable;
> +               output-low;
> +       };
> +};
> +
> +&lpass_vamacro {
> +       pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
> +       pinctrl-names = "default";
> +
> +       vdd-micb-supply = <&vreg_l1b_1p8>;
> +       qcom,dmic-sample-rate = <4800000>;
> +};
> +
> +&mdss {
> +       status = "okay";
> +};
> +
> +&mdss_dp3 {
> +       compatible = "qcom,x1e80100-dp";
> +       /delete-property/ #sound-dai-cells;
> +
> +       status = "okay";
> +
> +       aux-bus {
> +               panel {
> +                       compatible = "edp-panel";
> +                       power-supply = <&vreg_edp_3p3>;
> +
> +                       port {
> +                               edp_panel_in: endpoint {
> +                                       remote-endpoint = <&mdss_dp3_out>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       ports {
> +               port@1 {
> +                       reg = <1>;
> +
> +                       mdss_dp3_out: endpoint {
> +                               data-lanes = <0 1 2 3>;
> +                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +
> +                               remote-endpoint = <&edp_panel_in>;
> +                       };
> +               };
> +       };
> +};
> +
> +&mdss_dp3_phy {
> +       vdda-phy-supply = <&vreg_l3j_0p8>;
> +       vdda-pll-supply = <&vreg_l2j_1p2>;
> +
> +       status = "okay";
> +};
> +
> +&pcie4 {
> +       status = "okay";
> +};
> +
> +&pcie4_phy {
> +       vdda-phy-supply = <&vreg_l3j_0p8>;
> +       vdda-pll-supply = <&vreg_l3e_1p2>;
> +
> +       status = "okay";
> +};
> +
> +&pcie6a {
> +       perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> +       wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> +
> +       vddpe-3v3-supply = <&vreg_nvme>;
> +
> +       pinctrl-0 = <&pcie6a_default>;
> +       pinctrl-names = "default";
> +
> +       status = "okay";
> +};
> +
> +&pcie6a_phy {
> +       vdda-phy-supply = <&vreg_l1d_0p8>;
> +       vdda-pll-supply = <&vreg_l2j_1p2>;
> +
> +       status = "okay";
> +};
> +
> +&qupv3_0 {
> +       status = "okay";
> +};
> +
> +&qupv3_1 {
> +       status = "okay";
> +};
> +
> +&qupv3_2 {
> +       status = "okay";
> +};
> +
> +&remoteproc_adsp {
> +       firmware-name = "qcom/x1e80100/LENOVO/14Q8X9/qcadsp8380.mbn",
> +                       "qcom/x1e80100/LENOVO/14Q8X9/adsp_dtbs.elf";
> +       status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> +       firmware-name = "qcom/x1e80100/LENOVO/14Q8X9/qccdsp8380.mbn",
> +                       "qcom/x1e80100/LENOVO/14Q8X9/cdsp_dtbs.elf";
> +
> +       status = "okay";
> +};
> +
> +&smb2360_0_eusb2_repeater {
> +       vdd18-supply = <&vreg_l3d_1p8>;
> +       vdd3-supply = <&vreg_l2b_3p0>;
> +};
> +
> +&smb2360_1_eusb2_repeater {
> +       vdd18-supply = <&vreg_l3d_1p8>;
> +       vdd3-supply = <&vreg_l14b_3p0>;
> +};
> +
> +&smb2360_2_eusb2_repeater {
> +       vdd18-supply = <&vreg_l3d_1p8>;
> +       vdd3-supply = <&vreg_l8b_3p0>;
> +};
> +
> +&swr0 {
> +       status = "okay";
> +
> +       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
> +       pinctrl-names = "default";
> +
> +       /* WSA8845, Left Woofer */
> +       left_woofer: speaker@0,0 {
> +               compatible = "sdw20217020400";
> +               reg = <0 0>;
> +               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
> +               #sound-dai-cells = <0>;
> +               sound-name-prefix = "WooferLeft";
> +               vdd-1p8-supply = <&vreg_l15b_1p8>;
> +               vdd-io-supply = <&vreg_l12b_1p2>;
> +               qcom,port-mapping = <1 2 3 7 10 13>;
> +       };
> +
> +       /* WSA8845, Left Tweeter */
> +       left_tweeter: speaker@0,1 {
> +               compatible = "sdw20217020400";
> +               reg = <0 1>;
> +               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
> +               #sound-dai-cells = <0>;
> +               sound-name-prefix = "TwitterLeft";
> +               vdd-1p8-supply = <&vreg_l15b_1p8>;
> +               vdd-io-supply = <&vreg_l12b_1p2>;
> +               qcom,port-mapping = <4 5 6 7 11 13>;
> +       };
> +};
> +
> +
> +&swr3 {
> +       status = "okay";
> +
> +       pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
> +       pinctrl-names = "default";
> +
> +       /* WSA8845, Right Woofer */
> +       right_woofer: speaker@0,0 {
> +               compatible = "sdw20217020400";
> +               reg = <0 0>;
> +               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
> +               #sound-dai-cells = <0>;
> +               sound-name-prefix = "WooferRight";
> +               vdd-1p8-supply = <&vreg_l15b_1p8>;
> +               vdd-io-supply = <&vreg_l12b_1p2>;
> +               qcom,port-mapping = <1 2 3 7 10 13>;
> +       };
> +
> +       /* WSA8845, Right Tweeter */
> +       right_tweeter: speaker@0,1 {
> +               compatible = "sdw20217020400";
> +               reg = <0 1>;
> +               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
> +               #sound-dai-cells = <0>;
> +               sound-name-prefix = "TwitterRight";
> +               vdd-1p8-supply = <&vreg_l15b_1p8>;
> +               vdd-io-supply = <&vreg_l12b_1p2>;
> +               qcom,port-mapping = <4 5 6 7 11 13>;
> +       };
> +};
> +
> +&tlmm {
> +       gpio-reserved-ranges = <34 2>, /* Unused */
> +                              <44 4>, /* SPI (TPM) */
> +                              <238 1>; /* UFS Reset */
> +
> +       edp_reg_en: edp-reg-en-state {
> +               pins = "gpio70";
> +               function = "gpio";
> +               drive-strength = <16>;
> +               bias-disable;
> +       };
> +
> +       kybd_default: kybd-default-state {
> +               pins = "gpio67";
> +               function = "gpio";
> +               bias-disable;
> +       };
> +
> +       nvme_reg_en: nvme-reg-en-state {
> +               pins = "gpio18";
> +               function = "gpio";
> +               drive-strength = <2>;
> +               bias-disable;
> +       };
> +
> +       pcie6a_default: pcie2a-default-state {
> +               clkreq-n-pins {
> +                       pins = "gpio153";
> +                       function = "pcie6a_clk";
> +                       drive-strength = <2>;
> +                       bias-pull-up;
> +               };
> +
> +               perst-n-pins {
> +                       pins = "gpio152";
> +                       function = "gpio";
> +                       drive-strength = <2>;
> +                       bias-pull-down;
> +               };
> +
> +               wake-n-pins {
> +                      pins = "gpio154";
> +                      function = "gpio";
> +                      drive-strength = <2>;
> +                      bias-pull-up;
> +              };
> +       };
> +
> +       ts0_default: ts0-default-state {
> +               int-n-pins {
> +                       pins = "gpio51";
> +                       function = "gpio";
> +                       bias-disable;
> +               };
> +
> +               reset-n-pins {
> +                       pins = "gpio48";
> +                       function = "gpio";
> +                       output-high;
> +                       drive-strength = <16>;
> +               };
> +       };
> +
> +};
> +
> +&usb_1_ss0_hsphy {
> +       vdd-supply = <&vreg_l3j_0p8>;
> +       vdda12-supply = <&vreg_l2j_1p2>;
> +
> +       phys = <&smb2360_0_eusb2_repeater>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss0_qmpphy {
> +       vdda-phy-supply = <&vreg_l3e_1p2>;
> +       vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> +       orientation-switch;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss0 {
> +       status = "okay";
> +};
> +
> +&usb_1_ss0_dwc3 {
> +       dr_mode = "host";
> +};
> +
> +&usb_1_ss0_dwc3_hs {
> +       remote-endpoint = <&pmic_glink_ss0_hs_in>;
> +};
> +
> +&usb_1_ss0_qmpphy_out {
> +       remote-endpoint = <&pmic_glink_ss0_ss_in>;
> +};
> +
> +&usb_1_ss1_hsphy {
> +       vdd-supply = <&vreg_l3j_0p8>;
> +       vdda12-supply = <&vreg_l2j_1p2>;
> +
> +       phys = <&smb2360_1_eusb2_repeater>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss1_qmpphy {
> +       vdda-phy-supply = <&vreg_l3e_1p2>;
> +       vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> +       orientation-switch;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss1 {
> +       status = "okay";
> +};
> +
> +&usb_1_ss1_dwc3 {
> +       dr_mode = "host";
> +};
> +
> +&usb_1_ss1_dwc3_hs {
> +       remote-endpoint = <&pmic_glink_ss1_hs_in>;
> +};
> +
> +&usb_1_ss1_qmpphy_out {
> +       remote-endpoint = <&pmic_glink_ss1_ss_in>;
> +};
> +
> +&usb_1_ss2_hsphy {
> +       vdd-supply = <&vreg_l3j_0p8>;
> +       vdda12-supply = <&vreg_l2j_1p2>;
> +
> +       phys = <&smb2360_2_eusb2_repeater>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss2_qmpphy {
> +       vdda-phy-supply = <&vreg_l3e_1p2>;
> +       vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> +       status = "okay";
> +};
> +
> +&usb_1_ss2 {
> +       status = "okay";
> +};
> +
> +&usb_1_ss2_dwc3 {
> +       dr_mode = "host";
> +};
> +
> +&usb_1_ss2_dwc3_hs {
> +       remote-endpoint = <&pmic_glink_ss2_hs_in>;
> +};
> +
> +&usb_1_ss2_qmpphy_out {
> +       remote-endpoint = <&pmic_glink_ss2_ss_in>;
> +};
>
> --
> 2.25.1
>
>





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux