hpm_i2s_common.h 934 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (c) 2021 hpmicro
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. */
  7. #ifndef HPM_I2S_COMMON_H
  8. #define HPM_I2S_COMMON_H
  9. /**
  10. * @brief I2S common driver APIs
  11. * @defgroup i2s_common_interface I2S common driver APIs
  12. * @ingroup io_interfaces
  13. * @{
  14. */
  15. #define I2S_PROTOCOL_I2S_PHILIPS (0U)
  16. #define I2S_PROTOCOL_MSB_JUSTIFIED (1U)
  17. #define I2S_PROTOCOL_LEFT_JUSTIFIED (1U)
  18. #define I2S_PROTOCOL_LSB_JUSTIFIED (2U)
  19. #define I2S_PROTOCOL_RIGHT_JUSTIFIED (2U)
  20. #define I2S_PROTOCOL_PCM (3U)
  21. #define I2S_AUDIO_DEPTH_16_BITS (0U)
  22. #define I2S_AUDIO_DEPTH_24_BITS (1U)
  23. #define I2S_AUDIO_DEPTH_32_BITS (2U)
  24. #define I2S_AUDIO_DEPTH_IS_NOT_VALID(x) ((x) > I2S_AUDIO_DEPTH_32_BITS)
  25. #define I2S_CHANNEL_LENGTH_16_BITS (0U)
  26. #define I2S_CHANNEL_LENGTH_32_BITS (1U)
  27. /**
  28. * @brief I2S stereo/mono channel
  29. */
  30. enum {
  31. i2s_mono_left = 0,
  32. i2s_mono_right = 1,
  33. i2s_stereo = 2,
  34. };
  35. /**
  36. * @}
  37. */
  38. #endif /* HPM_I2S_COMMON_H */