sec_audio_sysfs.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2020, The Linux Foundation. All rights reserved.
  4. */
  5. #ifndef _SEC_AUDIO_SYSFS_H
  6. #define _SEC_AUDIO_SYSFS_H
  7. /*
  8. * 1 AMP project - mono(AMP_0)
  9. * 2 AMP project - L(AMP_0), R(AMP_1)
  10. * 3 AMP project - L(AMP_0), R(AMP_1), receiver(AMP_2)
  11. * 4 AMP project - FL(AMP_0), FR(AMP_1), RL(AMP_2), RR(AMP_3)
  12. */
  13. enum amp_id {
  14. AMP_0,
  15. AMP_1,
  16. AMP_2,
  17. AMP_3,
  18. AMP_ID_MAX,
  19. };
  20. struct sec_audio_sysfs_data {
  21. struct class *audio_class;
  22. struct device *jack_dev;
  23. struct device *codec_dev;
  24. struct device *amp_dev;
  25. struct device *adsp_dev;
  26. bool no_earjack;
  27. int (*get_jack_state)(void);
  28. int (*get_key_state)(void);
  29. int (*set_jack_state)(int);
  30. int (*get_mic_adc)(void);
  31. int (*get_codec_id_state)(void);
  32. int (*set_force_enable_antenna)(int);
  33. int (*get_antenna_state)(void);
  34. /* bigdata */
  35. unsigned int num_amp;
  36. int (*get_amp_temperature_max)(enum amp_id);
  37. int (*get_amp_temperature_keep_max)(enum amp_id);
  38. int (*get_amp_temperature_overcount)(enum amp_id);
  39. int (*get_amp_excursion_max)(enum amp_id);
  40. int (*get_amp_excursion_overcount)(enum amp_id);
  41. int (*get_amp_curr_temperature)(enum amp_id);
  42. int (*set_amp_surface_temperature)(enum amp_id, int);
  43. int (*get_amp_ready)(enum amp_id);
  44. };
  45. #if IS_ENABLED(CONFIG_SND_SOC_SAMSUNG_AUDIO)
  46. int audio_register_jack_select_cb(int (*set_jack) (int));
  47. int audio_register_jack_state_cb(int (*jack_status) (void));
  48. int audio_register_key_state_cb(int (*key_state) (void));
  49. int audio_register_mic_adc_cb(int (*mic_adc) (void));
  50. int audio_register_codec_id_state_cb(int (*codec_id_state) (void));
  51. int audio_register_force_enable_antenna_cb(int (*force_enable_antenna) (int));
  52. int audio_register_antenna_state_cb(int (*antenna_state) (void));
  53. /* bigdata */
  54. int audio_register_temperature_max_cb(int (*temperature_max) (enum amp_id));
  55. int audio_register_temperature_keep_max_cb(int (*temperature_keep_max) (enum amp_id));
  56. int audio_register_temperature_overcount_cb(int (*temperature_overcount) (enum amp_id));
  57. int audio_register_excursion_max_cb(int (*excursion_max) (enum amp_id));
  58. int audio_register_excursion_overcount_cb(int (*excursion_overcount) (enum amp_id));
  59. int audio_register_curr_temperature_cb(int (*curr_temperature) (enum amp_id));
  60. int audio_register_surface_temperature_cb(int (*surface_temperature) (enum amp_id, int temperature));
  61. int audio_register_ready_cb(int (*ready) (enum amp_id));
  62. void send_adsp_silent_reset_ev(void);
  63. #else
  64. inline int audio_register_jack_select_cb(int (*set_jack) (int))
  65. {
  66. return -EACCES;
  67. }
  68. inline int audio_register_jack_state_cb(int (*jack_status) (void))
  69. {
  70. return -EACCES;
  71. }
  72. inline int audio_register_key_state_cb(int (*key_state) (void))
  73. {
  74. return -EACCES;
  75. }
  76. inline int audio_register_mic_adc_cb(int (*mic_adc) (void))
  77. {
  78. return -EACCES;
  79. }
  80. inline int audio_register_codec_id_state_cb(int (*codec_id_state) (void))
  81. {
  82. return -EACCES;
  83. }
  84. inline int audio_register_force_enable_antenna_cb(int (*force_enable_antenna) (int))
  85. {
  86. return -EACCES;
  87. }
  88. inline int audio_register_antenna_state_cb(int (*antenna_state) (void))
  89. {
  90. return -EACCES;
  91. }
  92. inline int audio_register_temperature_max_cb(int (*temperature_max) (enum amp_id))
  93. {
  94. return -EACCES;
  95. }
  96. inline int audio_register_temperature_keep_max_cb(int (*temperature_keep_max) (enum amp_id))
  97. {
  98. return -EACCES;
  99. }
  100. inline int audio_register_temperature_overcount_cb(int (*temperature_overcount) (enum amp_id))
  101. {
  102. return -EACCES;
  103. }
  104. inline int audio_register_excursion_max_cb(int (*excursion_max) (enum amp_id))
  105. {
  106. return -EACCES;
  107. }
  108. inline int audio_register_excursion_overcount_cb(int (*excursion_overcount) (enum amp_id))
  109. {
  110. return -EACCES;
  111. }
  112. inline int audio_register_curr_temperature_cb(int (*curr_temperature) (enum amp_id))
  113. {
  114. return -EACCES;
  115. }
  116. inline int audio_register_surface_temperature_cb(int (*surface_temperature) (enum amp_id, int temperature))
  117. {
  118. return -EACCES;
  119. }
  120. inline int audio_register_ready_cb(int (*ready) (enum amp_id))
  121. {
  122. return -EACCES;
  123. }
  124. inline void send_adsp_silent_reset_ev(void)
  125. {
  126. }
  127. #endif
  128. #endif /* _SEC_AUDIO_SYSFS_H */