diff --git a/qcom/audio/Kbuild b/qcom/audio/Kbuild index 1f999ed6..3e0e1697 100644 --- a/qcom/audio/Kbuild +++ b/qcom/audio/Kbuild @@ -20,6 +20,9 @@ endif dtbo-$(CONFIG_WUKONG_DTB) += oplus/wukong-21131-audio-kalama-overlay.dtbo dtbo-$(CONFIG_SALAMI_DTB) += oplus/salami-22811-audio-kalama-overlay.dtbo dtbo-$(CONFIG_XUEYING_DTB) += oplus/xueying-22003-audio-kalama-overlay.dtbo +dtbo-$(CONFIG_ZONDA_DTB) += oplus/zonda-22635-audio-kalama-overlay.dtbo +dtbo-$(CONFIG_XIGUA_DTB) += oplus/xigua-22851-audio-kalama-overlay.dtbo +dtbo-$(CONFIG_ASTON_DTB) += oplus/aston-23801-audio-kalama-overlay.dtbo #OPLUS_DTS_OVERLAY end endif diff --git a/qcom/audio/oplus/aston-23801-audio-kalama-overlay.dts b/qcom/audio/oplus/aston-23801-audio-kalama-overlay.dts new file mode 100644 index 00000000..851ded09 --- /dev/null +++ b/qcom/audio/oplus/aston-23801-audio-kalama-overlay.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; +#include +#include "../kalama-audio-mtp.dts" +#include "kalama-audio-overlay-common.dtsi" +#include "aston-23801-audio-kalama-overlay.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Kalama MTP,aston"; + + oplus,project-id = <23801 23861>; +}; diff --git a/qcom/audio/oplus/aston-23801-audio-kalama-overlay.dtsi b/qcom/audio/oplus/aston-23801-audio-kalama-overlay.dtsi new file mode 100644 index 00000000..da0c2882 --- /dev/null +++ b/qcom/audio/oplus/aston-23801-audio-kalama-overlay.dtsi @@ -0,0 +1,161 @@ +&kalama_snd { + qcom,audio-routing = + "AMIC1", "Analog Mic1", + "AMIC1", "MIC BIAS1", + "AMIC2", "Analog Mic2", + "AMIC2", "MIC BIAS2", + "AMIC3", "Analog Mic3", + "AMIC3", "MIC BIAS3", + "AMIC4", "Analog Mic4", + "AMIC4", "MIC BIAS4", + "AMIC5", "Analog Mic5", + "AMIC5", "MIC BIAS3", + "VA AMIC1", "Analog Mic1", + "VA AMIC1", "VA MIC BIAS1", + "VA AMIC2", "Analog Mic2", + "VA AMIC2", "VA MIC BIAS2", + "VA AMIC3", "Analog Mic3", + "VA AMIC3", "VA MIC BIAS3", + "VA AMIC4", "Analog Mic4", + "VA AMIC4", "VA MIC BIAS4", + "VA AMIC5", "Analog Mic5", + "VA AMIC5", "VA MIC BIAS3", + "TX DMIC0", "Digital Mic0", + "TX DMIC0", "MIC BIAS3", + "TX DMIC1", "Digital Mic1", + "TX DMIC1", "MIC BIAS3", + "TX DMIC2", "Digital Mic2", + "TX DMIC2", "MIC BIAS1", + "TX DMIC3", "Digital Mic3", + "TX DMIC3", "MIC BIAS1", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_OUT", + "HAP_IN", "PCM_OUT", + "RX_TX DEC0_INP", "TX DEC0 MUX", + "RX_TX DEC1_INP", "TX DEC1 MUX", + "RX_TX DEC2_INP", "TX DEC2 MUX", + "RX_TX DEC3_INP", "TX DEC3 MUX", + "TX SWR_INPUT", "WCD_TX_OUTPUT", + "VA SWR_INPUT", "VA_SWR_CLK", + "VA SWR_INPUT", "WCD_TX_OUTPUT", + "VA_AIF1 CAP", "VA_SWR_CLK", + "VA_AIF2 CAP", "VA_SWR_CLK", + "VA_AIF3 CAP", "VA_SWR_CLK", + "VA DMIC0", "Digital Mic0", + "VA DMIC1", "Digital Mic1", + "VA DMIC2", "Digital Mic2", + "VA DMIC3", "Digital Mic3", + "VA DMIC0", "VA MIC BIAS3", + "VA DMIC1", "VA MIC BIAS3", + "VA DMIC2", "VA MIC BIAS1", + "VA DMIC3", "VA MIC BIAS1"; + + qcom,mi2s-audio-intf = <1>; + qcom,tdm-audio-intf = <0>; + + qcom,sec-mi2s-gpios = <&cdc_sec_mi2s_gpios>; + + qcom,msm-mbhc-usbc-audio-supported = <1>; + qcom,msm-mbhc-hs-mic-max-threshold-mv = <2600>; + qcom,msm-mbhc-hs-mic-min-threshold-mv = <112>; /* 75*2700/1800 */ + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + oplus,mbhc-headset-micbias-alwayon = <1>; + oplus,mbhc-check-cross-conn = <1>; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd938x_codec>, <&swr_haptics>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd938x_codec", "swr-haptics"; + qcom,wsa-max-devs = <0>; +}; + +&spf_core_platform { + cdc_sec_mi2s_gpios: sec_i2s1_pinctrl { + status = "ok"; + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&i2s1_sck_active &i2s1_ws_active + &i2s1_sd0_active &i2s1_sd1_active>; + pinctrl-1 = <&i2s1_sck_sleep &i2s1_ws_sleep + &i2s1_sd0_sleep &i2s1_sd1_sleep>; + #gpio-cells = <0>; + }; +}; + +&qupv3_se6_i2c { + status = "ok"; + qcom,clk-freq-out = <400000>; + tfa98xx@34 { + compatible = "nxp,tfa98xx"; + reg = <0x34>; + reset-gpio = <&tlmm 56 0x00>; + tfa9874_vdd-supply = <&L15B>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_default_mohm = <6000>; + tfa_channel = <0>; + is_use_freq = <1>; + status = "ok"; + }; + tfa98xx@35 { + compatible = "nxp,tfa98xx"; + reg = <0x35>; + reset-gpio = <&tlmm 173 0x00>; + tfa9874_vdd-supply = <&L15B>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_default_mohm = <6000>; + tfa_channel = <1>; + is_use_freq = <1>; + status = "ok"; + }; +}; + +&soc { + oplus,audio-drv { + compatible = "oplus,asoc-audio"; + //for nxp speaker + oplus,speaker-vendor = "nxp"; + oplus,speaker-i2s-id = <1>; + oplus,speaker-codec-name = "tfa98xx.4-0034", "tfa98xx.4-0035"; + oplus,speaker-codec-dai-name = "tfa98xx-aif-4-34", "tfa98xx-aif-4-35"; + }; +}; + +&i2s1_sck_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_ws_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_sd0_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_sd1_active { + config { + drive-strength = <6>; /* 6 mA */ + bias-pull-down; + }; +}; + +&wcd938x_reset_active { + config { + drive-strength = <4>; + }; +}; + +&wcd938x_reset_sleep { + config { + drive-strength = <4>; + }; +}; diff --git a/qcom/audio/oplus/xigua-22851-audio-kalama-overlay.dts b/qcom/audio/oplus/xigua-22851-audio-kalama-overlay.dts new file mode 100644 index 00000000..9ea52de0 --- /dev/null +++ b/qcom/audio/oplus/xigua-22851-audio-kalama-overlay.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; +#include +#include "../kalama-audio-mtp.dts" +#include "kalama-audio-overlay-common.dtsi" +#include "xigua-22851-audio-kalama-overlay.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Kalama MTP,xigua"; + + oplus,project-id = <22851>; +}; diff --git a/qcom/audio/oplus/xigua-22851-audio-kalama-overlay.dtsi b/qcom/audio/oplus/xigua-22851-audio-kalama-overlay.dtsi new file mode 100644 index 00000000..1b0fae54 --- /dev/null +++ b/qcom/audio/oplus/xigua-22851-audio-kalama-overlay.dtsi @@ -0,0 +1,152 @@ +&kalama_snd { + qcom,audio-routing = + "AMIC1", "Analog Mic1", + "AMIC1", "MIC BIAS1", + "AMIC2", "Analog Mic2", + "AMIC2", "MIC BIAS2", + "AMIC3", "Analog Mic3", + "AMIC3", "MIC BIAS3", + "AMIC4", "Analog Mic4", + "AMIC4", "MIC BIAS4", + "AMIC5", "Analog Mic5", + "AMIC5", "MIC BIAS3", + "VA AMIC1", "Analog Mic1", + "VA AMIC1", "VA MIC BIAS1", + "VA AMIC2", "Analog Mic2", + "VA AMIC2", "VA MIC BIAS2", + "VA AMIC3", "Analog Mic3", + "VA AMIC3", "VA MIC BIAS3", + "VA AMIC4", "Analog Mic4", + "VA AMIC4", "VA MIC BIAS4", + "VA AMIC5", "Analog Mic5", + "VA AMIC5", "VA MIC BIAS3", + "TX DMIC0", "Digital Mic0", + "TX DMIC0", "MIC BIAS3", + "TX DMIC1", "Digital Mic1", + "TX DMIC1", "MIC BIAS3", + "TX DMIC2", "Digital Mic2", + "TX DMIC2", "MIC BIAS1", + "TX DMIC3", "Digital Mic3", + "TX DMIC3", "MIC BIAS1", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_OUT", + "HAP_IN", "PCM_OUT", + "RX_TX DEC0_INP", "TX DEC0 MUX", + "RX_TX DEC1_INP", "TX DEC1 MUX", + "RX_TX DEC2_INP", "TX DEC2 MUX", + "RX_TX DEC3_INP", "TX DEC3 MUX", + "TX SWR_INPUT", "WCD_TX_OUTPUT", + "VA SWR_INPUT", "VA_SWR_CLK", + "VA SWR_INPUT", "WCD_TX_OUTPUT", + "VA_AIF1 CAP", "VA_SWR_CLK", + "VA_AIF2 CAP", "VA_SWR_CLK", + "VA_AIF3 CAP", "VA_SWR_CLK", + "VA DMIC0", "Digital Mic0", + "VA DMIC1", "Digital Mic1", + "VA DMIC2", "Digital Mic2", + "VA DMIC3", "Digital Mic3", + "VA DMIC0", "VA MIC BIAS3", + "VA DMIC1", "VA MIC BIAS3", + "VA DMIC2", "VA MIC BIAS1", + "VA DMIC3", "VA MIC BIAS1"; + + qcom,mi2s-audio-intf = <1>; + qcom,tdm-audio-intf = <0>; + + qcom,sec-mi2s-gpios = <&cdc_sec_mi2s_gpios>; + + qcom,msm-mbhc-usbc-audio-supported = <1>; + qcom,msm-mbhc-hs-mic-max-threshold-mv = <2600>; + qcom,msm-mbhc-hs-mic-min-threshold-mv = <75>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + oplus,mbhc-headset-micbias-alwayon = <1>; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd938x_codec>, <&swr_haptics>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd938x_codec", "swr-haptics"; + qcom,wsa-max-devs = <0>; +}; + +&spf_core_platform { + cdc_sec_mi2s_gpios: sec_i2s1_pinctrl { + status = "ok"; + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&i2s1_sck_active &i2s1_ws_active + &i2s1_sd0_active &i2s1_sd1_active>; + pinctrl-1 = <&i2s1_sck_sleep &i2s1_ws_sleep + &i2s1_sd0_sleep &i2s1_sd1_sleep>; + #gpio-cells = <0>; + }; +}; + +&qupv3_se6_i2c { + status = "ok"; + qcom,clk-freq-out = <400000>; + tfa98xx@34 { + compatible = "nxp,tfa98xx"; + reg = <0x34>; + reset-gpio = <&tlmm 50 0x00>; + tfa9874_vdd-supply = <&L15B>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_channel = <0>; + is_use_freq = <1>; + status = "ok"; + }; + tfa98xx@35 { + compatible = "nxp,tfa98xx"; + reg = <0x35>; + reset-gpio = <&tlmm 173 0x00>; + tfa9874_vdd-supply = <&L15B>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_channel = <1>; + is_use_freq = <1>; + status = "ok"; + }; +}; + +&soc { + oplus,audio-drv { + compatible = "oplus,asoc-audio"; + //for nxp speaker + oplus,speaker-vendor = "nxp"; + oplus,speaker-i2s-id = <1>; + oplus,speaker-codec-name = "tfa98xx.4-0034", "tfa98xx.4-0035"; + oplus,speaker-codec-dai-name = "tfa98xx-aif-4-34", "tfa98xx-aif-4-35"; + }; +}; + +&i2s1_sck_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_ws_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_sd0_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_sd1_active { + config { + drive-strength = <6>; /* 6 mA */ + bias-pull-down; + }; +}; + +&wcd938x_reset_active { + config { + drive-strength = <6>; + }; +}; diff --git a/qcom/audio/oplus/xueying-22003-audio-kalama-overlay.dtsi b/qcom/audio/oplus/xueying-22003-audio-kalama-overlay.dtsi index 77a1d4bc..1d87e0cf 100644 --- a/qcom/audio/oplus/xueying-22003-audio-kalama-overlay.dtsi +++ b/qcom/audio/oplus/xueying-22003-audio-kalama-overlay.dtsi @@ -90,9 +90,11 @@ reg = <0x34>; reset-gpio = <&tlmm 50 0x00>; tfa9874_vdd-supply = <&L15B>; - tfa_min_range = <7000>; - tfa_max_range = <10000>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_default_mohm = <6200>; tfa_channel = <0>; + is_use_freq = <1>; status = "ok"; }; tfa98xx@35 { @@ -102,7 +104,9 @@ tfa9874_vdd-supply = <&L15B>; tfa_min_range = <5000>; tfa_max_range = <8000>; + tfa_default_mohm = <6200>; tfa_channel = <1>; + is_use_freq = <1>; status = "ok"; }; tfa98xx@36 { @@ -110,9 +114,11 @@ reg = <0x36>; reset-gpio = <&tlmm 56 0x00>; tfa9874_vdd-supply = <&L15B>; - tfa_min_range = <7000>; - tfa_max_range = <10000>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_default_mohm = <6200>; tfa_channel = <2>; + is_use_freq = <1>; status = "ok"; }; }; @@ -156,3 +162,9 @@ bias-pull-down; }; }; + +&wcd938x_reset_active { + config { + drive-strength = <6>; + }; +}; diff --git a/qcom/audio/oplus/zonda-22635-audio-kalama-overlay.dts b/qcom/audio/oplus/zonda-22635-audio-kalama-overlay.dts new file mode 100644 index 00000000..19c587b2 --- /dev/null +++ b/qcom/audio/oplus/zonda-22635-audio-kalama-overlay.dts @@ -0,0 +1,12 @@ +/dts-v1/; +/plugin/; +#include +#include "../kalama-audio-mtp.dts" +#include "kalama-audio-overlay-common.dtsi" +#include "zonda-22635-audio-kalama-overlay.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Kalama MTP,zonda"; + + oplus,project-id = <22635 22714 23603 23667>; +}; diff --git a/qcom/audio/oplus/zonda-22635-audio-kalama-overlay.dtsi b/qcom/audio/oplus/zonda-22635-audio-kalama-overlay.dtsi new file mode 100644 index 00000000..e2f62cbf --- /dev/null +++ b/qcom/audio/oplus/zonda-22635-audio-kalama-overlay.dtsi @@ -0,0 +1,146 @@ +&kalama_snd { + qcom,audio-routing = + "AMIC1", "Analog Mic1", + "AMIC1", "MIC BIAS1", + "AMIC2", "Analog Mic2", + "AMIC2", "MIC BIAS2", + "AMIC3", "Analog Mic3", + "AMIC3", "MIC BIAS3", + "AMIC4", "Analog Mic4", + "AMIC4", "MIC BIAS4", + "AMIC5", "Analog Mic5", + "AMIC5", "MIC BIAS3", + "VA AMIC1", "Analog Mic1", + "VA AMIC1", "VA MIC BIAS1", + "VA AMIC2", "Analog Mic2", + "VA AMIC2", "VA MIC BIAS2", + "VA AMIC3", "Analog Mic3", + "VA AMIC3", "VA MIC BIAS3", + "VA AMIC4", "Analog Mic4", + "VA AMIC4", "VA MIC BIAS4", + "VA AMIC5", "Analog Mic5", + "VA AMIC5", "VA MIC BIAS3", + "TX DMIC0", "Digital Mic0", + "TX DMIC0", "MIC BIAS3", + "TX DMIC1", "Digital Mic1", + "TX DMIC1", "MIC BIAS3", + "TX DMIC2", "Digital Mic2", + "TX DMIC2", "MIC BIAS1", + "TX DMIC3", "Digital Mic3", + "TX DMIC3", "MIC BIAS1", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_OUT", + "HAP_IN", "PCM_OUT", + "RX_TX DEC0_INP", "TX DEC0 MUX", + "RX_TX DEC1_INP", "TX DEC1 MUX", + "RX_TX DEC2_INP", "TX DEC2 MUX", + "RX_TX DEC3_INP", "TX DEC3 MUX", + "TX SWR_INPUT", "WCD_TX_OUTPUT", + "VA SWR_INPUT", "VA_SWR_CLK", + "VA SWR_INPUT", "WCD_TX_OUTPUT", + "VA_AIF1 CAP", "VA_SWR_CLK", + "VA_AIF2 CAP", "VA_SWR_CLK", + "VA_AIF3 CAP", "VA_SWR_CLK", + "VA DMIC0", "Digital Mic0", + "VA DMIC1", "Digital Mic1", + "VA DMIC2", "Digital Mic2", + "VA DMIC3", "Digital Mic3", + "VA DMIC0", "VA MIC BIAS3", + "VA DMIC1", "VA MIC BIAS3", + "VA DMIC2", "VA MIC BIAS1", + "VA DMIC3", "VA MIC BIAS1"; + + qcom,mi2s-audio-intf = <1>; + qcom,tdm-audio-intf = <0>; + + qcom,sec-mi2s-gpios = <&cdc_sec_mi2s_gpios>; + + qcom,msm-mbhc-usbc-audio-supported = <1>; + qcom,msm-mbhc-hs-mic-max-threshold-mv = <2600>; + qcom,msm-mbhc-hs-mic-min-threshold-mv = <75>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + oplus,mbhc-headset-micbias-alwayon = <1>; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd938x_codec>, <&swr_haptics>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd938x_codec", "swr-haptics"; + qcom,wsa-max-devs = <0>; +}; + +&spf_core_platform { + cdc_sec_mi2s_gpios: sec_i2s1_pinctrl { + status = "ok"; + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&i2s1_sck_active &i2s1_ws_active + &i2s1_sd0_active &i2s1_sd1_active>; + pinctrl-1 = <&i2s1_sck_sleep &i2s1_ws_sleep + &i2s1_sd0_sleep &i2s1_sd1_sleep>; + #gpio-cells = <0>; + }; +}; + +&qupv3_se6_i2c { + status = "ok"; + qcom,clk-freq-out = <400000>; + tfa98xx@34 { + compatible = "nxp,tfa98xx"; + reg = <0x34>; + reset-gpio = <&tlmm 50 0x00>; + tfa9874_vdd-supply = <&L15B>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_channel = <0>; + is_use_freq = <1>; + status = "ok"; + }; + tfa98xx@35 { + compatible = "nxp,tfa98xx"; + reg = <0x35>; + reset-gpio = <&tlmm 173 0x00>; + tfa9874_vdd-supply = <&L15B>; + tfa_min_range = <5000>; + tfa_max_range = <8000>; + tfa_channel = <1>; + is_use_freq = <1>; + status = "ok"; + }; +}; + +&soc { + oplus,audio-drv { + compatible = "oplus,asoc-audio"; + //for nxp speaker + oplus,speaker-vendor = "nxp"; + oplus,speaker-i2s-id = <1>; + oplus,speaker-codec-name = "tfa98xx.4-0034", "tfa98xx.4-0035"; + oplus,speaker-codec-dai-name = "tfa98xx-aif-4-34", "tfa98xx-aif-4-35"; + }; +}; + +&i2s1_sck_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_ws_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_sd0_active { + config { + drive-strength = <6>; /* 6 mA */ + }; +}; + +&i2s1_sd1_active { + config { + drive-strength = <6>; /* 6 mA */ + bias-pull-down; + }; +};