topology: sof-adl-max98357a-rt5682-waves-2way: add new topology

Add support for four max98357a speaker amplifiers running in TDM mode
which format is 8 slots with 32 bit slot/sample width on ADL boards.

To implement the 2-way woofer/tweeter speaker function in SOF, there is a demux
to create 2 streams for the branched pipelines. A Waves-codec widget is applied
before the demux for audio quality enhancement, and the other Waves-codec
widgets are located one per branch for EQ/DRC including band-split filters of
Woofer and Tweeter.

There is a mux before DAI to merge the branched Woofer and Tweeter streams into
one 4-channel stream which is fed into DAI then.

The formation of this split-and-merge pipeline is a bit tricky. The topology
graph is as following:

host PCM0 -> WAVES -> DEMUX -> WAVES ---+                         <PIPE#9>
                          |             |
                          +--> WAVES -> MUX -> DAI (Speaker SSP)  <PIPE#1>

There are two pipelines with ID #1 and #9, where PIPE#9 is set DAI#1 as the
scheduled component to make them being scheduled together. They are connected
via DEMUX#9 and MUX#1. The priority of PIPE#9 should be higher than PIPE#1 to
assure PIPE#9 is scheduled first (PCM should be the first component for the
copy process).

Moreover, the commit of mux_params() modification is required to support the
split-and-merge pipeline design.

Signed-off-by: Pin-chih Lin <johnylin@google.com>
4 files changed
tree: 8d3549387d9dda879c06d404801e8d92b785f289
  1. .github/
  2. doc/
  3. installer/
  4. keys/
  5. scripts/
  6. smex/
  7. src/
  8. test/
  9. third_party/
  10. tools/
  11. zephyr/
  12. .gitignore
  13. .gitmodules
  14. .travis.yml
  15. CMakeLists.txt
  16. CODEOWNERS
  17. Kconfig
  18. Kconfig.sof
  19. Kconfig.xtos-build
  20. Kconfig.xtos-dbg
  21. LICENCE
  22. README.md
README.md

Sound Open Firmware

Status

GitHub Actions Build Status Gitter chat

Documentation

See docs

Running the tests

See unit testing documentation

Deployment

TODO: Add additional notes about how to deploy this on a live system

Contributing

See Contributing to the Project

License

This project is licensed under the BSD Clause 3 - see the LICENCE file for details