wcd-mbhc-v2-api.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
  3. */
  4. #ifndef __WCD_MBHC_V2_API_H__
  5. #define __WCD_MBHC_V2_API_H__
  6. #include "wcd-mbhc-v2.h"
  7. #if IS_ENABLED(CONFIG_SND_SOC_WCD_MBHC)
  8. int wcd_mbhc_start(struct wcd_mbhc *mbhc,
  9. struct wcd_mbhc_config *mbhc_cfg);
  10. void wcd_mbhc_stop(struct wcd_mbhc *mbhc);
  11. int wcd_mbhc_init(struct wcd_mbhc *mbhc, struct snd_soc_component *component,
  12. const struct wcd_mbhc_cb *mbhc_cb,
  13. const struct wcd_mbhc_intr *mbhc_cdc_intr_ids,
  14. struct wcd_mbhc_register *wcd_mbhc_regs,
  15. bool impedance_det_en);
  16. int wcd_mbhc_get_impedance(struct wcd_mbhc *mbhc, uint32_t *zl,
  17. uint32_t *zr);
  18. void wcd_mbhc_deinit(struct wcd_mbhc *mbhc);
  19. #else
  20. static inline void wcd_mbhc_stop(struct wcd_mbhc *mbhc)
  21. {
  22. }
  23. int wcd_mbhc_init(struct wcd_mbhc *mbhc, struct snd_soc_component *component,
  24. const struct wcd_mbhc_cb *mbhc_cb,
  25. const struct wcd_mbhc_intr *mbhc_cdc_intr_ids,
  26. struct wcd_mbhc_register *wcd_mbhc_regs,
  27. bool impedance_det_en)
  28. {
  29. return 0;
  30. }
  31. static inline int wcd_mbhc_start(struct wcd_mbhc *mbhc,
  32. struct wcd_mbhc_config *mbhc_cfg)
  33. {
  34. return 0;
  35. }
  36. static inline int wcd_mbhc_get_impedance(struct wcd_mbhc *mbhc,
  37. uint32_t *zl,
  38. uint32_t *zr)
  39. {
  40. *zl = 0;
  41. *zr = 0;
  42. return -EINVAL;
  43. }
  44. static inline void wcd_mbhc_deinit(struct wcd_mbhc *mbhc)
  45. {
  46. }
  47. #endif
  48. #endif /* __WCD_MBHC_V2_API_H__ */