at_cmd_audio.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. /* Copyright (C) 2018 RDA Technologies Limited and/or its affiliates("RDA").
  2. * All rights reserved.
  3. *
  4. * This software is supplied "AS IS" without any warranties.
  5. * RDA assumes no responsibility or liability for the use of the software,
  6. * conveys no license or title under any patent, copyright, or mask work
  7. * right to the product. RDA reserves the right to make changes in the
  8. * software without notification. RDA also make no representation or
  9. * warranty that such application will be suitable for the specified use
  10. * without further testing or modification.
  11. */
  12. #ifndef _AT_CMD_AUDIO_
  13. #define _AT_CMD_AUDIO_
  14. #include "osi_compiler.h"
  15. OSI_EXTERN_C_BEGIN
  16. #ifdef CONFIG_SOC_8910
  17. // =============================================================================
  18. // TYPES
  19. // =============================================================================
  20. typedef struct
  21. {
  22. int32_t id;
  23. uint32_t freq;
  24. int32_t clockMode;
  25. } HAL_I2C_CFG_T;
  26. typedef struct
  27. {
  28. uint32_t regAddr;
  29. uint16_t val;
  30. uint16_t delay;
  31. } HAL_CODEC_REG_T;
  32. typedef enum
  33. {
  34. HAL_AIF_RX_DELAY_ALIGN,
  35. HAL_AIF_RX_DELAY_1,
  36. HAL_AIF_RX_DELAY_2,
  37. HAL_AIF_RX_DELAY_3,
  38. HAL_AIF_RX_DELAY_QTY
  39. } HAL_AIF_RX_DELAY_T;
  40. typedef enum
  41. {
  42. HAL_AIF_RX_MODE_STEREO_STEREO,
  43. HAL_AIF_RX_MODE_STEREO_MONO_FROM_L,
  44. HAL_AIF_RX_MODE_QTY
  45. } HAL_AIF_RX_MODE_T;
  46. typedef enum
  47. {
  48. HAL_SERIAL_MODE_I2S,
  49. HAL_SERIAL_MODE_VOICE,
  50. HAL_SERIAL_MODE_DAI,
  51. HAL_SERIAL_MODE_QTY
  52. } HAL_SERIAL_MODE_T;
  53. typedef enum
  54. {
  55. HAL_AIF_TX_DELAY_ALIGN,
  56. HAL_AIF_TX_DELAY_1,
  57. HAL_AIF_TX_DELAY_QTY
  58. } HAL_AIF_TX_DELAY_T;
  59. typedef enum
  60. {
  61. HAL_AIF_TX_MODE_STEREO_STEREO,
  62. HAL_AIF_TX_MODE_MONO_STEREO_CHAN_L,
  63. HAL_AIF_TX_MODE_MONO_STEREO_DUPLI,
  64. HAL_AIF_TX_MODE_QTY
  65. } HAL_AIF_TX_MODE_T;
  66. typedef struct
  67. {
  68. HAL_SERIAL_MODE_T mode;
  69. bool aifIsMaster;
  70. bool lsbFirst;
  71. bool polarity;
  72. HAL_AIF_RX_DELAY_T rxDelay;
  73. HAL_AIF_TX_DELAY_T txDelay;
  74. HAL_AIF_RX_MODE_T rxMode;
  75. HAL_AIF_TX_MODE_T txMode;
  76. uint32_t fs;
  77. uint32_t bckLrckRatio;
  78. bool invertBck;
  79. bool outputHalfCycleDelay;
  80. bool inputHalfCycleDelay;
  81. bool enableBckOutGating;
  82. } HAL_AIF_SERIAL_CFG_T;
  83. typedef struct
  84. {
  85. uint32_t codecAddr;
  86. uint16_t codecIsMaster;
  87. uint16_t dataFormat;
  88. uint16_t codecCurrentuser;
  89. uint16_t codecTestmode;
  90. uint16_t initFlag;
  91. uint16_t externalCodec;
  92. uint16_t reserved[24];
  93. HAL_I2C_CFG_T i2cCfg;
  94. HAL_AIF_SERIAL_CFG_T i2sAifcfg;
  95. HAL_CODEC_REG_T initRegCfg[100];
  96. HAL_CODEC_REG_T closeRegCfg[50];
  97. HAL_CODEC_REG_T sampleRegCfg[10][12];
  98. HAL_CODEC_REG_T inpathRegCfg[6][20];
  99. HAL_CODEC_REG_T outpathRegCfg[4][20];
  100. } HAL_CODEC_CFG_T;
  101. #endif
  102. #ifdef CONFIG_SOC_8850
  103. //SADM start here
  104. typedef enum
  105. {
  106. //process in CP
  107. ENG_GET_AUD_MODE_NUM = 0, // 0 :get audio mode total number
  108. ENG_GET_AUD_MODE_NAME, // 1 :get audio mode name
  109. ENG_GET_AUD_MODE_DATA, // 2 :get audio data from memory
  110. ENG_SET_AUD_MODE_DATA, // 3 :set audio data into memory
  111. ENG_SET_AUD_DEV_MODE, // 4 :set audio mode
  112. ENG_SET_AUD_MODE_NV_DATA, // 5 :set audio mode parameters into flash
  113. ENG_GET_AUD_MODE_NV_DATA, // 6 :get audio mode parameters from flash*/
  114. //process in AP:CVS_RECD
  115. ENG_GET_AUD_ARM_MODE_NUM = 7, // 7 :get audio mode total number
  116. ENG_GET_AUD_ARM_MODE_NAME, // 8 :get audio mode name
  117. ENG_GET_AUD_ARM_MODE_DATA, // 9 :get audio data from memory
  118. ENG_SET_AUD_ARM_MODE_DATA, // 10 :set audio data into memory
  119. ENG_SET_AUD_ARM_MODE_NV_DATA, // 11 :set audio mode parameters into flash
  120. ENG_GET_AUD_ARM_MODE_NV_DATA, // 12 :get audio mode parameters from flash
  121. ENG_GET_AUD_CURRENT_MODE //13
  122. } ENG_AUD_MODE_OPT_TYPE_E;
  123. typedef enum
  124. {
  125. //process in POC:CVS
  126. ENG_GET_CVS_MODE_NUM = 0, // 0 :get cvs mode total number
  127. ENG_GET_CVS_MODE_NAME, // 1 :get cvs mode name
  128. ENG_GET_CVS_MODE_DATA, // 2 :get cvs data from memory
  129. ENG_SET_CVS_MODE_DATA, // 3 :set cvs data into memory
  130. ENG_GET_CVS_MODE_NV_DATA, // 4 :get cvs mode parameters from flash
  131. ENG_SET_CVS_MODE_NV_DATA, // 5 :set cvs mode parameters into flash*/
  132. } ENG_CVS_MODE_OPT_TYPE_E;
  133. //ENHA start here
  134. typedef enum
  135. {
  136. ENG_GET_ENHA_MODE_NUM = 0, // 0 :get audio enha mode total number
  137. ENG_GET_ENHA_MODE_DATA, // 1 :get audio enha data from memory
  138. ENG_SET_ENHA_MODE_DATA, // 2 :set audio enha data into memory
  139. ENG_GET_ENHA_MODE_NV_DATA, // 3 :get audio enha mode parameters from flash
  140. ENG_SET_ENHA_MODE_NV_DATA // 4 :set audio enha mode parameters into flash
  141. } ATC_ENHA_MODE_OPT_TYPE_E;
  142. #define AUDIO_AT_HARDWARE_NAME_LENGTH 32
  143. #define AUDIO_AT_SOFTWARE_NAME_LENGTH 32
  144. #define AUDIO_AT_ITEM_NAME_LENGTH 15
  145. #define AUDIO_AT_ITEM_VALUE_LENGTH 1
  146. #define AUDIO_AT_ITEM_NUM 20
  147. #define AUDIO_AT_PEINFO_LENGTH AUDIO_AT_HARDWARE_NAME_LENGTH + \
  148. AUDIO_AT_SOFTWARE_NAME_LENGTH + (AUDIO_AT_ITEM_NAME_LENGTH + AUDIO_AT_ITEM_VALUE_LENGTH) * AUDIO_AT_ITEM_NUM
  149. #define AUDIO_HARDWARE_NAME "UIS8850"
  150. #define AUDIO_SOFTWARE_VERSION "0"
  151. #define AUDIO_AT_CODEC_INFO "aud codec info"
  152. #define AUDIO_AT_PHONE_TYPE_INFO "Phone type"
  153. #define PHONE_TYPE_FEATUREPHONE "0"
  154. #define AUDIO_CODEC_ITEM_VALUE "7"
  155. typedef struct Audio_Pe_Item_Struct
  156. {
  157. char name[AUDIO_AT_ITEM_NAME_LENGTH]; //item name
  158. char value; //item value
  159. } AUDIO_PE_ITEM_STRUCT_T;
  160. typedef struct Audio_Pe_Info_Struct
  161. {
  162. int item_length; //item몸鑒
  163. char hardware_version[AUDIO_AT_HARDWARE_NAME_LENGTH]; //袒숭경굶
  164. char software_version[AUDIO_AT_SOFTWARE_NAME_LENGTH]; //흡숭경굶
  165. AUDIO_PE_ITEM_STRUCT_T item[AUDIO_AT_ITEM_NUM]; //item鑒앴
  166. } AUDIO_PE_INFO_STRUCT_T;
  167. #define AUDIO_SADM_DATA_FLASH 0x01
  168. #define AUDIO_SADM_DATA_MEMORY 0x02
  169. #define AUDIO_DIAG_BUFFER_SIZE 4096
  170. typedef struct
  171. {
  172. uint32_t pos;
  173. uint32_t size;
  174. char *mem;
  175. uint32_t is_data;
  176. uint32_t index;
  177. uint32_t is_cvs;
  178. } audioAsyncCtx_t;
  179. #endif
  180. void atAudioInit(void);
  181. int GetPlayAudioStatus();
  182. int GetRecorderAudioStatus();
  183. OSI_EXTERN_C_END
  184. #endif