diff --git a/qcom/audio/Kbuild b/qcom/audio/Kbuild index 8c99c9ed..f8317eca 100644 --- a/qcom/audio/Kbuild +++ b/qcom/audio/Kbuild @@ -5,8 +5,10 @@ dtbo-y += kalama-audio.dtbo \ kalama-audio-cdp.dtbo \ kalama-audio-cdp-nfc.dtbo \ kalama-audio-wsa883x-cdp.dtbo \ + kalama-audio-cdp-apq.dtbo \ kalama-audio-mtp.dtbo \ kalama-audio-mtp-nfc.dtbo \ + kalama-audio-mtp-apq.dtbo \ kalama-audio-qrd.dtbo \ kalama-audio-atp.dtbo \ kalama-audio-rcm.dtbo \ @@ -30,6 +32,16 @@ dtbo-y += khaje-audio.dtbo \ khaje-nowcd.dtbo endif +ifeq ($(CONFIG_ARCH_CROW), y) +dtbo-y += crow-audio.dtbo \ + crow-audio-idp.dtbo \ + crow-audio-idp-wcd9395-aatc.dtbo \ + crow-audio-idp-wcd9395-dmic.dtbo \ + crow-audio-idp-wcd9395-wcd-dmic.dtbo \ + crow-audio-qrd.dtbo \ + crow-audio-atp.dtbo +endif + always-y := $(dtb-y) $(dtbo-y) subdir-y := $(dts-dirs) clean-files := *.dtb *.dtbo diff --git a/qcom/audio/crow-audio-atp.dts b/qcom/audio/crow-audio-atp.dts new file mode 100644 index 00000000..607b1412 --- /dev/null +++ b/qcom/audio/crow-audio-atp.dts @@ -0,0 +1,11 @@ +/dts-v1/; +/plugin/; + +#include "crow-audio-atp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Crow ATP"; + compatible = "qcom,crow-atp", "qcom,crow", "qcom,atp"; + qcom,msm-id = <608 0x10000>; + qcom,board-id = <33 0>; +}; diff --git a/qcom/audio/crow-audio-atp.dtsi b/qcom/audio/crow-audio-atp.dtsi new file mode 100644 index 00000000..bcddde3e --- /dev/null +++ b/qcom/audio/crow-audio-atp.dtsi @@ -0,0 +1 @@ +#include "crow-audio-idp.dtsi" diff --git a/qcom/audio/crow-audio-idp-wcd9395-aatc.dts b/qcom/audio/crow-audio-idp-wcd9395-aatc.dts new file mode 100644 index 00000000..3a3bcace --- /dev/null +++ b/qcom/audio/crow-audio-idp-wcd9395-aatc.dts @@ -0,0 +1,11 @@ +/dts-v1/; +/plugin/; + +#include "crow-audio-idp-wcd9395-aatc.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Crow IDP + WCD9395 AATC"; + compatible = "qcom,crow-idp", "qcom,crow", "qcom,idp"; + qcom,msm-id = <608 0x10000>; + qcom,board-id = <34 3>; +}; diff --git a/qcom/audio/crow-audio-idp-wcd9395-aatc.dtsi b/qcom/audio/crow-audio-idp-wcd9395-aatc.dtsi new file mode 100644 index 00000000..45ec7674 --- /dev/null +++ b/qcom/audio/crow-audio-idp-wcd9395-aatc.dtsi @@ -0,0 +1,145 @@ +#include "crow-audio-overlay.dtsi" + +&tx_swr_clk_active { + config { + drive-strength = <2>; + }; +}; + +&tx_swr_data0_active { + config { + drive-strength = <2>; + }; +}; + +&tx_swr_data1_active { + config { + drive-strength = <2>; + }; +}; + +&tx_swr_data2_active { + config { + drive-strength = <2>; + }; +}; + +&wcd939x_codec { + qcom,cdc-vdd-px-lpm-supported = <1>; + /* 0 for no crosstalk, 1 for digital crosstalk, and 2 for analog crosstalk */ + qcom,xtalk-config = <2>; + qcom,xtalk-r-gnd-int-fet-mohms = <200>; + qcom,xtalk-r-gnd-par-route1-mohms = <50>; + qcom,xtalk-r-gnd-par-route2-mohms = <50>; + qcom,xtalk-r-gnd-ext-fet-mohms = <650>; + qcom,xtalk-r-conn-par-load-neg-mohms = <125>; + qcom,xtalk-r-aud-int-fet-l-mohms = <200>; + qcom,xtalk-r-aud-int-fet-r-mohms = <200>; + qcom,xtalk-r-aud-ext-fet-l-mohms = <650>; + qcom,xtalk-r-aud-ext-fet-r-mohms = <650>; + qcom,xtalk-r-conn-par-load-pos-l-mohms = <7550>; + qcom,xtalk-r-conn-par-load-pos-r-mohms = <7550>; +}; + +&swr0 { + qcom,swr-num-dev = <2>; + + wsa884x_0220: wsa884x@02170220 { + status = "okay"; + }; + + wsa884x_0221: wsa884x@02170221 { + status = "okay"; + }; + + wsa883x_0221: wsa883x@02170221 { + status = "disabled"; + }; + + wsa883x_0222: wsa883x@02170222 { + status = "disabled"; + }; +}; + +&kalama_snd { + qcom,model = "crow-idp-wcd9395-aatc-snd-card"; + + 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 BIAS1", + "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 BIAS1", + "VA AMIC5", "Analog Mic5", + "VA AMIC5", "VA MIC BIAS3", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_EAR", "AUX_OUT", + "WSA SRC0_INP", "SRC0", + "WSA_TX DEC0_INP", "TX DEC0 MUX", + "WSA_TX DEC1_INP", "TX DEC1 MUX", + "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", + "SpkrLeft IN", "WSA_SPK1 OUT", + "SpkrRight IN", "WSA_SPK2 OUT", + "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"; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd939x_codec>, <&wsa884x_0220>, <&wsa884x_0221>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd939x_codec", "wsa-codec1", "wsa-codec2"; + qcom,msm-mbhc-usbc-audio-supported = <1>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,wcd-disable-legacy-surge; + wcd939x-i2c-handle = <&wcd_usbss>; + qcom,ext-disp-audio-rx = <1>; + qcom,pri-mi2s-gpios = <&fm_i2s0_gpios>; +}; + +&wcd939x_codec { + status = "okay"; +}; + +&wcd939x_tx_slave { + status = "okay"; +}; + +&wcd939x_rx_slave { + status = "okay"; +}; + +&wcd937x_codec { + status = "disabled"; +}; + +&wcd937x_tx_slave { + status = "disabled"; +}; + +&wcd937x_rx_slave { + status = "disabled"; +}; + +&fm_i2s0_gpios { + status = "ok"; +}; diff --git a/qcom/audio/crow-audio-idp-wcd9395-dmic.dts b/qcom/audio/crow-audio-idp-wcd9395-dmic.dts new file mode 100644 index 00000000..18c2c0dd --- /dev/null +++ b/qcom/audio/crow-audio-idp-wcd9395-dmic.dts @@ -0,0 +1,11 @@ +/dts-v1/; +/plugin/; + +#include "crow-audio-idp-wcd9395-dmic.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Crow IDP + WCD9395 DMIC"; + compatible = "qcom,crow-idp", "qcom,crow", "qcom,idp"; + qcom,msm-id = <608 0x10000>; + qcom,board-id = <34 2>; +}; diff --git a/qcom/audio/crow-audio-idp-wcd9395-dmic.dtsi b/qcom/audio/crow-audio-idp-wcd9395-dmic.dtsi new file mode 100644 index 00000000..3dc7306a --- /dev/null +++ b/qcom/audio/crow-audio-idp-wcd9395-dmic.dtsi @@ -0,0 +1,101 @@ +#include "crow-audio-overlay.dtsi" + +&swr0 { + qcom,swr-num-dev = <2>; + + wsa884x_0220: wsa884x@02170220 { + status = "okay"; + }; + + wsa884x_0221: wsa884x@02170221 { + status = "okay"; + }; + + wsa883x_0221: wsa883x@02170221 { + status = "disabled"; + }; + + wsa883x_0222: wsa883x@02170222 { + status = "disabled"; + }; +}; + +&kalama_snd { + qcom,model = "crow-idp-wcd9395-dmic-snd-card"; + qcom,audio-routing = + "AMIC2", "Analog Mic2", + "AMIC2", "MIC BIAS2", + "VA AMIC2", "Analog Mic2", + "VA AMIC2", "VA MIC BIAS2", + "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_EAR", "AUX_OUT", + "WSA SRC0_INP", "SRC0", + "WSA_TX DEC0_INP", "TX DEC0 MUX", + "WSA_TX DEC1_INP", "TX DEC1 MUX", + "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", + "SpkrLeft IN", "WSA_SPK1 OUT", + "SpkrRight IN", "WSA_SPK2 OUT", + "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"; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd939x_codec>, <&wsa884x_0220>, + <&wsa884x_0221>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd939x_codec", "wsa-codec1", + "wsa-codec2"; + wcd939x-i2c-handle = <&wcd_usbss>; + qcom,ext-disp-audio-rx = <1>; + qcom,pri-mi2s-gpios = <&fm_i2s0_gpios>; +}; + +&wcd937x_codec { + status = "disabled"; +}; + +&wcd937x_tx_slave { + status = "disabled"; +}; + +&wcd937x_rx_slave { + status = "disabled"; +}; + +&wcd939x_codec { + status = "okay"; +}; + +&wcd939x_tx_slave { + status = "okay"; +}; + +&wcd939x_rx_slave { + status = "okay"; +}; + +&fm_i2s0_gpios { + status = "ok"; +}; diff --git a/qcom/audio/crow-audio-idp-wcd9395-wcd-dmic.dts b/qcom/audio/crow-audio-idp-wcd9395-wcd-dmic.dts new file mode 100644 index 00000000..7fec03f6 --- /dev/null +++ b/qcom/audio/crow-audio-idp-wcd9395-wcd-dmic.dts @@ -0,0 +1,11 @@ +/dts-v1/; +/plugin/; + +#include "crow-audio-idp-wcd9395-wcd-dmic.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Crow IDP + WCD9395 WCD-DMIC"; + compatible = "qcom,crow-idp", "qcom,crow", "qcom,idp"; + qcom,msm-id = <608 0x10000>; + qcom,board-id = <34 1>; +}; diff --git a/qcom/audio/crow-audio-idp-wcd9395-wcd-dmic.dtsi b/qcom/audio/crow-audio-idp-wcd9395-wcd-dmic.dtsi new file mode 100644 index 00000000..ba2b7478 --- /dev/null +++ b/qcom/audio/crow-audio-idp-wcd9395-wcd-dmic.dtsi @@ -0,0 +1,97 @@ +#include "crow-audio-overlay.dtsi" + +&swr0 { + qcom,swr-num-dev = <2>; + + wsa884x_0220: wsa884x@02170220 { + status = "okay"; + }; + + wsa884x_0221: wsa884x@02170221 { + status = "okay"; + }; + + wsa883x_0221: wsa883x@02170221 { + status = "disabled"; + }; + + wsa883x_0222: wsa883x@02170222 { + status = "disabled"; + }; +}; + +&kalama_snd { + qcom,model = "crow-idp-wcd9395-wcd-dmic-snd-card"; + qcom,audio-routing = + "AMIC2", "Analog Mic2", + "AMIC2", "MIC BIAS2", + "VA AMIC2", "Analog Mic2", + "VA AMIC2", "VA MIC BIAS2", + "DMIC0", "Digital Mic0", + "DMIC0", "MIC BIAS3", + "DMIC1", "Digital Mic1", + "DMIC1", "MIC BIAS3", + "DMIC2", "Digital Mic2", + "DMIC2", "MIC BIAS1", + "DMIC3", "Digital Mic3", + "DMIC3", "MIC BIAS1", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_EAR", "AUX_OUT", + "WSA SRC0_INP", "SRC0", + "WSA_TX DEC0_INP", "TX DEC0 MUX", + "WSA_TX DEC1_INP", "TX DEC1 MUX", + "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", + "SpkrLeft IN", "WSA_SPK1 OUT", + "SpkrRight IN", "WSA_SPK2 OUT", + "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 DMIC2", "Digital Mic2", + "VA DMIC3", "Digital Mic3", + "VA DMIC0", "VA MIC BIAS3", + "VA DMIC2", "VA MIC BIAS1", + "VA DMIC3", "VA MIC BIAS1"; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd939x_codec>, <&wsa884x_0220>, <&wsa884x_0221>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd939x_codec", "wsa-codec1", "wsa-codec2"; + wcd939x-i2c-handle = <&wcd_usbss>; + qcom,ext-disp-audio-rx = <1>; + qcom,pri-mi2s-gpios = <&fm_i2s0_gpios>; +}; + +&wcd937x_codec { + status = "disabled"; +}; + +&wcd937x_tx_slave { + status = "disabled"; +}; + +&wcd937x_rx_slave { + status = "disabled"; +}; + +&wcd939x_codec { + status = "okay"; +}; + +&wcd939x_tx_slave { + status = "okay"; +}; + +&wcd939x_rx_slave { + status = "okay"; +}; + +&fm_i2s0_gpios { + status = "ok"; +}; diff --git a/qcom/audio/crow-audio-idp.dts b/qcom/audio/crow-audio-idp.dts new file mode 100644 index 00000000..92bb7b1e --- /dev/null +++ b/qcom/audio/crow-audio-idp.dts @@ -0,0 +1,11 @@ +/dts-v1/; +/plugin/; + +#include "crow-audio-idp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Crow IDP"; + compatible = "qcom,crow-idp", "qcom,crow", "qcom,idp"; + qcom,msm-id = <608 0x10000>; + qcom,board-id = <34 0>,<34 4>; +}; diff --git a/qcom/audio/crow-audio-idp.dtsi b/qcom/audio/crow-audio-idp.dtsi new file mode 100644 index 00000000..8faaeb6d --- /dev/null +++ b/qcom/audio/crow-audio-idp.dtsi @@ -0,0 +1,14 @@ +#include "crow-audio-overlay.dtsi" + +&fm_i2s0_gpios { + status = "ok"; +}; + +&kalama_snd { + qcom,model = "crow-idp-wsa883x-snd-card"; + qcom,sku-model = "crow-idp-wsa883x-sku1-snd-card"; + nvmem-cells = <&adsp_variant>; + nvmem-cell-names = "adsp_variant"; + fsa4480-i2c-handle = <&fsa4480>; + qcom,pri-mi2s-gpios = <&fm_i2s0_gpios>; +}; diff --git a/qcom/audio/crow-audio-overlay.dtsi b/qcom/audio/crow-audio-overlay.dtsi new file mode 100644 index 00000000..67216c41 --- /dev/null +++ b/qcom/audio/crow-audio-overlay.dtsi @@ -0,0 +1,749 @@ +#include +#include +#include +#include +#include "crow-lpi.dtsi" + +&lpass_cdc { + qcom,num-macros = <4>; + qcom,lpass-cdc-version = <6>; + #address-cells = <1>; + #size-cells = <1>; + lpass-cdc-clk-rsc-mngr { + compatible = "qcom,lpass-cdc-clk-rsc-mngr"; + qcom,fs-gen-sequence = <0x3000 0x1 0x1>, <0x3004 0x3 0x3>, + <0x3004 0x3 0x1>, <0x3080 0x2 0x2>; + qcom,rx_mclk_mode_muxsel = <0x033A40D8>; + qcom,wsa_mclk_mode_muxsel = <0x033A20E0>; + qcom,va_mclk_mode_muxsel = <0x03420000>; + clock-names = "tx_core_clk", "rx_core_clk", "wsa_core_clk", + "wsa2_core_clk", "rx_tx_core_clk", + "wsa_tx_core_clk", "wsa2_tx_core_clk", "va_core_clk"; + clocks = <&clock_audio_tx_1 0>, <&clock_audio_rx_1 0>, + <&clock_audio_wsa_1 0>, + <&clock_audio_wsa_2 0>, <&clock_audio_rx_tx 0>, + <&clock_audio_wsa_tx 0>, <&clock_audio_wsa2_tx 0>, + <&clock_audio_va_1 0>; + }; + + va_macro: va-macro@33F0000 { + compatible = "qcom,lpass-cdc-va-macro"; + reg = <0x33F0000 0x0>; + clock-names = "lpass_audio_hw_vote"; + clocks = <&lpass_audio_hw_vote 0>; + qcom,va-dmic-sample-rate = <600000>; + qcom,va-clk-mux-select = <1>; + qcom,va-island-mode-muxsel = <0x03420000>; + qcom,default-clk-id = ; + qcom,use-clk-id = ; + qcom,is-used-swr-gpio = <1>; + qcom,va-swr-gpios = <&va_swr_gpios>; + swr2: va_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <3>; + qcom,mipi-sdw-block-packing-mode = <1>; + swrm-io-base = <0x33b0000 0x0>; + interrupts = + , + ; + interrupt-names = "swr_master_irq", "swr_wake_irq"; + qcom,swr-wakeup-required = <1>; + qcom,swr-num-ports = <3>; + qcom,swr-port-mapping = <1 SWRM_TX1_CH1 0x1>, + <1 SWRM_TX1_CH2 0x2>, + <1 SWRM_TX1_CH3 0x4>, <1 SWRM_TX1_CH4 0x8>, + <2 SWRM_TX2_CH1 0x1>, <2 SWRM_TX2_CH2 0x2>, + <2 SWRM_TX2_CH3 0x4>, <2 SWRM_TX2_CH4 0x8>, + <3 SWRM_TX3_CH1 0x1>, <3 SWRM_TX3_CH2 0x2>, + <3 SWRM_TX3_CH3 0x4>, <3 SWRM_TX3_CH4 0x8>; + qcom,swr-num-dev = <5>; + qcom,swr-clock-stop-mode0 = <1>; + qcom,swr-mstr-irq-wakeup-capable = <1>; + qcom,is-always-on = <1>; + wcd937x_tx_slave: wcd937x-tx-slave { + compatible = "qcom,wcd937x-slave"; + reg = <0x0A 0x01170223>; + }; + + wcd939x_tx_slave: wcd939x-tx-slave { + status = "disabled"; + compatible = "qcom,wcd939x-slave"; + reg = <0x0E 0x01170223>; + }; + + swr_dmic_04: dmic_swr@58350223 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350223>; + sound-name-prefix = "SWR_MIC3"; + qcom,codec-name = "swr-dmic.04"; + qcom,swr-dmic-supply = <3>; + qcom,wcd-handle = <&wcd937x_codec>; + status = "disabled"; + }; + + swr_dmic_03: dmic_swr@58350222 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350222>; + sound-name-prefix = "SWR_MIC2"; + qcom,codec-name = "swr-dmic.03"; + qcom,swr-dmic-supply = <1>; + qcom,wcd-handle = <&wcd937x_codec>; + status = "disabled"; + }; + + swr_dmic_02: dmic_swr@58350221 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350221>; + sound-name-prefix = "SWR_MIC1"; + qcom,codec-name = "swr-dmic.02"; + qcom,swr-dmic-supply = <1>; + qcom,wcd-handle = <&wcd937x_codec>; + status = "disabled"; + }; + + swr_dmic_01: dmic_swr@58350220 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350220>; + sound-name-prefix = "SWR_MIC0"; + qcom,codec-name = "swr-dmic.01"; + qcom,swr-dmic-supply = <3>; + qcom,wcd-handle = <&wcd937x_codec>; + status = "disabled"; + }; + }; + }; + + tx_macro: tx-macro@3220000 { + compatible = "qcom,lpass-cdc-tx-macro"; + reg = <0x3220000 0x0>; + qcom,default-clk-id = ; + qcom,tx-dmic-sample-rate = <2400000>; + qcom,is-used-swr-gpio = <0>; + }; + + rx_macro: rx-macro@3200000 { + compatible = "qcom,lpass-cdc-rx-macro"; + reg = <0x3200000 0x0>; + qcom,rx-swr-gpios = <&rx_swr_gpios>; + qcom,rx_mclk_mode_muxsel = <0x033A40D8>; + qcom,rx-bcl-pmic-params = /bits/ 8 <0x00 0x03 0x48>; + qcom,default-clk-id = ; + clock-names = "rx_mclk2_2x_clk"; + clocks = <&clock_audio_rx_mclk2_2x_clk 0>; + swr1: rx_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <2>; + qcom,mipi-sdw-block-packing-mode = <1>; + swrm-io-base = <0x3210000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <6>; + qcom,swr-port-mapping = <1 HPH_L 0x1>, + <1 HPH_R 0x2>, <2 CLSH 0x1>, + <3 COMP_L 0x1>, <3 COMP_R 0x2>, + <4 LO 0x1>, <5 DSD_L 0x1>, + <5 DSD_R 0x2>, <6 PCM_OUT1 0x01>; + qcom,swr-num-dev = <2>; + qcom,swr-clock-stop-mode0 = <1>; + swr_haptics: swr_haptics@f0170220 { + compatible = "qcom,pm8550b-swr-haptics"; + reg = <0x02 0xf0170220>; + qcom,rx_swr_ch_map = <0 0x01 0x01 0 PCM_OUT1>; + status = "disabled"; + }; + + wcd937x_rx_slave: wcd937x-rx-slave { + compatible = "qcom,wcd937x-slave"; + reg = <0x0A 0x01170224>; + }; + + wcd939x_rx_slave: wcd939x-rx-slave { + status = "disabled"; + compatible = "qcom,wcd939x-slave"; + reg = <0x0E 0x01170224>; + }; + }; + }; + + wsa_macro: wsa-macro@3240000 { + compatible = "qcom,lpass-cdc-wsa-macro"; + reg = <0x3240000 0x0>; + qcom,wsa-swr-gpios = <&wsa_swr_gpios>; + qcom,wsa-bat-cfgs= <1>, <1>; + qcom,wsa-rloads= <2>, <2>; + qcom,wsa-system-gains= <0 9>, <0 9>; + qcom,wsa-bcl-pmic-params = /bits/ 8 <0x00 0x03 0x48>; + qcom,default-clk-id = ; + qcom,thermal-max-state = <11>; + qcom,noise-gate-mode = <2>; + #cooling-cells = <2>; + swr0: wsa_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <1>; + qcom,mipi-sdw-block-packing-mode = <0>; + swrm-io-base = <0x3250000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <8>; + qcom,swr-clock-stop-mode0 = <1>; + qcom,swr-port-mapping = <1 SPKR_L 0x1>, + <2 SPKR_L_COMP 0xF>, <3 SPKR_L_BOOST 0x3>, + <4 SPKR_R 0x1>, <5 SPKR_R_COMP 0xF>, + <6 SPKR_R_BOOST 0x3>, <7 SPKR_L_VI 0x3>, + <8 SPKR_R_VI 0x3>; + qcom,swr-num-dev = <2>; + qcom,dynamic-port-map-supported = <0>; + wsa884x_0220: wsa884x@02170220 { + status = "disabled"; + compatible = "qcom,wsa884x"; + reg = <0x4 0x2170220>; + qcom,spkr-sd-n-node = <&wsa_spkr_en00>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L7B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "SpkrLeft"; + }; + + wsa884x_0221: wsa884x@02170221 { + status = "disabled"; + compatible = "qcom,wsa884x"; + reg = <0x4 0x2170221>; + qcom,spkr-sd-n-node = <&wsa_spkr_en01>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L7B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "SpkrRight"; + }; + + wsa883x_0221: wsa883x@02170221 { + compatible = "qcom,wsa883x"; + reg = <0x2 0x2170221>; + qcom,spkr-sd-n-node = <&wsa_spkr_en00>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + + cdc-vdd-1p8-supply = <&L7B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "SpkrLeft"; + }; + + wsa883x_0222: wsa883x@02170222 { + compatible = "qcom,wsa883x"; + reg = <0x2 0x2170222>; + qcom,spkr-sd-n-node = <&wsa_spkr_en01>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + + cdc-vdd-1p8-supply = <&L7B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "SpkrRight"; + }; + }; + }; + + wsa2_macro: wsa2-macro@31B0000 { + compatible = "qcom,lpass-cdc-wsa2-macro"; + reg = <0x031B0000 0x0>; + qcom,wsa2-swr-gpios = <&wsa2_swr_gpios>; + qcom,wsa-bat-cfgs= <1>, <1>; + qcom,wsa-rloads= <2>, <2>; + qcom,wsa-system-gains= <0 9>, <0 9>; + qcom,wsa2-bcl-pmic-params = /bits/ 8 <0x00 0x03 0x48>; + qcom,default-clk-id = ; + qcom,thermal-max-state = <11>; + qcom,noise-gate-mode = <2>; + #cooling-cells = <2>; + status = "disabled"; + swr3: wsa2_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <4>; + qcom,mipi-sdw-block-packing-mode = <0>; + swrm-io-base = <0x31F0000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <13>; + qcom,swr-clock-stop-mode0 = <1>; + qcom,swr-port-mapping = <1 SPKR_L 0x1>, + <2 SPKR_L_COMP 0xF>, <3 SPKR_L_BOOST 0x3>, + <4 SPKR_R 0x1>, <5 SPKR_R_COMP 0xF>, + <6 SPKR_R_BOOST 0x3>, <7 PBR 0x3>, + <8 SPKR_HAPT 0x3>, <9 OCPM 0x3>, + <10 SPKR_L_VI 0x3>, <11 SPKR_R_VI 0x3>, + <12 SPKR_IPCM 0x3>, <13 CPS 0x3>; + qcom,swr-num-dev = <2>; + qcom,dynamic-port-map-supported = <0>; + wsa884x_2_0220: wsa884x@02170220 { + compatible = "qcom,wsa884x_2"; + reg = <0x4 0x2170220>; + qcom,spkr-sd-n-node = <&wsa_spkr_en00>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa2_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L7B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <30000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "Spkr2Left"; + }; + + wsa884x_2_0221: wsa884x@02170221 { + compatible = "qcom,wsa884x_2"; + reg = <0x4 0x2170221>; + qcom,spkr-sd-n-node = <&wsa_spkr_en01>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa2_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L7B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <30000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "Spkr2Right"; + }; + }; + }; + + wcd937x_codec: wcd937x-codec { + compatible = "qcom,wcd937x-codec"; + qcom,split-codec = <1>; + qcom,rx_swr_ch_map = <0 HPH_L 0x1 0 HPH_L>, + <0 HPH_R 0x2 0 HPH_R>, <1 CLSH 0x1 0 CLSH>, + <2 COMP_L 0x1 0 COMP_L>, <2 COMP_R 0x2 0 COMP_R>, + <3 LO 0x1 0 LO>, <4 DSD_L 0x1 0 DSD_L>, + <4 DSD_R 0x2 0 DSD_R>; + qcom,tx_swr_ch_map = <0 ADC1 0x1 4800000 SWRM_TX1_CH1>, + <1 ADC2 0x1 4800000 SWRM_TX2_CH1>, + <1 ADC3 0x2 4800000 SWRM_TX2_CH2>, + <2 DMIC0 0x1 0 SWRM_TX1_CH4>, + <2 DMIC1 0x2 0 SWRM_TX2_CH1>, + <2 MBHC 0x4 4800000 SWRM_TX2_CH2>, + <3 DMIC2 0x1 0 SWRM_TX2_CH3>, + <3 DMIC3 0x2 0 SWRM_TX2_CH4>, + <3 DMIC4 0x4 0 SWRM_TX3_CH1>, + <3 DMIC5 0x8 0 SWRM_TX3_CH2>; + + qcom,swr-tx-port-params = + , , , , + , , , , + , , , , + , , , ; + + qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>; + qcom,rx-slave = <&wcd937x_rx_slave>; + qcom,tx-slave = <&wcd937x_tx_slave>; + + cdc-vdd-rxtx-supply = <&L7B>; + qcom,cdc-vdd-rxtx-voltage = <1800000 1800000>; + qcom,cdc-vdd-rxtx-current = <13890>; + + cdc-vddpx-supply = <&L7B>; + qcom,cdc-vddpx-voltage = <1800000 1800000>; + qcom,cdc-vddpx-current = <13890>; + + cdc-vdd-buck-supply = <&L7B>; + qcom,cdc-vdd-buck-voltage = <1800000 1800000>; + qcom,cdc-vdd-buck-current = <361110>; + + cdc-vdd-mic-bias-supply = <&BOB>; + qcom,cdc-vdd-mic-bias-voltage = <3328000 3328000>; + qcom,cdc-vdd-mic-bias-current = <6760>; + + qcom,cdc-micbias1-mv = <1800>; + qcom,cdc-micbias2-mv = <1800>; + qcom,cdc-micbias3-mv = <1800>; + + qcom,cdc-static-supplies = "cdc-vdd-rxtx", + "cdc-vddpx"; + qcom,cdc-on-demand-supplies = "cdc-vdd-buck"; + }; + + wcd939x_codec: wcd939x-codec { + status = "disabled"; + compatible = "qcom,wcd939x-codec"; + qcom,split-codec = <1>; + qcom,rx_swr_ch_map = <0 HPH_L 0x1 0 HPH_L>, + <0 HPH_R 0x2 0 HPH_R>, <1 CLSH 0x1 0 CLSH>, + <2 COMP_L 0x1 0 COMP_L>, <2 COMP_R 0x2 0 COMP_R>, + <3 LO 0x1 0 LO>, <4 DSD_L 0x1 0 DSD_L>, + <4 DSD_R 0x2 0 DSD_R>; + + qcom,tx_swr_ch_map = <0 ADC1 0x1 0 SWRM_TX1_CH1>, + <0 ADC2 0x2 0 SWRM_TX1_CH2>, + <1 ADC3 0x1 0 SWRM_TX1_CH3>, + <1 ADC4 0x2 0 SWRM_TX1_CH4>, + <2 DMIC0 0x1 0 SWRM_TX2_CH1>, + <2 DMIC1 0x2 0 SWRM_TX2_CH2>, + <2 MBHC 0x4 0 SWRM_TX2_CH3>, + <2 DMIC2 0x4 0 SWRM_TX2_CH3>, + <2 DMIC3 0x8 0 SWRM_TX2_CH4>, + <3 DMIC4 0x1 0 SWRM_TX3_CH1>, + <3 DMIC5 0x2 0 SWRM_TX3_CH2>, + <3 DMIC6 0x4 0 SWRM_TX3_CH3>, + <3 DMIC7 0x8 0 SWRM_TX3_CH4>; + + qcom,swr-tx-port-params = + , , , , + , , , , + , , , , + , , , ; + + qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>; + qcom,rx-slave = <&wcd939x_rx_slave>; + qcom,tx-slave = <&wcd939x_tx_slave>; + + cdc-vdd-rx-supply = <&L7B>; + qcom,cdc-vdd-rx-voltage = <1800000 1800000>; + qcom,cdc-vdd-rx-current = <45000>; + qcom,cdc-vdd-rx-lpm-supported = <1>; + + cdc-vdd-tx-supply = <&L7B>; + qcom,cdc-vdd-tx-voltage = <1800000 1800000>; + qcom,cdc-vdd-tx-current = <45000>; + qcom,cdc-vdd-tx-lpm-supported = <1>; + + cdc-vdd-buck-supply = <&L7B>; + qcom,cdc-vdd-buck-voltage = <1800000 1800000>; + qcom,cdc-vdd-buck-current = <650000>; + qcom,cdc-vdd-buck-lpm-supported = <1>; + + cdc-vdd-mic-bias-supply = <&BOB>; + qcom,cdc-vdd-mic-bias-voltage = <3328000 3328000>; + qcom,cdc-vdd-mic-bias-current = <30000>; + + cdc-vdd-px-supply = <&L7B>; + qcom,cdc-vdd-px-voltage = <1800000 1800000>; + qcom,cdc-vdd-px-current = <15000>; + qcom,cdc-vdd-px-lpm-supported = <1>; + + qcom,cdc-micbias1-mv = <1800>; + qcom,cdc-micbias2-mv = <1800>; + qcom,cdc-micbias3-mv = <1800>; + qcom,cdc-micbias4-mv = <1800>; + + qcom,cdc-static-supplies = "cdc-vdd-rx", + "cdc-vdd-tx", + "cdc-vdd-mic-bias", + "cdc-vdd-px"; + qcom,cdc-on-demand-supplies = "cdc-vdd-buck"; + }; + +}; + +&spf_core_platform { + kalama_snd: sound { + qcom,model = "crow-idp-wsa883x-snd-card"; + qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>, <1>; + qcom,mi2s-tdm-is-hw-vote-needed = <1>, <0>, <1>, <0>, <0>, <0>; + qcom,wcn-bt = <1>; + qcom,ext-disp-audio-rx = <1>; + qcom,tdm-max-slots = <8>; + qcom,tdm-clk-attribute = <0x1>, <0x1>, <0x1>, <0x1>, <0x1>, <0x1>; + qcom,mi2s-clk-attribute = <0x1>, <0x1>, <0x1>, <0x1>, <0x1>, <0x1>; + 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 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", + "WSA SRC0_INP", "SRC0", + "WSA_TX DEC0_INP", "TX DEC0 MUX", + "WSA_TX DEC1_INP", "TX DEC1 MUX", + "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", + "SpkrLeft IN", "WSA_SPK1 OUT", + "SpkrRight IN", "WSA_SPK2 OUT", + "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,msm-mbhc-usbc-audio-supported = <0>; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-mbhc-gnd-swh = <1>; + + qcom,cdc-dmic01-gpios = <&cdc_dmic01_gpios>; + qcom,cdc-dmic23-gpios = <&cdc_dmic23_gpios>; + qcom,cdc-dmic45-gpios = <&cdc_dmic45_gpios>; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd937x_codec>, <&wsa883x_0221>, + <&wsa883x_0222>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd937x_codec", "wsa-codec1", + "wsa-codec2"; + qcom,wsa-max-devs = <2>; + qcom,msm_audio_ssr_devs = <&audio_gpr>, <&lpi_tlmm>, + <&lpass_cdc>; + qcom,upd_backends_used = "wcd"; + qcom,upd_lpass_reg_addr = <0x00000418 0x33B0300>; + qcom,upd_ear_pa_reg_addr = <0x300A>; + }; + + fm_i2s0_gpios: fm_i2s0_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&i2s0_sck_active &i2s0_ws_active + &i2s0_sd0_active>; + pinctrl-1 = <&i2s0_sck_sleep &i2s0_ws_sleep + &i2s0_sd0_sleep>; + #gpio-cells = <0>; + }; + + wsa_swr_gpios: wsa_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&wsa_swr_clk_active &wsa_swr_data_active>; + pinctrl-1 = <&wsa_swr_clk_sleep &wsa_swr_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + wsa2_swr_gpios: wsa2_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&wsa2_swr_clk_active &wsa2_swr_data_active>; + pinctrl-1 = <&wsa2_swr_clk_sleep &wsa2_swr_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + rx_swr_gpios: rx_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&rx_swr_clk_active &rx_swr_data_active + &rx_swr_data1_active>; + pinctrl-1 = <&rx_swr_clk_sleep &rx_swr_data_sleep + &rx_swr_data1_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + va_swr_gpios: tx_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&tx_swr_clk_active &tx_swr_data0_active + &tx_swr_data1_active &tx_swr_data2_active>; + pinctrl-1 = <&tx_swr_clk_sleep &tx_swr_data0_sleep + &tx_swr_data1_sleep &tx_swr_data2_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic01_gpios: cdc_dmic01_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic01_clk_active &cdc_dmic01_data_active>; + pinctrl-1 = <&cdc_dmic01_clk_sleep &cdc_dmic01_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic23_gpios: cdc_dmic23_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic23_clk_active &cdc_dmic23_data_active>; + pinctrl-1 = <&cdc_dmic23_clk_sleep &cdc_dmic23_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic45_gpios: cdc_dmic45_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic45_clk_active &cdc_dmic45_data_active>; + pinctrl-1 = <&cdc_dmic45_clk_sleep &cdc_dmic45_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic67_gpios: cdc_dmic67_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic67_clk_active &cdc_dmic67_data_active>; + pinctrl-1 = <&cdc_dmic67_clk_sleep &cdc_dmic67_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; +}; + +&soc { + wsa_spkr_en00: wsa_spkr_en1_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&spkr_00_sd_n_active>; + pinctrl-1 = <&spkr_00_sd_n_sleep>; + qcom,lpi-gpios; + }; + + wsa_spkr_en01: wsa_spkr_en2_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&spkr_01_sd_n_active>; + pinctrl-1 = <&spkr_01_sd_n_sleep>; + qcom,lpi-gpios; + }; + + wcd_rst_gpio: msm_cdc_pinctrl@32 { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&wcd_reset_active>; + pinctrl-1 = <&wcd_reset_sleep>; + }; + + + clock_audio_va_1: va_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x307>; + #clock-cells = <1>; + }; + + clock_audio_wsa_1: wsa_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x309>; + #clock-cells = <1>; + }; + + clock_audio_wsa_2: wsa2_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x310>; + #clock-cells = <1>; + }; + + clock_audio_rx_1: rx_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <22579200>; + qcom,codec-lpass-clk-id = <0x30E>; + #clock-cells = <1>; + }; + + clock_audio_rx_tx: rx_core_tx_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x312>; + #clock-cells = <1>; + }; + + clock_audio_tx_1: tx_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x30C>; + #clock-cells = <1>; + }; + + clock_audio_wsa_tx: wsa_core_tx_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x314>; + #clock-cells = <1>; + }; + + clock_audio_wsa2_tx: wsa2_core_tx_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x316>; + #clock-cells = <1>; + }; + + clock_audio_rx_mclk2_2x_clk: rx_mclk2_2x_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x318>; + #clock-cells = <1>; + }; +}; + +&adsp_loader { + nvmem-cells = <&adsp_variant>; + nvmem-cell-names = "adsp_variant"; + adsp-fw-names = "adsp2.mdt"; + adsp-fw-bit-values = <0x7>; +}; diff --git a/qcom/audio/crow-audio-qrd.dts b/qcom/audio/crow-audio-qrd.dts new file mode 100644 index 00000000..7f40fa92 --- /dev/null +++ b/qcom/audio/crow-audio-qrd.dts @@ -0,0 +1,11 @@ +/dts-v1/; +/plugin/; + +#include "crow-audio-qrd.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. Crow QRD"; + compatible = "qcom,crow-qrd", "qcom,crow", "qcom,qrd"; + qcom,msm-id = <608 0x10000>; + qcom,board-id = <11 0>; +}; diff --git a/qcom/audio/crow-audio-qrd.dtsi b/qcom/audio/crow-audio-qrd.dtsi new file mode 100644 index 00000000..de7d554d --- /dev/null +++ b/qcom/audio/crow-audio-qrd.dtsi @@ -0,0 +1,68 @@ +#include "crow-audio-overlay.dtsi" + +&tx_swr_clk_active { + config { + drive-strength = <2>; + }; +}; + +&tx_swr_data0_active { + config { + drive-strength = <2>; + }; +}; + +&tx_swr_data1_active { + config { + drive-strength = <2>; + }; +}; + +&tx_swr_data2_active { + config { + drive-strength = <2>; + }; +}; + +&kalama_snd { + qcom,model = "crow-qrd-wsa883x-snd-card"; + qcom,sku-model = "crow-qrd-wsa883x-sku1-snd-card"; + nvmem-cells = <&adsp_variant>; + nvmem-cell-names = "adsp_variant"; + 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 BIAS1", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_OUT", + "WSA SRC0_INP", "SRC0", + "WSA_TX DEC0_INP", "TX DEC0 MUX", + "WSA_TX DEC1_INP", "TX DEC1 MUX", + "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", + "SpkrLeft IN", "WSA_SPK1 OUT", + "SpkrRight IN", "WSA_SPK2 OUT", + "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"; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd937x_codec>, <&wsa883x_0221>, <&wsa883x_0222>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd937x_codec", "wsa-codec1", "wsa-codec2"; + qcom,msm-mbhc-usbc-audio-supported = <1>; + qcom,msm-mbhc-hphl-swh = <0>; + qcom,msm-mbhc-gnd-swh = <0>; + qcom,wsa-max-devs = <2>; + fsa4480-i2c-handle = <&fsa4480>; +}; diff --git a/qcom/audio/crow-audio.dts b/qcom/audio/crow-audio.dts new file mode 100644 index 00000000..7ae05021 --- /dev/null +++ b/qcom/audio/crow-audio.dts @@ -0,0 +1,16 @@ +/dts-v1/; +/plugin/; + +#include +#include +#include +#include + +#include "crow-audio.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. crow"; + compatible = "qcom,crow", "qcom,crowp"; + qcom,msm-id = <608 0x10000>; + qcom,board-id = <0 0>; +}; diff --git a/qcom/audio/crow-audio.dtsi b/qcom/audio/crow-audio.dtsi new file mode 100644 index 00000000..304b33b6 --- /dev/null +++ b/qcom/audio/crow-audio.dtsi @@ -0,0 +1,154 @@ +#include +#include +#include "msm-audio-lpass.dtsi" + +&soc { + spf_core_platform: spf_core_platform { + compatible = "qcom,spf-core-platform"; + }; + + lpass_core_hw_vote: vote_lpass_core_hw { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + #clock-cells = <1>; + }; + + lpass_audio_hw_vote: vote_lpass_audio_hw { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + #clock-cells = <1>; + }; +}; + +&glink_edge { + audio_gpr: qcom,gpr { + compatible = "qcom,gpr"; + qcom,glink-channels = "adsp_apps"; + qcom,intents = <0x200 20>; + reg = ; + + spf_core { + compatible = "qcom,spf_core"; + reg = ; + }; + + audio-pkt { + compatible = "qcom,audio-pkt"; + qcom,audiopkt-ch-name = "apr_audio_svc"; + reg = ; + }; + + audio_prm: q6prm { + compatible = "qcom,audio_prm"; + reg = ; + }; + }; +}; + +&spf_core_platform { + + msm_audio_ion: qcom,msm-audio-ion { + compatible = "qcom,msm-audio-ion"; + qcom,smmu-version = <2>; + qcom,smmu-enabled; + iommus = <&apps_smmu 0x1001 0x0>, <&apps_smmu 0x1061 0x0>; + qcom,iommu-dma-addr-pool = <0x10000000 0x10000000>; + qcom,smmu-sid-mask = /bits/ 64 <0xf>; + dma-coherent; + }; + + msm_audio_ion_cma: qcom,msm-audio-ion-cma { + compatible = "qcom,msm-audio-ion-cma"; + }; + + lpi_tlmm: lpi_pinctrl@3440000 { + compatible = "qcom,lpi-pinctrl"; + reg = <0x3440000 0x0>; + qcom,slew-reg = <0x34da000 0x0>; + qcom,gpios-count = <23>; + gpio-controller; + #gpio-cells = <2>; + qcom,lpi-offset-tbl = <0x00000000>, <0x00001000>, + <0x00002000>, <0x00003000>, + <0x00004000>, <0x00005000>, + <0x00006000>, <0x00007000>, + <0x00008000>, <0x00009000>, + <0x0000A000>, <0x0000B000>, + <0x0000C000>, <0x0000D000>, + <0x0000E000>, <0x0000F000>, + <0x00010000>, <0x00011000>, + <0x00012000>, <0x00013000>, + <0x00014000>, <0x00015000>, + <0x00016000>; + qcom,lpi-slew-offset-tbl = <0x00000000>, <0x00000002>, + <0x00000004>, <0x00000008>, + <0x0000000A>, <0x0000000C>, + <0x00000000>, <0x00000000>, + <0x00000000>, <0x00000000>, + <0x00000010>, <0x00000012>, + <0x00000000>, <0x00000000>, + <0x00000006>, <0x00000014>, + <0x00000016>, <0x00000000>, + <0x00000000>, <0x00000000>, + <0x00000000>, <0x00000000>, + <0x00000000>; + + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + }; + + lpass_cdc: lpass-cdc { + compatible = "qcom,lpass-cdc"; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + lpass-cdc-clk-rsc-mngr { + compatible = "qcom,lpass-cdc-clk-rsc-mngr"; + }; + + va_macro: va-macro@33F0000 { + swr2: va_swr_master { + }; + }; + + tx_macro: tx-macro@3220000 { + }; + + rx_macro: rx-macro@3200000 { + swr1: rx_swr_master { + }; + }; + + wsa_macro: wsa-macro@3240000 { + swr0: wsa_swr_master { + }; + }; + + wsa2_macro: wsa2-macro@31B0000 { + swr3: wsa2_swr_master { + }; + }; + }; + + kalama_snd: sound { + compatible = "qcom,kalama-asoc-snd"; + qcom,mi2s-audio-intf = <1>; + qcom,wcn-bt = <0>; + qcom,ext-disp-audio-rx = <0>; + qcom,afe-rxtx-lb = <0>; + + clock-names = "lpass_audio_hw_vote"; + clocks = <&lpass_audio_hw_vote 0>; + }; +}; + +&aliases { + swr0 = "/soc/spf_core_platform/lpass-cdc/wsa-macro@3240000/wsa_swr_master"; + swr1 = "/soc/spf_core_platform/lpass-cdc/rx-macro@3200000/rx_swr_master"; + swr2 = "/soc/spf_core_platform/lpass-cdc/va-macro@33F0000/va_swr_master"; + swr3 = "/soc/spf_core_platform/lpass-cdc/wsa2-macro@31B0000/wsa2_swr_master"; +}; + diff --git a/qcom/audio/crow-lpi.dtsi b/qcom/audio/crow-lpi.dtsi new file mode 100644 index 00000000..af864f23 --- /dev/null +++ b/qcom/audio/crow-lpi.dtsi @@ -0,0 +1,2574 @@ +&lpi_tlmm { + quat_mi2s_sck { + quat_mi2s_sck_sleep: quat_mi2s_sck_sleep { + mux { + pins = "gpio0"; + function = "func2"; + }; + + config { + pins = "gpio0"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_mi2s_sck_active: quat_mi2s_sck_active { + mux { + pins = "gpio0"; + function = "func2"; + }; + + config { + pins = "gpio0"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_mi2s_ws { + quat_mi2s_ws_sleep: quat_mi2s_ws_sleep { + mux { + pins = "gpio1"; + function = "func2"; + }; + + config { + pins = "gpio1"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_mi2s_ws_active: quat_mi2s_ws_active { + mux { + pins = "gpio1"; + function = "func2"; + }; + + config { + pins = "gpio1"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_mi2s_sd0 { + quat_mi2s_sd0_sleep: quat_mi2s_sd0_sleep { + mux { + pins = "gpio2"; + function = "func2"; + }; + + config { + pins = "gpio2"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_mi2s_sd0_active: quat_mi2s_sd0_active { + mux { + pins = "gpio2"; + function = "func2"; + }; + + config { + pins = "gpio2"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_mi2s_sd1 { + quat_mi2s_sd1_sleep: quat_mi2s_sd1_sleep { + mux { + pins = "gpio3"; + function = "func2"; + }; + + config { + pins = "gpio3"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_mi2s_sd1_active: quat_mi2s_sd1_active { + mux { + pins = "gpio3"; + function = "func2"; + }; + + config { + pins = "gpio3"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_mi2s_sd2 { + quat_mi2s_sd2_sleep: quat_mi2s_sd2_sleep { + mux { + pins = "gpio4"; + function = "func2"; + }; + + config { + pins = "gpio4"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_mi2s_sd2_active: quat_mi2s_sd2_active { + mux { + pins = "gpio4"; + function = "func2"; + }; + + config { + pins = "gpio4"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_mi2s_sd3 { + quat_mi2s_sd3_sleep: quat_mi2s_sd3_sleep { + mux { + pins = "gpio5"; + function = "func3"; + }; + + config { + pins = "gpio5"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_mi2s_sd3_active: quat_mi2s_sd3_active { + mux { + pins = "gpio5"; + function = "func3"; + }; + + config { + pins = "gpio5"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s1_sck { + lpi_i2s1_sck_sleep: lpi_i2s1_sck_sleep { + mux { + pins = "gpio6"; + function = "func2"; + }; + + config { + pins = "gpio6"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s1_sck_active: lpi_i2s1_sck_active { + mux { + pins = "gpio6"; + function = "func2"; + }; + + config { + pins = "gpio6"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s1_ws { + lpi_i2s1_ws_sleep: lpi_i2s1_ws_sleep { + mux { + pins = "gpio7"; + function = "func2"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s1_ws_active: lpi_i2s1_ws_active { + mux { + pins = "gpio7"; + function = "func2"; + }; + + config { + pins = "gpio7"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s1_sd0 { + lpi_i2s1_sd0_sleep: lpi_i2s1_sd0_sleep { + mux { + pins = "gpio8"; + function = "func2"; + }; + + config { + pins = "gpio8"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s1_sd0_active: lpi_i2s1_sd0_active { + mux { + pins = "gpio8"; + function = "func2"; + }; + + config { + pins = "gpio8"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s1_sd1 { + lpi_i2s1_sd1_sleep: lpi_i2s1_sd1_sleep { + mux { + pins = "gpio9"; + function = "func2"; + }; + + config { + pins = "gpio9"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s1_sd1_active: lpi_i2s1_sd1_active { + mux { + pins = "gpio9"; + function = "func2"; + }; + + config { + pins = "gpio9"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s2_sck { + lpi_i2s2_sck_sleep: lpi_i2s2_sck_sleep { + mux { + pins = "gpio10"; + function = "func2"; + }; + + config { + pins = "gpio10"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s2_sck_active: lpi_i2s2_sck_active { + mux { + pins = "gpio10"; + function = "func2"; + }; + + config { + pins = "gpio10"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s2_ws { + lpi_i2s2_ws_sleep: lpi_i2s2_ws_sleep { + mux { + pins = "gpio11"; + function = "func2"; + }; + + config { + pins = "gpio11"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s2_ws_active: lpi_i2s2_ws_active { + mux { + pins = "gpio11"; + function = "func2"; + }; + + config { + pins = "gpio11"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s2_sd0 { + lpi_i2s2_sd0_sleep: lpi_i2s2_sd0_sleep { + mux { + pins = "gpio12"; + function = "func2"; + }; + + config { + pins = "gpio12"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s2_sd0_active: lpi_i2s2_sd0_active { + mux { + pins = "gpio12"; + function = "func2"; + }; + + config { + pins = "gpio12"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s2_sd1 { + lpi_i2s2_sd1_sleep: lpi_i2s2_sd1_sleep { + mux { + pins = "gpio13"; + function = "func2"; + }; + + config { + pins = "gpio13"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s2_sd1_active: lpi_i2s2_sd1_active { + mux { + pins = "gpio13"; + function = "func2"; + }; + + config { + pins = "gpio13"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s3_sck { + lpi_i2s3_sck_sleep: lpi_i2s3_sck_sleep { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s3_sck_active: lpi_i2s3_sck_active { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s3_ws { + lpi_i2s3_ws_sleep: lpi_i2s3_ws_sleep { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s3_ws_active: lpi_i2s3_ws_active { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s3_sd0 { + lpi_i2s3_sd0_sleep: lpi_i2s3_sd0_sleep { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s3_sd0_active: lpi_i2s3_sd0_active { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s3_sd1 { + lpi_i2s3_sd1_sleep: lpi_i2s3_sd1_sleep { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s3_sd1_active: lpi_i2s3_sd1_active { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s4_sck { + lpi_i2s4_sck_sleep: lpi_i2s4_sck_sleep { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s4_sck_active: lpi_i2s_sck_active { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s4_ws { + lpi_i2s4_ws_sleep: lpi_i2s4_ws_sleep { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s4_ws_active: lpi_i2s4_ws_active { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s4_sd0 { + lpi_i2s4_sd0_sleep: lpi_i2s4_sd0_sleep { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s4_sd0_active: lpi_i2s4_sd0_active { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_i2s4_sd1 { + lpi_i2s4_sd1_sleep: lpi_i2s4_sd1_sleep { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_i2s4_sd1_active: lpi_i2s4_sd1_active { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_tdm_sck { + quat_tdm_sck_sleep: quat_tdm_sck_sleep { + mux { + pins = "gpio0"; + function = "func2"; + }; + + config { + pins = "gpio0"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_tdm_sck_active: quat_tdm_sck_active { + mux { + pins = "gpio0"; + function = "func2"; + }; + + config { + pins = "gpio0"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_tdm_ws { + quat_tdm_ws_sleep: quat_tdm_ws_sleep { + mux { + pins = "gpio1"; + function = "func2"; + }; + + config { + pins = "gpio1"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_tdm_ws_active: quat_tdm_ws_active { + mux { + pins = "gpio1"; + function = "func2"; + }; + + config { + pins = "gpio1"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_tdm_sd0 { + quat_tdm_sd0_sleep: quat_tdm_sd0_sleep { + mux { + pins = "gpio2"; + function = "func2"; + }; + + config { + pins = "gpio2"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_tdm_sd0_active: quat_tdm_sd0_active { + mux { + pins = "gpio2"; + function = "func2"; + }; + + config { + pins = "gpio2"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_tdm_sd1 { + quat_tdm_sd1_sleep: quat_tdm_sd1_sleep { + mux { + pins = "gpio3"; + function = "func2"; + }; + + config { + pins = "gpio3"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_tdm_sd1_active: quat_tdm_sd1_active { + mux { + pins = "gpio3"; + function = "func2"; + }; + + config { + pins = "gpio3"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_tdm_sd2 { + quat_tdm_sd2_sleep: quat_tdm_sd2_sleep { + mux { + pins = "gpio4"; + function = "func2"; + }; + + config { + pins = "gpio4"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_tdm_sd2_active: quat_tdm_sd2_active { + mux { + pins = "gpio4"; + function = "func2"; + }; + + config { + pins = "gpio4"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_tdm_sd3 { + quat_tdm_sd3_sleep: quat_tdm_sd3_sleep { + mux { + pins = "gpio5"; + function = "func3"; + }; + + config { + pins = "gpio5"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_tdm_sd3_active: quat_tdm_sd3_active { + mux { + pins = "gpio5"; + function = "func3"; + }; + + config { + pins = "gpio5"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm1_sck { + lpi_tdm1_sck_sleep: lpi_tdm1_sck_sleep { + mux { + pins = "gpio6"; + function = "func2"; + }; + + config { + pins = "gpio6"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm1_sck_active: lpi_tdm1_sck_active { + mux { + pins = "gpio6"; + function = "func2"; + }; + + config { + pins = "gpio6"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm1_ws { + lpi_tdm1_ws_sleep: lpi_tdm1_ws_sleep { + mux { + pins = "gpio7"; + function = "func2"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm1_ws_active: lpi_tdm1_ws_active { + mux { + pins = "gpio7"; + function = "func2"; + }; + + config { + pins = "gpio7"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm1_sd0 { + lpi_tdm1_sd0_sleep: lpi_tdm1_sd0_sleep { + mux { + pins = "gpio8"; + function = "func2"; + }; + + config { + pins = "gpio8"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm1_sd0_active: lpi_tdm1_sd0_active { + mux { + pins = "gpio8"; + function = "func2"; + }; + + config { + pins = "gpio8"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm1_sd1 { + lpi_tdm1_sd1_sleep: lpi_tdm1_sd1_sleep { + mux { + pins = "gpio9"; + function = "func2"; + }; + + config { + pins = "gpio9"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm1_sd1_active: lpi_tdm1_sd1_active { + mux { + pins = "gpio9"; + function = "func2"; + }; + + config { + pins = "gpio9"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm2_sck { + lpi_tdm2_sck_sleep: lpi_tdm2_sck_sleep { + mux { + pins = "gpio10"; + function = "func1"; + }; + + config { + pins = "gpio10"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm2_sck_active: lpi_tdm2_sck_active { + mux { + pins = "gpio10"; + function = "func1"; + }; + + config { + pins = "gpio10"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm2_ws { + lpi_tdm2_ws_sleep: lpi_tdm2_ws_sleep { + mux { + pins = "gpio11"; + function = "func1"; + }; + + config { + pins = "gpio11"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm2_ws_active: lpi_tdm2_ws_active { + mux { + pins = "gpio11"; + function = "func1"; + }; + + config { + pins = "gpio11"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm2_sd0 { + lpi_tdm2_sd0_sleep: lpi_tdm2_sd0_sleep { + mux { + pins = "gpio15"; + function = "func1"; + }; + + config { + pins = "gpio15"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm2_sd0_active: lpi_tdm2_sd0_active { + mux { + pins = "gpio15"; + function = "func1"; + }; + + config { + pins = "gpio15"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm2_sd1 { + lpi_tdm2_sd1_sleep: lpi_tdm2_sd1_sleep { + mux { + pins = "gpio16"; + function = "func1"; + }; + + config { + pins = "gpio16"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm2_sd1_active: lpi_tdm2_sd1_active { + mux { + pins = "gpio16"; + function = "func1"; + }; + + config { + pins = "gpio16"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm3_sck { + lpi_tdm3_sck_sleep: lpi_tdm3_sck_sleep { + mux { + pins = "gpio12"; + function = "func2"; + }; + + config { + pins = "gpio12"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm3_sck_active: lpi_tdm3_sck_active { + mux { + pins = "gpio12"; + function = "func2"; + }; + + config { + pins = "gpio12"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm3_ws { + lpi_tdm3_ws_sleep: lpi_tdm3_ws_sleep { + mux { + pins = "gpio13"; + function = "func2"; + }; + + config { + pins = "gpio13"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm3_ws_active: lpi_tdm3_ws_active { + mux { + pins = "gpio13"; + function = "func2"; + }; + + config { + pins = "gpio13"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm3_sd0 { + lpi_tdm3_sd0_sleep: lpi_tdm3_sd0_sleep { + mux { + pins = "gpio17"; + function = "func2"; + }; + + config { + pins = "gpio17"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm3_sd0_active: lpi_tdm3_sd0_active { + mux { + pins = "gpio17"; + function = "func2"; + }; + + config { + pins = "gpio17"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm3_sd1 { + lpi_tdm3_sd1_sleep: lpi_tdm3_sd1_sleep { + mux { + pins = "gpio18"; + function = "func2"; + }; + + config { + pins = "gpio18"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm3_sd1_active: lpi_tdm3_sd1_active { + mux { + pins = "gpio18"; + function = "func2"; + }; + + config { + pins = "gpio18"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm4_sck { + lpi_tdm4_sck_sleep: lpi_tdm4_sck_sleep { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm4_sck_active: lpi_tdm4_sck_active { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm4_ws { + lpi_tdm4_ws_sleep: lpi_tdm4_ws_sleep { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm4_ws_active: lpi_tdm4_ws_active { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm4_sd0 { + lpi_tdm4_sd0_sleep: lpi_tdm4_sd0_sleep { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm4_sd0_active: lpi_tdm4_sd0_active { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_tdm4_sd1 { + lpi_tdm4_sd1_sleep: lpi_tdm4_sd1_sleep { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_tdm4_sd1_active: lpi_tdm4_sd1_active { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_aux_sck { + quat_aux_sck_sleep: quat_aux_sck_sleep { + mux { + pins = "gpio0"; + function = "func2"; + }; + + config { + pins = "gpio0"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_aux_sck_active: quat_aux_sck_active { + mux { + pins = "gpio0"; + function = "func2"; + }; + + config { + pins = "gpio0"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_aux_ws { + quat_aux_ws_sleep: quat_aux_ws_sleep { + mux { + pins = "gpio1"; + function = "func2"; + }; + + config { + pins = "gpio1"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_aux_ws_active: quat_aux_ws_active { + mux { + pins = "gpio1"; + function = "func2"; + }; + + config { + pins = "gpio1"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_aux_sd0 { + quat_aux_sd0_sleep: quat_aux_sd0_sleep { + mux { + pins = "gpio2"; + function = "func2"; + }; + + config { + pins = "gpio2"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_aux_sd0_active: quat_aux_sd0_active { + mux { + pins = "gpio2"; + function = "func2"; + }; + + config { + pins = "gpio2"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_aux_sd1 { + quat_aux_sd1_sleep: quat_aux_sd1_sleep { + mux { + pins = "gpio3"; + function = "func2"; + }; + + config { + pins = "gpio3"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_aux_sd1_active: quat_aux_sd1_active { + mux { + pins = "gpio3"; + function = "func2"; + }; + + config { + pins = "gpio3"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_aux_sd2 { + quat_aux_sd2_sleep: quat_aux_sd2_sleep { + mux { + pins = "gpio4"; + function = "func2"; + }; + + config { + pins = "gpio4"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_aux_sd2_active: quat_aux_sd2_active { + mux { + pins = "gpio4"; + function = "func2"; + }; + + config { + pins = "gpio4"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + quat_aux_sd3 { + quat_aux_sd3_sleep: quat_aux_sd3_sleep { + mux { + pins = "gpio5"; + function = "func3"; + }; + + config { + pins = "gpio5"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + quat_aux_sd3_active: quat_aux_sd3_active { + mux { + pins = "gpio5"; + function = "func3"; + }; + + config { + pins = "gpio5"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux1_sck { + lpi_aux1_sck_sleep: lpi_aux1_sck_sleep { + mux { + pins = "gpio6"; + function = "func2"; + }; + + config { + pins = "gpio6"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux1_sck_active: lpi_aux1_sck_active { + mux { + pins = "gpio6"; + function = "func2"; + }; + + config { + pins = "gpio6"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux1_ws { + lpi_aux1_ws_sleep: lpi_aux1_ws_sleep { + mux { + pins = "gpio7"; + function = "func2"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux1_ws_active: lpi_aux1_ws_active { + mux { + pins = "gpio7"; + function = "func2"; + }; + + config { + pins = "gpio7"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux1_sd0 { + lpi_aux1_sd0_sleep: lpi_aux1_sd0_sleep { + mux { + pins = "gpio8"; + function = "func2"; + }; + + config { + pins = "gpio8"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux1_sd0_active: lpi_aux1_sd0_active { + mux { + pins = "gpio8"; + function = "func2"; + }; + + config { + pins = "gpio8"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux1_sd1 { + lpi_aux1_sd1_sleep: lpi_aux1_sd1_sleep { + mux { + pins = "gpio9"; + function = "func2"; + }; + + config { + pins = "gpio9"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux1_sd1_active: lpi_aux1_sd1_active { + mux { + pins = "gpio9"; + function = "func2"; + }; + + config { + pins = "gpio9"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux2_sck { + lpi_aux2_sck_sleep: lpi_aux2_sck_sleep { + mux { + pins = "gpio10"; + function = "func1"; + }; + + config { + pins = "gpio10"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux2_sck_active: lpi_aux2_sck_active { + mux { + pins = "gpio10"; + function = "func1"; + }; + + config { + pins = "gpio10"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux2_ws { + lpi_aux2_ws_sleep: lpi_aux2_ws_sleep { + mux { + pins = "gpio11"; + function = "func1"; + }; + + config { + pins = "gpio11"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux2_ws_active: lpi_aux2_ws_active { + mux { + pins = "gpio11"; + function = "func1"; + }; + + config { + pins = "gpio11"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux2_sd0 { + lpi_aux2_sd0_sleep: lpi_aux2_sd0_sleep { + mux { + pins = "gpio15"; + function = "func1"; + }; + + config { + pins = "gpio15"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux2_sd0_active: lpi_aux2_sd0_active { + mux { + pins = "gpio15"; + function = "func1"; + }; + + config { + pins = "gpio15"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux2_sd1 { + lpi_aux2_sd1_sleep: lpi_aux2_sd1_sleep { + mux { + pins = "gpio16"; + function = "func1"; + }; + + config { + pins = "gpio16"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux2_sd1_active: lpi_aux2_sd1_active { + mux { + pins = "gpio16"; + function = "func1"; + }; + + config { + pins = "gpio16"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux3_sck { + lpi_aux3_sck_sleep: lpi_aux3_sck_sleep { + mux { + pins = "gpio12"; + function = "func2"; + }; + + config { + pins = "gpio12"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux3_sck_active: lpi_aux3_sck_active { + mux { + pins = "gpio12"; + function = "func2"; + }; + + config { + pins = "gpio12"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux3_ws { + lpi_aux3_ws_sleep: lpi_aux3_ws_sleep { + mux { + pins = "gpio13"; + function = "func2"; + }; + + config { + pins = "gpio13"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux3_ws_active: lpi_aux3_ws_active { + mux { + pins = "gpio13"; + function = "func2"; + }; + + config { + pins = "gpio13"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux3_sd0 { + lpi_aux3_sd0_sleep: lpi_aux3_sd0_sleep { + mux { + pins = "gpio17"; + function = "func2"; + }; + + config { + pins = "gpio17"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux3_sd0_active: lpi_aux3_sd0_active { + mux { + pins = "gpio17"; + function = "func2"; + }; + + config { + pins = "gpio17"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux3_sd1 { + lpi_aux3_sd1_sleep: lpi_aux3_sd1_sleep { + mux { + pins = "gpio18"; + function = "func2"; + }; + + config { + pins = "gpio18"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux3_sd1_active: lpi_aux3_sd1_active { + mux { + pins = "gpio18"; + function = "func2"; + }; + + config { + pins = "gpio18"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux4_sck { + lpi_aux4_sck_sleep: lpi_aux4_sck_sleep { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux4_sck_active: lpi_aux4_sck_active { + mux { + pins = "gpio19"; + function = "func1"; + }; + + config { + pins = "gpio19"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux4_ws { + lpi_aux4_ws_sleep: lpi_aux4_ws_sleep { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux4_ws_active: lpi_aux4_ws_active { + mux { + pins = "gpio20"; + function = "func1"; + }; + + config { + pins = "gpio20"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux4_sd0 { + lpi_aux4_sd0_sleep: lpi_aux4_sd0_sleep { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux4_sd0_active: lpi_aux4_sd0_active { + mux { + pins = "gpio21"; + function = "func1"; + }; + + config { + pins = "gpio21"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + lpi_aux4_sd1 { + lpi_aux4_sd1_sleep: lpi_aux4_sd1_sleep { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; /* PULL DOWN */ + input-enable; + }; + }; + + lpi_aux4_sd1_active: lpi_aux4_sd1_active { + mux { + pins = "gpio22"; + function = "func1"; + }; + + config { + pins = "gpio22"; + drive-strength = <8>; /* 8 mA */ + bias-disable; /* NO PULL */ + output-high; + }; + }; + }; + + /* WSA speaker reset pins */ + spkr_00_sd_n { + spkr_00_sd_n_sleep: spkr_00_sd_n_sleep { + mux { + pins = "gpio21"; + function = "gpio"; + }; + + config { + pins = "gpio21"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; + input-enable; + }; + }; + + spkr_00_sd_n_active: spkr_00_sd_n_active { + mux { + pins = "gpio21"; + function = "gpio"; + }; + + config { + pins = "gpio21"; + drive-strength = <16>; /* 16 mA */ + bias-disable; + output-high; + }; + }; + }; + + spkr_01_sd_n { + spkr_01_sd_n_sleep: spkr_01_sd_n_sleep { + mux { + pins = "gpio22"; + function = "gpio"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; /* 2 mA */ + bias-pull-down; + input-enable; + }; + }; + + spkr_01_sd_n_active: spkr_01_sd_n_active { + mux { + pins = "gpio22"; + function = "gpio"; + }; + + config { + pins = "gpio22"; + drive-strength = <16>; /* 16 mA */ + bias-disable; + output-high; + }; + }; + }; + + wsa_swr_clk_pin { + wsa_swr_clk_sleep: wsa_swr_clk_sleep { + mux { + pins = "gpio10"; + function = "func1"; + }; + + config { + pins = "gpio10"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + wsa_swr_clk_active: wsa_swr_clk_active { + mux { + pins = "gpio10"; + function = "func1"; + }; + + config { + pins = "gpio10"; + drive-strength = <2>; + slew-rate = <1>; + bias-disable; + }; + }; + }; + + wsa_swr_data_pin { + wsa_swr_data_sleep: wsa_swr_data_sleep { + mux { + pins = "gpio11"; + function = "func1"; + }; + + config { + pins = "gpio11"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + wsa_swr_data_active: wsa_swr_data_active { + mux { + pins = "gpio11"; + function = "func1"; + }; + + config { + pins = "gpio11"; + drive-strength = <2>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + }; + + wsa2_swr_clk_pin { + wsa2_swr_clk_sleep: wsa2_swr_clk_sleep { + mux { + pins = "gpio12"; + function = "func1"; + }; + + config { + pins = "gpio12"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + wsa2_swr_clk_active: wsa2_swr_clk_active { + mux { + pins = "gpio12"; + function = "func1"; + }; + + config { + pins = "gpio12"; + drive-strength = <2>; + slew-rate = <1>; + bias-disable; + }; + }; + }; + + wsa2_swr_data_pin { + wsa2_swr_data_sleep: wsa2_swr_data_sleep { + mux { + pins = "gpio13"; + function = "func1"; + }; + + config { + pins = "gpio13"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + wsa2_swr_data_active: wsa2_swr_data_active { + mux { + pins = "gpio13"; + function = "func1"; + }; + + config { + pins = "gpio13"; + drive-strength = <2>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + }; + + tx_swr_clk_sleep: tx_swr_clk_sleep { + mux { + pins = "gpio0"; + function = "func1"; + input-enable; + bias-pull-down; + }; + + config { + pins = "gpio0"; + drive-strength = <2>; + }; + }; + + tx_swr_clk_active: tx_swr_clk_active { + mux { + pins = "gpio0"; + function = "func1"; + }; + + config { + pins = "gpio0"; + drive-strength = <4>; + slew-rate = <1>; + bias-disable; + }; + }; + + tx_swr_data0_sleep: tx_swr_data0_sleep { + mux { + pins = "gpio1"; + function = "func1"; + }; + + config { + pins = "gpio1"; + drive-strength = <2>; + input-enable; + bias-bus-hold; + }; + }; + + tx_swr_data0_active: tx_swr_data0_active { + mux { + pins = "gpio1"; + function = "func1"; + }; + + config { + pins = "gpio1"; + drive-strength = <4>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + + tx_swr_data1_sleep: tx_swr_data1_sleep { + mux { + pins = "gpio2"; + function = "func1"; + }; + + config { + pins = "gpio2"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + tx_swr_data1_active: tx_swr_data1_active { + mux { + pins = "gpio2"; + function = "func1"; + }; + + config { + pins = "gpio2"; + drive-strength = <4>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + + tx_swr_data2_sleep: tx_swr_data2_sleep { + mux { + pins = "gpio14"; + function = "func1"; + }; + + config { + pins = "gpio14"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + tx_swr_data2_active: tx_swr_data2_active { + mux { + pins = "gpio14"; + function = "func1"; + }; + + config { + pins = "gpio14"; + drive-strength = <4>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + + rx_swr_clk_sleep: rx_swr_clk_sleep { + mux { + pins = "gpio3"; + function = "func1"; + }; + + config { + pins = "gpio3"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + rx_swr_clk_active: rx_swr_clk_active { + mux { + pins = "gpio3"; + function = "func1"; + }; + + config { + pins = "gpio3"; + drive-strength = <2>; + slew-rate = <1>; + bias-disable; + }; + }; + + rx_swr_data_sleep: rx_swr_data_sleep { + mux { + pins = "gpio4"; + function = "func1"; + }; + + config { + pins = "gpio4"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + rx_swr_data_active: rx_swr_data_active { + mux { + pins = "gpio4"; + function = "func1"; + }; + + config { + pins = "gpio4"; + drive-strength = <2>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + + rx_swr_data1_sleep: rx_swr_data1_sleep { + mux { + pins = "gpio5"; + function = "func1"; + }; + + config { + pins = "gpio5"; + drive-strength = <2>; + input-enable; + bias-pull-down; + }; + }; + + rx_swr_data1_active: rx_swr_data1_active { + mux { + pins = "gpio5"; + function = "func1"; + }; + + config { + pins = "gpio5"; + drive-strength = <2>; + slew-rate = <1>; + bias-bus-hold; + }; + }; + + cdc_dmic01_clk_active: dmic01_clk_active { + mux { + pins = "gpio6"; + function = "func1"; + }; + + config { + pins = "gpio6"; + drive-strength = <8>; + output-high; + }; + }; + + cdc_dmic01_clk_sleep: dmic01_clk_sleep { + mux { + pins = "gpio6"; + function = "func1"; + }; + + config { + pins = "gpio6"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + + cdc_dmic01_data_active: dmic01_data_active { + mux { + pins = "gpio7"; + function = "func1"; + }; + + config { + pins = "gpio7"; + drive-strength = <8>; + input-enable; + }; + }; + + cdc_dmic01_data_sleep: dmic01_data_sleep { + mux { + pins = "gpio7"; + function = "func1"; + }; + + config { + pins = "gpio7"; + drive-strength = <2>; + pull-down; + input-enable; + }; + }; + + cdc_dmic23_clk_active: dmic23_clk_active { + mux { + pins = "gpio8"; + function = "func1"; + }; + + config { + pins = "gpio8"; + drive-strength = <8>; + output-high; + }; + }; + + cdc_dmic23_clk_sleep: dmic23_clk_sleep { + mux { + pins = "gpio8"; + function = "func1"; + }; + + config { + pins = "gpio8"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + + cdc_dmic23_data_active: dmic23_data_active { + mux { + pins = "gpio9"; + function = "func1"; + }; + + config { + pins = "gpio9"; + drive-strength = <8>; + input-enable; + }; + }; + + cdc_dmic23_data_sleep: dmic23_data_sleep { + mux { + pins = "gpio9"; + function = "func1"; + }; + + config { + pins = "gpio9"; + drive-strength = <2>; + pull-down; + input-enable; + }; + }; + + cdc_dmic45_clk_active: dmic45_clk_active { + mux { + pins = "gpio12"; + function = "func3"; + }; + + config { + pins = "gpio12"; + drive-strength = <8>; + output-high; + }; + }; + + cdc_dmic45_clk_sleep: dmic45_clk_sleep { + mux { + pins = "gpio12"; + function = "func3"; + }; + + config { + pins = "gpio12"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + + cdc_dmic45_data_active: dmic45_data_active { + mux { + pins = "gpio13"; + function = "func3"; + }; + + config { + pins = "gpio13"; + drive-strength = <8>; + input-enable; + }; + }; + + cdc_dmic45_data_sleep: dmic45_data_sleep { + mux { + pins = "gpio13"; + function = "func3"; + }; + + config { + pins = "gpio13"; + drive-strength = <2>; + pull-down; + input-enable; + }; + }; + + cdc_dmic67_clk_active: dmic67_clk_active { + mux { + pins = "gpio21"; + function = "func2"; + }; + + config { + pins = "gpio21"; + drive-strength = <8>; + output-high; + }; + }; + + cdc_dmic67_clk_sleep: dmic67_clk_sleep { + mux { + pins = "gpio21"; + function = "func2"; + }; + + config { + pins = "gpio21"; + drive-strength = <2>; + bias-disable; + output-low; + }; + }; + + cdc_dmic67_data_active: dmic67_data_active { + mux { + pins = "gpio22"; + function = "func3"; + }; + + config { + pins = "gpio22"; + drive-strength = <8>; + input-enable; + }; + }; + + cdc_dmic67_data_sleep: dmic67_data_sleep { + mux { + pins = "gpio22"; + function = "func3"; + }; + + config { + pins = "gpio22"; + drive-strength = <2>; + pull-down; + input-enable; + }; + }; +}; diff --git a/qcom/audio/kalama-audio-apq-overlay.dtsi b/qcom/audio/kalama-audio-apq-overlay.dtsi new file mode 100644 index 00000000..3652f85b --- /dev/null +++ b/qcom/audio/kalama-audio-apq-overlay.dtsi @@ -0,0 +1,664 @@ +#include +#include +#include +#include +#include "kalama-lpi.dtsi" + +&lpass_cdc { + qcom,num-macros = <3>; + qcom,lpass-cdc-version = <7>; + #address-cells = <1>; + #size-cells = <1>; + lpass-cdc-clk-rsc-mngr { + compatible = "qcom,lpass-cdc-clk-rsc-mngr"; + qcom,fs-gen-sequence = <0x3000 0x1 0x1>, <0x3004 0x3 0x3>, + <0x3004 0x3 0x1>, <0x3080 0x2 0x2>; + qcom,rx_mclk_mode_muxsel = <0x06BEC0D8>; + qcom,wsa_mclk_mode_muxsel = <0x06BEA100>; + qcom,va_mclk_mode_muxsel = <0x06E28000>; + clock-names = "tx_core_clk", "rx_core_clk", "wsa_core_clk", + "wsa2_core_clk", "rx_tx_core_clk", + "wsa_tx_core_clk", "wsa2_tx_core_clk", "va_core_clk"; + clocks = <&clock_audio_tx_1 0>, <&clock_audio_rx_1 0>, + <&clock_audio_wsa_1 0>, + <&clock_audio_wsa_2 0>, <&clock_audio_rx_tx 0>, + <&clock_audio_wsa_tx 0>, <&clock_audio_wsa2_tx 0>, + <&clock_audio_va_1 0>; + }; + + va_macro: va-macro@6D44000 { + compatible = "qcom,lpass-cdc-va-macro"; + reg = <0x6D44000 0x0>; + clock-names = "lpass_audio_hw_vote"; + clocks = <&lpass_audio_hw_vote 0>; + qcom,va-dmic-sample-rate = <600000>; + qcom,va-clk-mux-select = <1>; + qcom,va-island-mode-muxsel = <0x06E28000>; + qcom,default-clk-id = ; + qcom,use-clk-id = ; + qcom,is-used-swr-gpio = <1>; + qcom,va-swr-gpios = <&va_swr_gpios>; + swr2: va_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <3>; + qcom,mipi-sdw-block-packing-mode = <1>; + swrm-io-base = <0x6d30000 0x0>; + interrupts = + , + ; + interrupt-names = "swr_master_irq", "swr_wake_irq"; + qcom,swr-wakeup-required = <1>; + qcom,swr-num-ports = <5>; + qcom,swr-port-mapping = <1 SWRM_TX_PCM_OUT 0x3>, + <2 SWRM_TX1_CH1 0x1>, <2 SWRM_TX1_CH2 0x2>, + <2 SWRM_TX1_CH3 0x4>, <2 SWRM_TX1_CH4 0x8>, + <3 SWRM_TX2_CH1 0x1>, <3 SWRM_TX2_CH2 0x2>, + <3 SWRM_TX2_CH3 0x4>, <3 SWRM_TX2_CH4 0x8>, + <4 SWRM_TX3_CH1 0x1>, <4 SWRM_TX3_CH2 0x2>, + <4 SWRM_TX3_CH3 0x4>, <4 SWRM_TX3_CH4 0x8>, + <5 SWRM_TX_PCM_IN 0x3>; + qcom,swr-num-dev = <5>; + qcom,swr-clock-stop-mode0 = <1>; + qcom,swr-mstr-irq-wakeup-capable = <1>; + qcom,is-always-on = <1>; + wcd938x_tx_slave: wcd938x-tx-slave { + compatible = "qcom,wcd938x-slave"; + reg = <0x0D 0x01170223>; + }; + + swr_dmic_04: dmic_swr@58350223 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350223>; + sound-name-prefix = "SWR_MIC3"; + qcom,codec-name = "swr-dmic.04"; + qcom,swr-dmic-supply = <3>; + qcom,wcd-handle = <&wcd938x_codec>; + status = "disabled"; + }; + + swr_dmic_03: dmic_swr@58350222 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350222>; + sound-name-prefix = "SWR_MIC2"; + qcom,codec-name = "swr-dmic.03"; + qcom,swr-dmic-supply = <1>; + qcom,wcd-handle = <&wcd938x_codec>; + status = "disabled"; + }; + + swr_dmic_02: dmic_swr@58350221 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350221>; + sound-name-prefix = "SWR_MIC1"; + qcom,codec-name = "swr-dmic.02"; + qcom,swr-dmic-supply = <1>; + qcom,wcd-handle = <&wcd938x_codec>; + status = "disabled"; + }; + + swr_dmic_01: dmic_swr@58350220 { + compatible = "qcom,swr-dmic"; + reg = <0x08 0x58350220>; + sound-name-prefix = "SWR_MIC0"; + qcom,codec-name = "swr-dmic.01"; + qcom,swr-dmic-supply = <3>; + qcom,wcd-handle = <&wcd938x_codec>; + status = "disabled"; + }; + }; + }; + + tx_macro: tx-macro@6AE0000 { + compatible = "qcom,lpass-cdc-tx-macro"; + reg = <0x6AE0000 0x0>; + qcom,default-clk-id = ; + qcom,tx-dmic-sample-rate = <2400000>; + qcom,is-used-swr-gpio = <0>; + }; + + rx_macro: rx-macro@6AC0000 { + compatible = "qcom,lpass-cdc-rx-macro"; + reg = <0x6AC0000 0x0>; + qcom,rx-swr-gpios = <&rx_swr_gpios>; + qcom,rx_mclk_mode_muxsel = <0x06BEC0D8>; + qcom,rx-bcl-pmic-params = /bits/ 8 <0x00 0x03 0x48>; + qcom,default-clk-id = ; + clock-names = "rx_mclk2_2x_clk"; + clocks = <&clock_audio_rx_mclk2_2x_clk 0>; + swr1: rx_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <2>; + qcom,mipi-sdw-block-packing-mode = <1>; + swrm-io-base = <0x6ad0000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <12>; + qcom,swr-port-mapping = <1 HPH_L 0x1>, + <1 HPH_R 0x2>, <2 CLSH 0x3>, + <3 COMP_L 0x1>, <3 COMP_R 0x2>, + <4 LO 0x1>, <5 DSD_L 0x1>, + <5 DSD_R 0x2>, <6 PCM_OUT1 0x01>, + <7 GPPO 0x03>, <8 HAPT 0x03>, + <9 HIFI 0x03>, <10 HPTH 0x03>, + <11 CMPT 0x03>, <12 IPCM 0x03>; + qcom,swr-num-dev = <2>; + qcom,swr-clock-stop-mode0 = <1>; + swr_haptics: swr_haptics@f0170220 { + compatible = "qcom,pm8550b-swr-haptics"; + status = "disabled"; + reg = <0x02 0xf0170220>; + swr-slave-supply = <&hap_swr_slave_reg>; + qcom,rx_swr_ch_map = <0 0x01 0x01 0 PCM_OUT1>; + }; + + wcd938x_rx_slave: wcd938x-rx-slave { + compatible = "qcom,wcd938x-slave"; + reg = <0x0D 0x01170224>; + }; + }; + }; + + wsa_macro: wsa-macro@6B00000 { + compatible = "qcom,lpass-cdc-wsa-macro"; + status = "disabled"; + reg = <0x6B00000 0x0>; + qcom,wsa-swr-gpios = <&wsa_swr_gpios>; + qcom,wsa-bat-cfgs= <1>, <1>; + qcom,wsa-rloads= <2>, <2>; + qcom,wsa-system-gains= <0 9>, <0 9>; + qcom,wsa-bcl-pmic-params = /bits/ 8 <0x00 0x03 0x48>; + qcom,default-clk-id = ; + qcom,thermal-max-state = <11>; + qcom,noise-gate-mode = <2>; + #cooling-cells = <2>; + swr0: wsa_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <1>; + qcom,mipi-sdw-block-packing-mode = <0>; + swrm-io-base = <0x6b10000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <13>; + qcom,swr-clock-stop-mode0 = <1>; + qcom,swr-port-mapping = <1 SPKR_L 0x1>, + <2 SPKR_L_COMP 0xF>, <3 SPKR_L_BOOST 0x3>, + <4 SPKR_R 0x1>, <5 SPKR_R_COMP 0xF>, + <6 SPKR_R_BOOST 0x3>, <7 PBR 0x3>, + <8 SPKR_HAPT 0x3>, <9 OCPM 0x3>, + <10 SPKR_L_VI 0x3>, <11 SPKR_R_VI 0x3>, + <12 SPKR_IPCM 0x3>, <13 CPS 0x3>; + qcom,swr-num-dev = <0>; + qcom,dynamic-port-map-supported = <0>; + wsa884x_0220: wsa884x@02170220 { + compatible = "qcom,wsa884x"; + reg = <0x4 0x2170220>; + qcom,spkr-sd-n-node = <&wsa_spkr_en02>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L15B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "SpkrLeft"; + status = "disabled"; + }; + + wsa884x_0221: wsa884x@02170221 { + compatible = "qcom,wsa884x"; + reg = <0x4 0x2170221>; + qcom,spkr-sd-n-node = <&wsa_spkr_en13>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L15B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "SpkrRight"; + status = "disabled"; + }; + }; + }; + + wsa2_macro: wsa2-macro@6AA0000 { + compatible = "qcom,lpass-cdc-wsa2-macro"; + reg = <0x6AA0000 0x0>; + qcom,wsa2-swr-gpios = <&wsa2_swr_gpios>; + qcom,wsa-bat-cfgs= <1>, <1>; + qcom,wsa-rloads= <2>, <2>; + qcom,wsa-system-gains= <0 9>, <0 9>; + qcom,wsa2-bcl-pmic-params = /bits/ 8 <0x00 0x03 0x48>; + qcom,default-clk-id = ; + qcom,thermal-max-state = <11>; + qcom,noise-gate-mode = <2>; + #cooling-cells = <2>; + status = "disabled"; + swr3: wsa2_swr_master { + compatible = "qcom,swr-mstr"; + #address-cells = <2>; + #size-cells = <0>; + clock-names = "lpass_core_hw_vote", + "lpass_audio_hw_vote"; + clocks = <&lpass_core_hw_vote 0>, + <&lpass_audio_hw_vote 0>; + qcom,swr_master_id = <4>; + qcom,mipi-sdw-block-packing-mode = <0>; + swrm-io-base = <0x6ab0000 0x0>; + interrupts = ; + interrupt-names = "swr_master_irq"; + qcom,swr-num-ports = <13>; + qcom,swr-clock-stop-mode0 = <1>; + qcom,swr-port-mapping = <1 SPKR_L 0x1>, + <2 SPKR_L_COMP 0xF>, <3 SPKR_L_BOOST 0x3>, + <4 SPKR_R 0x1>, <5 SPKR_R_COMP 0xF>, + <6 SPKR_R_BOOST 0x3>, <7 PBR 0x3>, + <8 SPKR_HAPT 0x3>, <9 OCPM 0x3>, + <10 SPKR_L_VI 0x3>, <11 SPKR_R_VI 0x3>, + <12 SPKR_IPCM 0x3>, <13 CPS 0x3>; + qcom,swr-num-dev = <0>; + qcom,dynamic-port-map-supported = <0>; + wsa884x_2_0220: wsa884x@02170220 { + compatible = "qcom,wsa884x_2"; + reg = <0x4 0x2170220>; + qcom,spkr-sd-n-node = <&wsa_spkr_en02>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa2_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L15B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "Spkr2Left"; + status = "disabled"; + }; + + wsa884x_2_0221: wsa884x@02170221 { + compatible = "qcom,wsa884x_2"; + reg = <0x4 0x2170221>; + qcom,spkr-sd-n-node = <&wsa_spkr_en13>; + qcom,lpass-cdc-handle = <&lpass_cdc>; + qcom,wsa-macro-handle = <&wsa2_macro>; + qcom,swr-wsa-port-params = + , , , , , , + , , , , , , + , , , , , , + , , , , , ; + cdc-vdd-1p8-supply = <&L15B>; + qcom,cdc-vdd-1p8-voltage = <1800000 1800000>; + qcom,cdc-vdd-1p8-current = <20000>; + qcom,cdc-vdd-1p8-lpm-supported = <1>; + qcom,cdc-static-supplies = "cdc-vdd-1p8"; + sound-name-prefix = "Spkr2Right"; + status = "disabled"; + }; + }; + }; + + wcd938x_codec: wcd938x-codec { + compatible = "qcom,wcd938x-codec"; + qcom,split-codec = <1>; + qcom,rx_swr_ch_map = <0 HPH_L 0x1 0 HPH_L>, + <0 HPH_R 0x2 0 HPH_R>, <1 CLSH 0x1 0 CLSH>, + <2 COMP_L 0x1 0 COMP_L>, <2 COMP_R 0x2 0 COMP_R>, + <3 LO 0x1 0 LO>, <4 DSD_L 0x1 0 DSD_L>, + <4 DSD_R 0x2 0 DSD_R>; + + qcom,tx_swr_ch_map = <0 ADC1 0x1 0 SWRM_TX1_CH1>, + <0 ADC2 0x2 0 SWRM_TX1_CH2>, + <1 ADC3 0x1 0 SWRM_TX1_CH3>, + <1 ADC4 0x2 0 SWRM_TX1_CH4>, + <2 DMIC0 0x1 0 SWRM_TX2_CH1>, + <2 DMIC1 0x2 0 SWRM_TX2_CH2>, + <2 MBHC 0x4 0 SWRM_TX2_CH3>, + <2 DMIC2 0x4 0 SWRM_TX2_CH3>, + <2 DMIC3 0x8 0 SWRM_TX2_CH4>, + <3 DMIC4 0x1 0 SWRM_TX3_CH1>, + <3 DMIC5 0x2 0 SWRM_TX3_CH2>, + <3 DMIC6 0x4 0 SWRM_TX3_CH3>, + <3 DMIC7 0x8 0 SWRM_TX3_CH4>; + + qcom,swr-tx-port-params = + , , , , + , , , , + , , , , + , , , ; + + qcom,wcd-rst-gpio-node = <&wcd938x_rst_gpio>; + qcom,rx-slave = <&wcd938x_rx_slave>; + qcom,tx-slave = <&wcd938x_tx_slave>; + + cdc-vdd-rxtx-supply = <&L15B>; + qcom,cdc-vdd-rxtx-voltage = <1800000 1800000>; + qcom,cdc-vdd-rxtx-current = <30000>; + qcom,cdc-vdd-rxtx-lpm-supported = <1>; + + cdc-vddio-supply = <&L15B>; + qcom,cdc-vddio-voltage = <1800000 1800000>; + qcom,cdc-vddio-current = <30000>; + qcom,cdc-vddio-lpm-supported = <1>; + + cdc-vdd-buck-supply = <&L15B>; + qcom,cdc-vdd-buck-voltage = <1800000 1800000>; + qcom,cdc-vdd-buck-current = <650000>; + qcom,cdc-vdd-buck-lpm-supported = <1>; + + cdc-vdd-mic-bias-supply = <&BOB1>; + qcom,cdc-vdd-mic-bias-voltage = <3296000 3296000>; + qcom,cdc-vdd-mic-bias-current = <30000>; + + qcom,cdc-micbias1-mv = <1800>; + qcom,cdc-micbias2-mv = <1800>; + qcom,cdc-micbias3-mv = <1800>; + qcom,cdc-micbias4-mv = <1800>; + + qcom,cdc-static-supplies = "cdc-vdd-rxtx", + "cdc-vddio", + "cdc-vdd-mic-bias"; + qcom,cdc-on-demand-supplies = "cdc-vdd-buck"; + }; + +}; + +&spf_core_platform { + kalama_snd: sound { + qcom,model = "kalama-mtp-apq-snd-card"; + qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>, <1>; + qcom,mi2s-tdm-is-hw-vote-needed = <1>, <0>, <1>, <0>, <0>, <0>; + qcom,wcn-bt = <1>; + qcom,ext-disp-audio-rx = <1>; + qcom,tdm-max-slots = <8>; + qcom,tdm-clk-attribute = <0x1>, <0x1>, <0x1>, <0x1>, <0x1>, <0x1>; + qcom,mi2s-clk-attribute = <0x1>, <0x1>, <0x1>, <0x1>, <0x1>, <0x1>; + 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 BIAS3", + "AMIC5", "Analog Mic5", + "AMIC5", "MIC BIAS4", + "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 BIAS3", + "VA AMIC5", "Analog Mic5", + "VA AMIC5", "VA MIC BIAS4", + "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", + "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,msm-mbhc-usbc-audio-supported = <0>; + qcom,msm-mbhc-hphl-swh = <1>; + qcom,msm-mbhc-gnd-swh = <1>; + + qcom,cdc-dmic01-gpios = <&cdc_dmic01_gpios>; + qcom,cdc-dmic23-gpios = <&cdc_dmic23_gpios>; + qcom,cdc-dmic45-gpios = <&cdc_dmic45_gpios>; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd938x_codec>, <&swr_haptics>, + <&wsa884x_0220>, <&wsa884x_0221>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd938x_codec", "swr-haptics", + "wsa-codec1", "wsa-codec2"; + qcom,wsa-max-devs = <0>; + qcom,msm_audio_ssr_devs = <&audio_gpr>, <&lpi_tlmm>, + <&lpass_cdc>; + qcom,upd_backends_used = "wcd"; + qcom,upd_lpass_reg_addr = <0x00000418 0x33B0300>; + qcom,upd_ear_pa_reg_addr = <0x300A>; + }; + + msm_pcm_pcie: qcom,msm-pcm-pcie { + compatible = "qcom,msm-pcm-pcie"; + }; + + fm_i2s1_gpios: fm_i2s1_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&i2s1_sck_active &i2s1_ws_active + &i2s1_sd0_active>; + pinctrl-1 = <&i2s1_sck_sleep &i2s1_ws_sleep + &i2s1_sd0_sleep>; + #gpio-cells = <0>; + }; + + wsa_swr_gpios: wsa_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&wsa_swr_clk_active &wsa_swr_data_active>; + pinctrl-1 = <&wsa_swr_clk_sleep &wsa_swr_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + wsa2_swr_gpios: wsa2_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&wsa2_swr_clk_active &wsa2_swr_data_active>; + pinctrl-1 = <&wsa2_swr_clk_sleep &wsa2_swr_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + rx_swr_gpios: rx_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&rx_swr_clk_active &rx_swr_data_active + &rx_swr_data1_active>; + pinctrl-1 = <&rx_swr_clk_sleep &rx_swr_data_sleep + &rx_swr_data1_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + va_swr_gpios: tx_swr_clk_data_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&tx_swr_clk_active &tx_swr_data0_active + &tx_swr_data1_active &tx_swr_data2_active>; + pinctrl-1 = <&tx_swr_clk_sleep &tx_swr_data0_sleep + &tx_swr_data1_sleep &tx_swr_data2_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic01_gpios: cdc_dmic01_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic01_clk_active &cdc_dmic01_data_active>; + pinctrl-1 = <&cdc_dmic01_clk_sleep &cdc_dmic01_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic23_gpios: cdc_dmic23_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic23_clk_active &cdc_dmic23_data_active>; + pinctrl-1 = <&cdc_dmic23_clk_sleep &cdc_dmic23_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic45_gpios: cdc_dmic45_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic45_clk_active &cdc_dmic45_data_active>; + pinctrl-1 = <&cdc_dmic45_clk_sleep &cdc_dmic45_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; + + cdc_dmic67_gpios: cdc_dmic67_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&cdc_dmic67_clk_active &cdc_dmic67_data_active>; + pinctrl-1 = <&cdc_dmic67_clk_sleep &cdc_dmic67_data_sleep>; + qcom,lpi-gpios; + #gpio-cells = <0>; + }; +}; + +&soc { + wsa_spkr_en02: wsa_spkr_en1_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&spkr_02_sd_n_active>; + pinctrl-1 = <&spkr_02_sd_n_sleep>; + qcom,lpi-gpios; + }; + + wsa_spkr_en13: wsa_spkr_en2_pinctrl { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&spkr_13_sd_n_active>; + pinctrl-1 = <&spkr_13_sd_n_sleep>; + qcom,lpi-gpios; + }; + + + wcd938x_rst_gpio: msm_cdc_pinctrl@32 { + compatible = "qcom,msm-cdc-pinctrl"; + pinctrl-names = "aud_active", "aud_sleep"; + pinctrl-0 = <&wcd938x_reset_active>; + pinctrl-1 = <&wcd938x_reset_sleep>; + }; + + clock_audio_va_1: va_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x307>; + #clock-cells = <1>; + }; + + clock_audio_wsa_1: wsa_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x309>; + #clock-cells = <1>; + }; + + clock_audio_wsa_2: wsa2_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x310>; + #clock-cells = <1>; + }; + + clock_audio_rx_1: rx_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <22579200>; + qcom,codec-lpass-clk-id = <0x30E>; + #clock-cells = <1>; + }; + + clock_audio_rx_tx: rx_core_tx_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x312>; + #clock-cells = <1>; + }; + + clock_audio_tx_1: tx_core_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x30C>; + #clock-cells = <1>; + }; + + clock_audio_wsa_tx: wsa_core_tx_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x314>; + #clock-cells = <1>; + }; + + clock_audio_wsa2_tx: wsa2_core_tx_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x316>; + #clock-cells = <1>; + }; + + clock_audio_rx_mclk2_2x_clk: rx_mclk2_2x_clk { + compatible = "qcom,audio-ref-clk"; + qcom,codec-ext-clk-src = ; + qcom,codec-lpass-ext-clk-freq = <19200000>; + qcom,codec-lpass-clk-id = <0x318>; + #clock-cells = <1>; + }; +}; diff --git a/qcom/audio/kalama-audio-atp.dts b/qcom/audio/kalama-audio-atp.dts index 711da671..d45b5680 100644 --- a/qcom/audio/kalama-audio-atp.dts +++ b/qcom/audio/kalama-audio-atp.dts @@ -4,7 +4,8 @@ #include "kalama-audio-atp.dtsi" / { model = "Qualcomm Technologies, Inc. Kalama ATP"; - compatible = "qcom,kalama-atp", "qcom,kalama", "qcom,atp"; - qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>; + compatible = "qcom,kalama-atp", "qcom,kalama", "qcom,atp", "qcom,kalamap"; + qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>, + <603 0x20000>, <604 0x20000>; qcom,board-id = <0x10021 0>; }; diff --git a/qcom/audio/kalama-audio-cdp-apq.dts b/qcom/audio/kalama-audio-cdp-apq.dts new file mode 100644 index 00000000..34b576ed --- /dev/null +++ b/qcom/audio/kalama-audio-cdp-apq.dts @@ -0,0 +1,10 @@ +/dts-v1/; +/plugin/; + +#include "kalama-audio-cdp-apq.dtsi" + / { + model = "Qualcomm Technologies, Inc. Kalama CDP"; + compatible = "qcom,kalama-cdp", "qcom,kalama", "qcom,cdp"; + qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>; + qcom,board-id = <0x03010001 0x3>; +}; diff --git a/qcom/audio/kalama-audio-cdp-apq.dtsi b/qcom/audio/kalama-audio-cdp-apq.dtsi new file mode 100644 index 00000000..2d5fd1cc --- /dev/null +++ b/qcom/audio/kalama-audio-cdp-apq.dtsi @@ -0,0 +1,110 @@ +#include "kalama-audio-apq-overlay.dtsi" + +&lpass_cdc { + qcom,num-macros = <4>; +}; + +&wsa2_macro { + status = "disabled"; +}; + +&swr_dmic_01 { + status = "disabled"; +}; + +&swr_dmic_02 { + status = "disabled"; +}; + +&swr_dmic_03 { + status = "disabled"; +}; + +&swr_dmic_04 { + status = "disabled"; +}; + +&fm_i2s1_gpios { + status = "ok"; +}; + +&kalama_snd { + qcom,model = "kalama-cdp-apq-snd-card"; + 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 BIAS3", + "AMIC5", "Analog Mic5", + "AMIC5", "MIC BIAS4", + "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 BIAS3", + "VA AMIC5", "Analog Mic5", + "VA AMIC5", "VA MIC BIAS4", + "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", + "TX DMIC4", "Digital Mic4", + "TX DMIC4", "MIC BIAS4", + "TX DMIC5", "Digital Mic5", + "TX DMIC5", "MIC BIAS4", + "TX DMIC6", "Digital Mic6", + "TX DMIC6", "MIC BIAS3", + "TX DMIC7", "Digital Mic7", + "TX DMIC7", "MIC BIAS3", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "IN3_AUX", "AUX_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 DMIC4", "Digital Mic4", + "VA DMIC5", "Digital Mic5", + "VA DMIC6", "Digital Mic6", + "VA DMIC7", "Digital Mic7", + "VA DMIC0", "VA MIC BIAS3", + "VA DMIC1", "VA MIC BIAS3", + "VA DMIC2", "VA MIC BIAS1", + "VA DMIC3", "VA MIC BIAS1", + "VA DMIC4", "VA MIC BIAS4", + "VA DMIC5", "VA MIC BIAS4", + "VA DMIC6", "VA MIC BIAS3", + "VA DMIC7", "VA MIC BIAS3"; + qcom,cdc-dmic67-gpios = <&cdc_dmic67_gpios>; + asoc-codec = <&stub_codec>, <&lpass_cdc>, + <&wcd938x_codec>, <&swr_haptics>, + <&wsa884x_0220>, <&wsa884x_0221>; + asoc-codec-names = "msm-stub-codec.1", "lpass-cdc", + "wcd938x_codec", "swr-haptics", + "wsa-codec1", "wsa-codec2"; + qcom,wsa-max-devs = <0>; + + qcom,sec-mi2s-gpios = <&fm_i2s1_gpios>; +}; + diff --git a/qcom/audio/kalama-audio-cdp.dts b/qcom/audio/kalama-audio-cdp.dts index 8a345804..d69d82c7 100644 --- a/qcom/audio/kalama-audio-cdp.dts +++ b/qcom/audio/kalama-audio-cdp.dts @@ -4,7 +4,8 @@ #include "kalama-audio-cdp.dtsi" / { model = "Qualcomm Technologies, Inc. Kalama CDP"; - compatible = "qcom,kalama-cdp", "qcom,kalama", "qcom,cdp"; - qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>; + compatible = "qcom,kalama-cdp", "qcom,kalama", "qcom,cdp", "qcom,kalamap"; + qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>, + <603 0x20000>, <604 0x20000>; qcom,board-id = <0x10001 0>; }; diff --git a/qcom/audio/kalama-audio-cdp.dtsi b/qcom/audio/kalama-audio-cdp.dtsi index ca7bc946..303ca181 100644 --- a/qcom/audio/kalama-audio-cdp.dtsi +++ b/qcom/audio/kalama-audio-cdp.dtsi @@ -28,8 +28,14 @@ status = "ok"; }; +&swr_haptics { + status = "disabled"; +}; + &kalama_snd { qcom,model = "kalama-cdp-snd-card"; + + swr-haptics-unsupported; qcom,audio-routing = "AMIC1", "Analog Mic1", "AMIC1", "MIC BIAS1", @@ -70,7 +76,6 @@ "IN1_HPHL", "HPHL_OUT", "IN2_HPHR", "HPHR_OUT", "IN3_AUX", "AUX_OUT", - "HAP_IN", "PCM_OUT", "WSA SRC0_INP", "SRC0", "WSA_TX DEC0_INP", "TX DEC0 MUX", "WSA_TX DEC1_INP", "TX DEC1 MUX", diff --git a/qcom/audio/kalama-audio-hdk.dts b/qcom/audio/kalama-audio-hdk.dts index d1021a18..3ebcaf52 100755 --- a/qcom/audio/kalama-audio-hdk.dts +++ b/qcom/audio/kalama-audio-hdk.dts @@ -5,6 +5,6 @@ / { model = "Qualcomm Technologies, Inc. KalamaP HDK"; compatible = "qcom,kalamap-hdk", "qcom,kalamap", "qcom,hdk"; - qcom,msm-id = <536 0x10000>, <536 0x20000>; + qcom,msm-id = <536 0x10000>, <536 0x20000>, <603 0x20000>; qcom,board-id = <0x1001f 0>; }; diff --git a/qcom/audio/kalama-audio-mtp-apq.dts b/qcom/audio/kalama-audio-mtp-apq.dts new file mode 100644 index 00000000..15391816 --- /dev/null +++ b/qcom/audio/kalama-audio-mtp-apq.dts @@ -0,0 +1,10 @@ +/dts-v1/; +/plugin/; + +#include "kalama-audio-mtp-apq.dtsi" + / { + model = "Qualcomm Technologies, Inc. Kalama MTP"; + compatible = "qcom,kalama-mtp", "qcom,kalama", "qcom,mtp"; + qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>; + qcom,board-id = <0x02010008 0x2>; +}; diff --git a/qcom/audio/kalama-audio-mtp-apq.dtsi b/qcom/audio/kalama-audio-mtp-apq.dtsi new file mode 100644 index 00000000..2acb5674 --- /dev/null +++ b/qcom/audio/kalama-audio-mtp-apq.dtsi @@ -0,0 +1,9 @@ +#include "kalama-audio-apq-overlay.dtsi" + +&fm_i2s1_gpios { + status = "ok"; +}; + +&kalama_snd { + qcom,sec-mi2s-gpios = <&fm_i2s1_gpios>; +}; diff --git a/qcom/audio/kalama-audio-mtp.dts b/qcom/audio/kalama-audio-mtp.dts index e8f2a9b3..4f9e7f88 100644 --- a/qcom/audio/kalama-audio-mtp.dts +++ b/qcom/audio/kalama-audio-mtp.dts @@ -5,6 +5,7 @@ / { model = "Qualcomm Technologies, Inc. Kalama MTP"; compatible = "qcom,kalama-mtp", "qcom,kalama", "qcom,mtp"; - qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>; + qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>, + <604 0x20000>; qcom,board-id = <0x10008 0>; }; diff --git a/qcom/audio/kalama-audio-rcm.dts b/qcom/audio/kalama-audio-rcm.dts index f7a7d8c6..8ffa17fa 100644 --- a/qcom/audio/kalama-audio-rcm.dts +++ b/qcom/audio/kalama-audio-rcm.dts @@ -5,6 +5,6 @@ / { model = "Qualcomm Technologies, Inc. Kalama RCM"; compatible = "qcom,kalama-rcm", "qcom,kalama", "qcom,rcm"; - qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>; + qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>, <603 0x20000>, <604 0x20000>; qcom,board-id = <0x10015 0>; }; diff --git a/qcom/audio/kalama-audio.dts b/qcom/audio/kalama-audio.dts index e246d1c7..a485333e 100644 --- a/qcom/audio/kalama-audio.dts +++ b/qcom/audio/kalama-audio.dts @@ -10,7 +10,7 @@ / { model = "Qualcomm Technologies, Inc. Kalama"; - compatible = "qcom,kalama"; - qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>, <600 0x20000>, <601 0x20000>; + compatible = "qcom,kalama", "qcom,kalamap"; + qcom,msm-id = <519 0x10000>, <536 0x10000>, <519 0x20000>, <536 0x20000>, <600 0x20000>, <601 0x20000>, <603 0x20000>, <604 0x20000>; qcom,board-id = <0 0>; };