MTP 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 accessory mode and orientation.

Set the I2C bus clock frequency to 100 kHz for the WCD9395 USBSS mux.

Signed-off-by: Balaji Kalkonda <[email protected]>
---
 arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 53 ++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts 
b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
index 9eb02fd09dab..22eeacd7aecd 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
@@ -200,6 +200,7 @@ port@2 {
                                        reg = <2>;
 
                                        pmic_glink_sbu: endpoint {
+                                               remote-endpoint = 
<&wcd_usbss_sbu_mux>;
                                        };
                                };
                        };
@@ -232,6 +233,15 @@ wcd939x: audio-codec {
                vdd-px-supply = <&vreg_l1g_1p2>;
 
                #sound-dai-cells = <1>;
+
+               mode-switch;
+               orientation-switch;
+
+               port {
+                       wcd_codec_headset_in: endpoint {
+                               remote-endpoint = <&wcd_usbss_headset_out>;
+                       };
+               };
        };
 
        wcn7850-pmu {
@@ -916,6 +926,44 @@ &gpu_zap_shader {
        firmware-name = "qcom/kaanapali/gen80200_zap.mbn";
 };
 
+&i2c3 {
+       clock-frequency = <100000>;
+
+       status = "okay";
+
+       wcd_usbss: typec-mux@e {
+               compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
+               reg = <0xe>;
+
+               vdd-supply = <&vreg_l15b_1p8>;
+               reset-gpios = <&tlmm 162 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";
@@ -1113,6 +1161,11 @@ &pon_resin {
        status = "okay";
 };
 
+&qup_i2c3_data_clk {
+       /* Use internal I2C pull-up */
+       bias-pull-up = <2200>;
+};
+
 &remoteproc_adsp {
        firmware-name = "qcom/kaanapali/adsp.mbn",
                        "qcom/kaanapali/adsp_dtb.mbn";

-- 
2.34.1

Reply via email to