MTP8750 does not have audio jack connected and relies on USB mux
(WCD9395). Add necessary nodes for proper audio headset support along
with USB Type-C altmode and orientation.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
arch/arm64/boot/dts/qcom/sm8750-mtp.dts | 58 +++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
index bd0918e8a7a7e03530eea577c7609454fecfdaf7..c3470e1daa6b7f31196645759be23fb168ce8eb7 100644
--- a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
@@ -53,6 +53,15 @@ wcd939x: audio-codec {
vdd-mic-bias-supply = <&vreg_bob1>;
#sound-dai-cells = <1>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ wcd_codec_headset_in: endpoint {
+ remote-endpoint = <&wcd_usbss_headset_out>;
+ };
+ };
};
chosen {
@@ -220,6 +229,14 @@ port@1 {
pmic_glink_ss_in: endpoint {
};
};
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_sbu: endpoint {
+ remote-endpoint = <&wcd_usbss_sbu_mux>;
+ };
+ };
};
};
};
@@ -845,6 +862,42 @@ vreg_l7n_3p3: ldo7 {
};
};
+&i2c3 {
+ status = "okay";
+
+ wcd_usbss: typec-mux@e {
+ compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
+ reg = <0xe>;
+
+ vdd-supply = <&vreg_l15b_1p8>;
+ reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>;
+
+ mode-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wcd_usbss_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ wcd_usbss_headset_out: endpoint {
+ remote-endpoint = <&wcd_codec_headset_in>;
+ };
+ };
+ };
+ };
+};
+
&lpass_vamacro {
pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
pinctrl-names = "default";
@@ -973,6 +1026,11 @@ &pmih0108_eusb2_repeater {
vdd3-supply = <&vreg_l5b_3p1>;
};
+&qup_i2c3_data_clk {
+ /* Use internal I2C pull-up */
+ bias-pull-up = <2200>;
+};
+
&qupv3_1 {
status = "okay";
};
--
2.45.2
On 24/04/2025 15:04, Krzysztof Kozlowski wrote:
> MTP8750 does not have audio jack connected and relies on USB mux
> (WCD9395). Add necessary nodes for proper audio headset support along
> with USB Type-C altmode and orientation.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/sm8750-mtp.dts | 58 +++++++++++++++++++++++++++++++++
> 1 file changed, 58 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> index bd0918e8a7a7e03530eea577c7609454fecfdaf7..c3470e1daa6b7f31196645759be23fb168ce8eb7 100644
> --- a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> @@ -53,6 +53,15 @@ wcd939x: audio-codec {
> vdd-mic-bias-supply = <&vreg_bob1>;
>
> #sound-dai-cells = <1>;
> +
> + mode-switch;
> + orientation-switch;
> +
> + port {
> + wcd_codec_headset_in: endpoint {
> + remote-endpoint = <&wcd_usbss_headset_out>;
> + };
> + };
> };
>
> chosen {
> @@ -220,6 +229,14 @@ port@1 {
> pmic_glink_ss_in: endpoint {
port@0 and port@1 need updates for endpoints as well. I will do that in v2.
Best regards,
Krzysztof
On 24/04/2025 15:04, Krzysztof Kozlowski wrote:
> MTP8750 does not have audio jack connected and relies on USB mux
> (WCD9395). Add necessary nodes for proper audio headset support along
> with USB Type-C altmode and orientation.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> arch/arm64/boot/dts/qcom/sm8750-mtp.dts | 58 +++++++++++++++++++++++++++++++++
> 1 file changed, 58 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> index bd0918e8a7a7e03530eea577c7609454fecfdaf7..c3470e1daa6b7f31196645759be23fb168ce8eb7 100644
> --- a/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8750-mtp.dts
> @@ -53,6 +53,15 @@ wcd939x: audio-codec {
> vdd-mic-bias-supply = <&vreg_bob1>;
>
> #sound-dai-cells = <1>;
> +
> + mode-switch;
> + orientation-switch;
> +
> + port {
> + wcd_codec_headset_in: endpoint {
> + remote-endpoint = <&wcd_usbss_headset_out>;
> + };
> + };
> };
>
> chosen {
> @@ -220,6 +229,14 @@ port@1 {
> pmic_glink_ss_in: endpoint {
> };
> };
> +
> + port@2 {
> + reg = <2>;
> +
> + pmic_glink_sbu: endpoint {
> + remote-endpoint = <&wcd_usbss_sbu_mux>;
> + };
> + };
> };
> };
> };
> @@ -845,6 +862,42 @@ vreg_l7n_3p3: ldo7 {
> };
> };
>
> +&i2c3 {
> + status = "okay";
> +
> + wcd_usbss: typec-mux@e {
> + compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
> + reg = <0xe>;
> +
> + vdd-supply = <&vreg_l15b_1p8>;
> + reset-gpios = <&tlmm 152 GPIO_ACTIVE_HIGH>;
> +
> + mode-switch;
> + orientation-switch;
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + wcd_usbss_sbu_mux: endpoint {
> + remote-endpoint = <&pmic_glink_sbu>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + wcd_usbss_headset_out: endpoint {
> + remote-endpoint = <&wcd_codec_headset_in>;
> + };
> + };
> + };
> + };
> +};
> +
> &lpass_vamacro {
> pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
> pinctrl-names = "default";
> @@ -973,6 +1026,11 @@ &pmih0108_eusb2_repeater {
> vdd3-supply = <&vreg_l5b_3p1>;
> };
>
> +&qup_i2c3_data_clk {
> + /* Use internal I2C pull-up */
> + bias-pull-up = <2200>;
> +};
> +
> &qupv3_1 {
> status = "okay";
> };
>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
© 2016 - 2026 Red Hat, Inc.