[audio][tas27xx] Add hardware metrics for error conditions

Add poll every 3 seconds and check for an error state of the codec.
Log potentially relevant codec state continuously.

Fixed: 82982
Test: tas27xx-test
Test: simulated error condition shows inspect data updated
Test: no error condition shows timer driven inspect updates a in:
fx shell iquery show-file /dev/diagnostics/class/codec/000.inspect
/dev/diagnostics/class/codec/000.inspect:
  root:
    simple_codec:
      bits_per_sample = 16
      bits_per_slot = 32
      channels_to_use_bitmask = 1
      frame_format = I2S
      frame_rate = 96000
      manufacturer = Texas Instruments
      number_of_channels = 2
      product = TAS2770
      sample_format = PCM_signed
      start_time = 16330694291
      state = started
      unique_id =
    tas27xx:
      after_interrupt_latched_interrupt_state = 4849668
      after_interrupt_mcelsius = 29687
      after_interrupt_mvolt = 13517
      after_timer_latched_interrupt_state = 4194304
      after_timer_mcelsius = 57437
      after_timer_mvolt = 13501
      seconds_until_interrupt = 16
      seconds_until_timer = 46

Change-Id: I5cc75b8a23f6428c18c3a642713b7237965ed306
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/570857
Commit-Queue: Andres Oportus <andresoportus@google.com>
Reviewed-by: Tom Bergan <tombergan@google.com>
(cherry picked from commit ae03707f28d62e3e2f7baefd2e82841dd6acbab2)
3 files changed
tree: 5864c641918e1fbf08bb7f147e8fa21cf9988d33
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

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.