diff --git a/sun-audio-overlay.dtsi b/sun-audio-overlay.dtsi index ae188d76..1eb16b28 100644 --- a/sun-audio-overlay.dtsi +++ b/sun-audio-overlay.dtsi @@ -360,6 +360,33 @@ }; +&lpass_bt_swr { + clock-names = "bt_swr_mclk_clk", "bt_swr_mclk_clk_2x", + "lpass_core_hw_vote", "lpass_audio_hw_vote"; + clocks = <&clock_audio_bt_swr_mclk_clk 0>, <&clock_audio_bt_swr_mclk_clk_2x 0>, + <&lpass_core_hw_vote 0>, <&lpass_audio_hw_vote 0>; + qcom,bt-swr-gpios = <&bt_swr_gpios>; + + swr4: bt_swr_mstr { + compatible = "qcom,swr-mstr"; + qcom,swr_master_id = <5>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + swrm-io-base = <0x06CA0000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <7>; + qcom,swr-port-mapping = <1 BT_AUDIO_RX1 0x3>, + <2 BT_AUDIO_RX2 0x3>, <3 BT_AUDIO_RX3 0x3>, + <5 BT_AUDIO_TX1 0x3>, <6 BT_AUDIO_TX2 0x3>, + <7 BT_AUDIO_TX3 0x3>, <8 FM_AUDIO_TX1 0x3>; + qcom,swr-num-dev = <1>; + qcom,swr-clock-stop-mode0 = <1>; + }; +}; + &spf_core_platform { sun_snd: sound { qcom,model = "sun-mtp-snd-card"; @@ -665,6 +692,15 @@ qcom,tlmm-pins = <182>; #gpio-cells = <0>; }; + + bt_swr_gpios: bt_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&bt_swr_clk_active &bt_swr_data_active>; + pinctrl-1 = <&bt_swr_clk_sleep &bt_swr_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; }; &soc { @@ -762,4 +798,20 @@ qcom,codec-lpass-clk-id = <0x318>; #clock-cells = <1>; }; + + clock_audio_bt_swr_mclk_clk: bt_swr_mclk_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <24576000>; + qcom,codec-lpass-clk-id = <0x31A>; + #clock-cells = <1>; + }; + + clock_audio_bt_swr_mclk_clk_2x: bt_swr_mclk_clk_2x { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <24576000>; + qcom,codec-lpass-clk-id = <0x31B>; + #clock-cells = <1>; + }; }; diff --git a/sun-audio.dtsi b/sun-audio.dtsi index b106cf5f..bf8bbbf6 100644 --- a/sun-audio.dtsi +++ b/sun-audio.dtsi @@ -151,6 +151,12 @@ }; }; + lpass_bt_swr: lpass_bt_swr@6CA0000 { + compatible = "qcom,lpass-bt-swr"; + swr4: bt_swr_mstr { + }; + }; + sun_snd: sound { compatible = "qcom,sun-asoc-snd"; qcom,mi2s-audio-intf = <1>; @@ -170,4 +176,5 @@ swr1 = "/soc/spf_core_platform/lpass-cdc/rx-macro@6AC0000/rx_swr_master"; swr2 = "/soc/spf_core_platform/lpass-cdc/va-macro@6D44000/va_swr_master"; swr3 = "/soc/spf_core_platform/lpass-cdc/wsa2-macro@6AA0000/wsa2_swr_master"; + swr4 = "/soc/spf_core_platform/lpass_bt_swr/bt_swr_mstr"; }; diff --git a/sun-lpi.dtsi b/sun-lpi.dtsi index 672270e4..f19749a9 100644 --- a/sun-lpi.dtsi +++ b/sun-lpi.dtsi @@ -1984,6 +1984,66 @@ }; }; + bt_swr_clk_pin { + bt_swr_clk_sleep: bt_swr_clk_sleep { + mux { + pins = "gpio19"; + function = "func3"; + }; + + config { + pins = "gpio19"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + bt_swr_clk_active: bt_swr_clk_active { + mux { + pins = "gpio19"; + function = "func3"; + }; + + config { + pins = "gpio19"; + drive-strength = <2>; + slew-rate = <1>; + bias-disable; + }; + }; + }; + + bt_swr_data_pin { + bt_swr_data_sleep: bt_swr_data_sleep { + mux { + pins = "gpio20"; + function = "func3"; + }; + + config { + pins = "gpio20"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + bt_swr_data_active: bt_swr_data_active { + mux { + pins = "gpio20"; + function = "func3"; + }; + + config { + pins = "gpio20"; + drive-strength = <2>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + }; + wsa_swr_clk_pin { wsa_swr_clk_sleep: wsa_swr_clk_sleep { mux {