]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: add retimers, dp altmode support
authorJens Glathe <jens.glathe@oldschoolsolutions.biz>
Thu, 17 Apr 2025 16:35:44 +0000 (18:35 +0200)
committerBjorn Andersson <andersson@kernel.org>
Mon, 19 May 2025 20:33:50 +0000 (15:33 -0500)
comparing with CRD and other dts for a more complete support of the 7X
only retimers, gpios, regulators, dp outputs

Tested-by: Rob Clark <robdclark@gmail.com>
Tested-by: Jos Dehaes <jos.dehaes@gmail.com>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250417-slim7x-retimer-v2-1-dbe2dd511137@oldschoolsolutions.biz
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts

index 873ebafa933aae7086b09f7fc8ee5099119e5b0c..dad0f11e8e8583df6fd8aeec5be2af86739d85fb 100644 (file)
                                        reg = <1>;
 
                                        pmic_glink_ss0_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+                                               remote-endpoint = <&retimer_ss0_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss0_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss0_con_sbu_out>;
                                        };
                                };
                        };
                                        reg = <1>;
 
                                        pmic_glink_ss1_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+                                               remote-endpoint = <&retimer_ss1_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss1_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss1_con_sbu_out>;
                                        };
                                };
                        };
                                        reg = <1>;
 
                                        pmic_glink_ss2_ss_in: endpoint {
-                                               remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+                                               remote-endpoint = <&retimer_ss2_ss_out>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_ss2_con_sbu_in: endpoint {
+                                               remote-endpoint = <&retimer_ss2_con_sbu_out>;
                                        };
                                };
                        };
                regulator-boot-on;
        };
 
+       vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P15";
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR0_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb0_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_1P15";
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR1_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr2_1p15: regulator-rtmr2-1p15 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR2_1P15";
+               regulator-min-microvolt = <1150000>;
+               regulator-max-microvolt = <1150000>;
+
+               gpio = <&tlmm 189 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb2_pwr_1p15_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr2_1p8: regulator-rtmr2-1p8 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR2_1P8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+
+               gpio = <&tlmm 126 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb2_pwr_1p8_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
+       vreg_rtmr2_3p3: regulator-rtmr2-3p3 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "VREG_RTMR2_3P3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&tlmm 187 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&usb2_pwr_3p3_reg_en>;
+               pinctrl-names = "default";
+
+               regulator-boot-on;
+       };
+
        vph_pwr: regulator-vph-pwr {
                compatible = "regulator-fixed";
 
        };
 };
 
+&i2c1 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x08>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK5>;
+
+               vdd-supply = <&vreg_rtmr2_1p15>;
+               vdd33-supply = <&vreg_rtmr2_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr2_3p3>;
+               vddar-supply = <&vreg_rtmr2_1p15>;
+               vddat-supply = <&vreg_rtmr2_1p15>;
+               vddio-supply = <&vreg_rtmr2_1p8>;
+
+               reset-gpios = <&tlmm 185 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&rtmr2_default>;
+               pinctrl-names = "default";
+
+               orientation-switch;
+               retimer-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss2_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss2_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss2_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss2_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss2_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss2_con_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x08>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+               vdd-supply = <&vreg_rtmr0_1p15>;
+               vdd33-supply = <&vreg_rtmr0_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+               vddar-supply = <&vreg_rtmr0_1p15>;
+               vddat-supply = <&vreg_rtmr0_1p15>;
+               vddio-supply = <&vreg_rtmr0_1p8>;
+
+               reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&rtmr0_default>;
+               pinctrl-names = "default";
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss0_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss0_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss0_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&i2c7 {
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       typec-mux@8 {
+               compatible = "parade,ps8830";
+               reg = <0x8>;
+
+               clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+               vdd-supply = <&vreg_rtmr1_1p15>;
+               vdd33-supply = <&vreg_rtmr1_3p3>;
+               vdd33-cap-supply = <&vreg_rtmr1_3p3>;
+               vddar-supply = <&vreg_rtmr1_1p15>;
+               vddat-supply = <&vreg_rtmr1_1p15>;
+               vddio-supply = <&vreg_rtmr1_1p8>;
+
+               reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
+
+               pinctrl-0 = <&rtmr1_default>;
+               pinctrl-names = "default";
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               retimer_ss1_ss_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss1_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               retimer_ss1_ss_in: endpoint {
+                                       remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               retimer_ss1_con_sbu_out: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
+                               };
+                       };
+
+               };
+       };
+};
+
 &i2c8 {
        clock-frequency = <400000>;
 
        status = "okay";
 };
 
+&mdss_dp0 {
+       status = "okay";
+};
+
+&mdss_dp0_out {
+       data-lanes = <0 1>;
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+       status = "okay";
+};
+
+&mdss_dp1_out {
+       data-lanes = <0 1>;
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp2 {
+       status = "okay";
+};
+
+&mdss_dp2_out {
+       data-lanes = <0 1>;
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
 &mdss_dp3 {
        /delete-property/ #sound-dai-cells;
 
        status = "okay";
 };
 
+&pm8550_gpios {
+       rtmr0_default: rtmr0-reset-n-active-state {
+               pins = "gpio10";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+
+       usb0_3p3_reg_en: usb0-3p3-reg-en-state {
+               pins = "gpio11";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
+&pm8550ve_9_gpios {
+       usb0_1p8_reg_en: usb0-1p8-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
 &pmc8380_3_gpios {
        edp_bl_en: edp-bl-en-state {
                pins = "gpio4";
        };
 };
 
+&pmc8380_5_gpios {
+       usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>; /* 1.8V */
+               bias-disable;
+               input-disable;
+               output-enable;
+       };
+};
+
 &qupv3_0 {
        status = "okay";
 };
                };
        };
 
+       rtmr1_default: rtmr1-reset-n-active-state {
+               pins = "gpio176";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       rtmr2_default: rtmr2-reset-n-active-state {
+               pins = "gpio185";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
        tpad_default: tpad-default-state {
                pins = "gpio3";
                function = "gpio";
                };
        };
 
+       usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
+               pins = "gpio188";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
+               pins = "gpio175";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
+               pins = "gpio186";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       usb2_pwr_1p15_reg_en: usb2-pwr-1p15-reg-en-state {
+               pins = "gpio189";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       usb2_pwr_1p8_reg_en: usb2-pwr-1p8-reg-en-state {
+               pins = "gpio126";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       usb2_pwr_3p3_reg_en: usb2-pwr-3p3-reg-en-state {
+               pins = "gpio187";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
 };
 
 &uart21 {
 };
 
 &usb_1_ss0_qmpphy_out {
-       remote-endpoint = <&pmic_glink_ss0_ss_in>;
+       remote-endpoint = <&retimer_ss0_ss_in>;
 };
 
 &usb_1_ss1_hsphy {
 };
 
 &usb_1_ss1_qmpphy_out {
-       remote-endpoint = <&pmic_glink_ss1_ss_in>;
+       remote-endpoint = <&retimer_ss1_ss_in>;
 };
 
 &usb_1_ss2_hsphy {
 };
 
 &usb_1_ss2_qmpphy_out {
-       remote-endpoint = <&pmic_glink_ss2_ss_in>;
+       remote-endpoint = <&retimer_ss2_ss_in>;
 };