This patchset adds support for two Codec Macro blocks(TX and RX) available in Qualcomm LPASS (Low Power Audio SubSystem).
There are WSA, VA, TX and RX Macros on LPASS IP, each of the Macro block has specific connectivity like WSA Macros are intended to connect to WSA Smart speaker codecs via SoundWire. VA Macro is intended for DMICs, and TX/RX for Analog codecs via SoundWire like other WCD938x Codecs to provide headphone/ear/lineout/amic/dmic etc ..
Most of the work is derived from downstream Qualcomm kernels. Credits to various Qualcomm authors from Patrick Lai's team who have contributed to this code.
This patchset has been tested on support to SM8250 MTP Development Board. This board has 2 WSA881X smart speakers with onboard DMIC connected to internal LPASS codec via WSA and VA macros respectively and WCD938x TX and RX connected via Soundwire via TX and RX Macros reseptively.
Thanks, srini
Changes since v3: - fixed two minor warnings reported by kernel test robot using clang
Srinivas Kandagatla (7): ASoC: qcom: dt-bindings: add bindings for lpass rx macro codec ASoC: codecs: lpass-rx-macro: add support for lpass rx macro ASoC: codecs: lpass-rx-macro: add dapm widgets and route ASoC: codecs: lpass-rx-macro: add iir widgets ASoC: qcom: dt-bindings: add bindings for lpass tx macro codec ASoC: codecs: lpass-tx-macro: add support for lpass tx macro ASoC: codecs: lpass-tx-macro: add dapm widgets and route
.../bindings/sound/qcom,lpass-rx-macro.yaml | 62 + .../bindings/sound/qcom,lpass-tx-macro.yaml | 67 + sound/soc/codecs/Kconfig | 10 + sound/soc/codecs/Makefile | 4 + sound/soc/codecs/lpass-rx-macro.c | 3606 +++++++++++++++++ sound/soc/codecs/lpass-tx-macro.c | 1874 +++++++++ 6 files changed, 5623 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/qcom,lpass-rx-macro.yaml create mode 100644 Documentation/devicetree/bindings/sound/qcom,lpass-tx-macro.yaml create mode 100644 sound/soc/codecs/lpass-rx-macro.c create mode 100644 sound/soc/codecs/lpass-tx-macro.c