[audio][aml-g12-tdm] Add support for configurations used by Bluetooth

For the VIM3 composite driver we add mono and a custom DAI format.
For non-composite drivers we remove the capability of modifying sclk
on top of a standard format in favor of custom support as specified
in the audio drivers APIs FIDL. We also update the DAI drivers
configuration in the board drivers to using the custom format.

Bug: 321293746

Test: fx test aml-g12-composite-test
Test: fx test aml-g12-tdm-dai-test
Test: fx test aml-g12-tdm-test
Test: HFP call in Sherlock
Test: Loopback test in VIM3's GPIO header with:
      ffx audio device set dai-format --element-id 2 16000,1ch,0x1,pcm_signed,16in16,custom:"left_justified;raising_sclk;1;1"
      played and recorded with a hacked version of audio-driver-ctl
      (fxrev.dev/1067305) for now.
      This because of an ffx plugin issue (b/42082252),
      samples are corrupted/dropped with:
      ffx audio gen sine --frequency 420 --format 16000,int16,1ch --duration 10s | ffx audio device play --element-id 5
      ffx audio device record --element-id 8 --format 16000,int16,1ch > ~/tmp/t.wav

Change-Id: I7fac63dbfba305ed98199fafb0a7874088b248ca
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1067307
Commit-Queue: Andres Oportus <andresoportus@google.com>
Reviewed-by: Braden Kell <bradenkell@google.com>
12 files changed
tree: a79719032d197dfd48a0f88cfb6030f375ad09f8
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. infra/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. .ignore
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyproject.toml
  33. pyrightconfig.json
  34. README.md
  35. rustfmt.toml
  36. shac.star
  37. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.