| 1 | |
|---|
| 2 | #define MSP_DSP_ADDRESS 0x12 |
|---|
| 3 | #define MSP_DEMOD_ADDRESS 0x10 |
|---|
| 4 | #define MSP_CONTROL_ADDRESS 0x0 |
|---|
| 5 | |
|---|
| 6 | #define WRITE_ADDRESS 1 |
|---|
| 7 | |
|---|
| 8 | // DSP Register |
|---|
| 9 | #define MSP_VOL 0x0 |
|---|
| 10 | #define MSP_BALANCE 0x1 |
|---|
| 11 | #define MSP_BASS 0x2 |
|---|
| 12 | #define MSP_TREBLE 0x3 |
|---|
| 13 | #define MSP_ACB_REG 0x13 |
|---|
| 14 | #define MSP_VENDOR 0x1e |
|---|
| 15 | #define MSP_PRODUCT 0x1f |
|---|
| 16 | #define MSP_MAIN_SRC 0x08 |
|---|
| 17 | #define MSP_I2S_SRC 0x0B |
|---|
| 18 | #define MSP_SPDIF_SRC 0x50 |
|---|
| 19 | #define MSP_SURROUND_SRC 0x4e |
|---|
| 20 | #define MSP_AUDIO_DELAY 0x58 |
|---|
| 21 | #define MSP_FM_AM_PRESCALE 0x0E |
|---|
| 22 | #define MSP_SCART_PRESCALE 0x0D |
|---|
| 23 | #define MSP_I2S3_PRESCALE 0x11 |
|---|
| 24 | #define MSP_TH_FOR_CLIP 0x6f |
|---|
| 25 | #define MSP_AVC 0x29 |
|---|
| 26 | #define MSP_SUBWOOFER 0x2d |
|---|
| 27 | #define MSP_MB_STR 0x68 |
|---|
| 28 | #define MSP_XT_PROCESSING 0x6e |
|---|
| 29 | #define MSP_DOWNMIX 0x36 |
|---|
| 30 | #define MSP_SRS_CONF 0x4B |
|---|
| 31 | #define MSP_MB_HIGH_PASS 0x6c |
|---|
| 32 | #define MSP_MB_LOW_PASS 0x6b |
|---|
| 33 | #define MSP_MB_AMP_LIMIT 0x69 |
|---|
| 34 | #define MSP_MB_WOOFER_LEV 0x2c |
|---|
| 35 | #define MSP_MB_HMC 0x6a |
|---|
| 36 | |
|---|
| 37 | // other register |
|---|
| 38 | #define MSP_STATUS 0x0200 |
|---|
| 39 | #define MSP_STANDARD_SEL 0x20 |
|---|
| 40 | #define MSP_MODUS 0x30 |
|---|
| 41 | #define MSP_I2S_CONF 0x40 |
|---|
| 42 | #define MSP_SPDIF_CONF 0x50 |
|---|
| 43 | #define MSP_RESET 0x0 |
|---|
| 44 | |
|---|
| 45 | // Demod register |
|---|
| 46 | #define MSP_CARRIER_MUTE_THRESHOLD 0x24 |
|---|
| 47 | #define MSP_AD_CV 0xBB |
|---|
| 48 | |
|---|
| 49 | #define MSP_MUTE_DELAY 80 |
|---|
| 50 | #define FAST_MUTE 0xFF00 |
|---|
| 51 | #define VOLUME_MASK 0xFF00 |
|---|
| 52 | #define BALANCE_MASK 0xFF00 |
|---|
| 53 | #define CLIPPING_MODE_MASK 0x0003 |
|---|
| 54 | #define UPPER_BYTE_MASK 0xFF00 |
|---|
| 55 | |
|---|
| 56 | // TRUBASS RELATIVE DEFINITION |
|---|
| 57 | #define CORNER_FREQ 0x900 |
|---|
| 58 | #define MB_ADD 0x2 |
|---|
| 59 | #define MB_UNFILTER 0x0 |
|---|
| 60 | #define MB_OFF 0x0 |
|---|
| 61 | #define DEFAUL_DC_LEVEL 0x4000 |
|---|
| 62 | #define MB_HIGH_CORNER_FREQUENCY 0x600 |
|---|
| 63 | #define MB_LOW_CORNER_FREQUENCY 0x900 |
|---|
| 64 | |
|---|
| 65 | // DC RELATIVE DEFINITION |
|---|
| 66 | #define SRS_INPUT_MONO 0x10 |
|---|
| 67 | #define SRS_FRONT_INPUT_PASSIVE_MATRIX 0 |
|---|
| 68 | #define DC_OFF 0x0000 |
|---|
| 69 | |
|---|
| 70 | typedef enum { |
|---|
| 71 | AUD_AUTO_STANDARD_DETECTION = 1, |
|---|
| 72 | AUD_AUTO_M_DUAL_FM_STEREO, |
|---|
| 73 | AUD_BG_DUAL_FM_STEREO, |
|---|
| 74 | AUD_DK1_DUAL_FM_STEREO, |
|---|
| 75 | AUD_DK2_DUAL_FM_STEREO, |
|---|
| 76 | AUD_DK_FM_MONO_HDEV3, |
|---|
| 77 | AUD_DK3_DUAL_FM_STEREO, |
|---|
| 78 | AUD_BG_NICAM_FM, |
|---|
| 79 | AUD_L_NICAM_AM, |
|---|
| 80 | AUD_I_NICAM_FM, |
|---|
| 81 | AUD_DK_NICAM_FM, |
|---|
| 82 | AUD_DK_FM_MONO_HDEV2, |
|---|
| 83 | AUD_ID, |
|---|
| 84 | AUD_BTSC_STEREO = 0x20, |
|---|
| 85 | AUD_BTSC_MONO_SAP, |
|---|
| 86 | AUD_M_EIA_J_JAP_STEREO = 0x30, |
|---|
| 87 | AUD_FM_STEREO_RADIO = 0x40, |
|---|
| 88 | AUD_SAT_MONO = 0x50, |
|---|
| 89 | AUD_SAT_STEREO |
|---|
| 90 | }AUD_AUDIO_STANDARD; |
|---|
| 91 | |
|---|
| 92 | typedef struct tag_AUD_SAP{ |
|---|
| 93 | char sap; |
|---|
| 94 | char stereo; |
|---|
| 95 | char signal; |
|---|
| 96 | }AUD_SAP; |
|---|
| 97 | |
|---|
| 98 | typedef enum { |
|---|
| 99 | AUD_I2S_8_THROUGH = 0, |
|---|
| 100 | AUD_I2S_8_STRAIGHT, |
|---|
| 101 | AUD_I2S_8_L_R_EIGHT, |
|---|
| 102 | AUD_I2S_6_L_R_SIX, |
|---|
| 103 | AUD_I2S_4_L_R_FOUR, |
|---|
| 104 | AUD_I2S_2_THROUGH = 0x10 |
|---|
| 105 | }AUD_I2S_IN; |
|---|
| 106 | |
|---|
| 107 | typedef enum { |
|---|
| 108 | AUD_NO_MATRIX = 0, |
|---|
| 109 | AUD_GERMAN_STEREO, |
|---|
| 110 | AUD_KOREAN_STEREO, |
|---|
| 111 | AUD_SOUNDA_MONO, |
|---|
| 112 | AUD_SOUNDB_MONO |
|---|
| 113 | }AUD_SOUND_FOR_FM; |
|---|
| 114 | |
|---|
| 115 | typedef enum { |
|---|
| 116 | AUD_HEAD_PHONE = 0, |
|---|
| 117 | AUD_LARGE, |
|---|
| 118 | AUD_MEDIUM, |
|---|
| 119 | AUD_SMALL, |
|---|
| 120 | AUD_VERY_SMALL_150, |
|---|
| 121 | AUD_VERY_SMALL_200 |
|---|
| 122 | }AUD_SPEAKER; |
|---|
| 123 | |
|---|
| 124 | typedef enum{ |
|---|
| 125 | AUD_SUBW_FREQ = 0, |
|---|
| 126 | AUD_MP_HP, |
|---|
| 127 | AUD_MP_LP, |
|---|
| 128 | AUD_MB_LIM, |
|---|
| 129 | AUD_MB_HMC, |
|---|
| 130 | AUD_SUBW_LEVEL |
|---|
| 131 | }TRUBASS_PARAM; |
|---|
| 132 | |
|---|
| 133 | typedef enum { |
|---|
| 134 | AUD_NO_ERROR = 0, |
|---|
| 135 | AUD_ERROR_BAD_PARAM, |
|---|
| 136 | AUD_ERROR_COMMUNICATION |
|---|
| 137 | }AUD_RESULT; |
|---|
| 138 | |
|---|
| 139 | typedef enum { |
|---|
| 140 | AUD_MAIN_LR = 0, |
|---|
| 141 | AUD_AUX_LR, |
|---|
| 142 | AUD_SCART1, |
|---|
| 143 | AUD_SCART2, |
|---|
| 144 | AUD_I2S, |
|---|
| 145 | AUD_QUASI_PEAK_DETECTOR, |
|---|
| 146 | AUD_SURROUND_PROCESSING_INPUT, |
|---|
| 147 | AUD_SURROUND_PROCESSING_OUTPUT, |
|---|
| 148 | AUD_SPDIF_OUTPUT, |
|---|
| 149 | AUD_OUT_MAX |
|---|
| 150 | }AUD_OUTPUT; |
|---|
| 151 | |
|---|
| 152 | typedef enum { |
|---|
| 153 | STANDARD_M_KOREA = 0, |
|---|
| 154 | STANDARD_M_BTSC, |
|---|
| 155 | STANDARD_M_JAP |
|---|
| 156 | }AUDIO_STANDARD; |
|---|
| 157 | |
|---|
| 158 | typedef enum { |
|---|
| 159 | AUD_FM_AM = 0, |
|---|
| 160 | AUD_STEREO_AB, |
|---|
| 161 | AUD_SCART, |
|---|
| 162 | AUD_STEREO_A, |
|---|
| 163 | AUD_STEREO_B, |
|---|
| 164 | AUD_I2S_1, |
|---|
| 165 | AUD_I2S_2, |
|---|
| 166 | AUD_I2S_3_12, |
|---|
| 167 | AUD_I2S_3_34, |
|---|
| 168 | AUD_I2S_3_56, |
|---|
| 169 | AUD_I2S_3_78, |
|---|
| 170 | AUD_PAD1, |
|---|
| 171 | AUD_AVC, |
|---|
| 172 | AUD_MAIN_BASEBAND, |
|---|
| 173 | AUD_AUX_BASEBAND, |
|---|
| 174 | AUD_PAD2, |
|---|
| 175 | AUD_INTERNAL_DELAYED_1, |
|---|
| 176 | AUD_INTERNAL_DELAYED_2, |
|---|
| 177 | AUD_EXTERNAL_DELAYED_3, |
|---|
| 178 | AUD_EXTERNAL_DELAYED_4, |
|---|
| 179 | AUD_STEREO_A_DELAYED, |
|---|
| 180 | AUD_STEREO_B_DELAYED, |
|---|
| 181 | AUD_INPUT_MAX |
|---|
| 182 | }AUD_SOURCE; |
|---|
| 183 | |
|---|
| 184 | typedef enum{ |
|---|
| 185 | AUD_TH_3DBFS = 0, |
|---|
| 186 | AUD_TH_2DBFS , |
|---|
| 187 | AUD_TH_1DBFS , |
|---|
| 188 | AUD_TH_0DBFS , |
|---|
| 189 | AUD_TH_N1DBFS, |
|---|
| 190 | AUD_TH_N2DBFS, |
|---|
| 191 | AUD_TH_N3DBFS, |
|---|
| 192 | AUD_TH_N4DBFS, |
|---|
| 193 | AUD_TH_N5DBFS, |
|---|
| 194 | AUD_TH_N6DBFS |
|---|
| 195 | }AUD_TH; |
|---|
| 196 | |
|---|
| 197 | typedef enum { |
|---|
| 198 | CLIPPING_WITH_VOLUME = 0, |
|---|
| 199 | CLIPPING_WITH_TONE, |
|---|
| 200 | CLIPPING_WITH_COMPROMISE, |
|---|
| 201 | CLIPPING_WITH_DYNAMIC |
|---|
| 202 | }AUD_ANTICLIPPING_Mode; |
|---|
| 203 | |
|---|
| 204 | typedef enum { |
|---|
| 205 | LEFT_ALIGN, |
|---|
| 206 | RIGHT_ALIGN |
|---|
| 207 | }I2S_ALIGN; |
|---|
| 208 | |
|---|
| 209 | typedef enum { |
|---|
| 210 | HIGH_LEFT = 0, |
|---|
| 211 | LOW_LEFT = 1 |
|---|
| 212 | }I2S_POLARITY; |
|---|
| 213 | |
|---|
| 214 | typedef enum { |
|---|
| 215 | SAMPLE_2 = 0, |
|---|
| 216 | SAMPLE_MULTI |
|---|
| 217 | }I2S_SAMPLE; |
|---|
| 218 | |
|---|
| 219 | typedef enum { |
|---|
| 220 | I2S_INPUT = 0, |
|---|
| 221 | I2S_OUTPUT |
|---|
| 222 | }I2S_MODE; |
|---|
| 223 | |
|---|
| 224 | typedef enum { |
|---|
| 225 | INPUT_32 = 0, |
|---|
| 226 | INPUT_16, |
|---|
| 227 | }I2S_WORD; |
|---|
| 228 | |
|---|
| 229 | typedef enum { |
|---|
| 230 | ONE_DELAY = 0, |
|---|
| 231 | NO_DELAY |
|---|
| 232 | }I2S_DELAY; |
|---|
| 233 | |
|---|
| 234 | |
|---|
| 235 | typedef struct tag_AUD_I2S_Config{ |
|---|
| 236 | I2S_ALIGN align; |
|---|
| 237 | I2S_POLARITY pol; |
|---|
| 238 | I2S_SAMPLE mode; |
|---|
| 239 | I2S_DELAY delay; |
|---|
| 240 | I2S_WORD bit_word; |
|---|
| 241 | I2S_MODE in_out; |
|---|
| 242 | }AUD_I2S_Config; |
|---|
| 243 | |
|---|
| 244 | typedef enum{ |
|---|
| 245 | GPIO_IN = 0, |
|---|
| 246 | GPIO_OUT |
|---|
| 247 | }AUD_GPIO_DIRECTION; |
|---|
| 248 | |
|---|
| 249 | typedef struct tag_AUD_GPIO_Config{ |
|---|
| 250 | AUD_GPIO_DIRECTION direction; |
|---|
| 251 | }AUD_GPIO_Config; |
|---|
| 252 | |
|---|
| 253 | |
|---|
| 254 | |
|---|
| 255 | AUD_RESULT MSP_Mute(DS_BOOL enable); |
|---|
| 256 | AUD_RESULT MSP_VolumeSet(int inDB); |
|---|
| 257 | AUD_RESULT MSP_BalanceSet(char Percentage); |
|---|
| 258 | AUD_RESULT MSP_SetAntiClipping(AUD_ANTICLIPPING_Mode mode); |
|---|
| 259 | AUD_RESULT MSP_SetEQ(char trebledb, char bassdb); |
|---|
| 260 | AUD_RESULT MSP_PrintChipInfo(void); |
|---|
| 261 | AUD_RESULT MSP_SetGPIO(int num, int val); |
|---|
| 262 | int MSP_GetGPIO(int num); |
|---|
| 263 | AUD_RESULT MSP_PreConfigGPIO(AUD_GPIO_Config config); |
|---|
| 264 | AUD_RESULT MSP_SetAudioMatrix(AUD_OUTPUT out,AUD_SOURCE src); |
|---|
| 265 | AUD_RESULT MSP_SetScartToDSP(int num); |
|---|
| 266 | AUD_RESULT MSP_AudioDelaySet(unsigned int Delay); |
|---|
| 267 | AUD_RESULT MSP_SetPrescale(AUD_SOURCE src, short valuedb); |
|---|
| 268 | AUD_RESULT MSP_SPDIF_ON_OFF(DS_BOOL enable); |
|---|
| 269 | AUD_RESULT MSP_SetSVC(DS_BOOL enable); |
|---|
| 270 | AUD_RESULT MSP_SetSRS(DS_BOOL enable); |
|---|
| 271 | AUD_RESULT MSP_DemodSet(AUD_AUDIO_STANDARD std); |
|---|
| 272 | AUD_RESULT MSP_SetSoundForFM(AUD_SOUND_FOR_FM src); |
|---|
| 273 | AUD_RESULT MSP_Reset(void); |
|---|
| 274 | AUD_RESULT MSP_Start(void); |
|---|
| 275 | AUD_RESULT MSP_PresetAudioStandard(AUDIO_STANDARD std); |
|---|
| 276 | AUD_RESULT MSP_SetI2SInputConfig(AUD_I2S_Config config); |
|---|
| 277 | AUD_RESULT MSP_GetBTSC(AUD_SAP *src); |
|---|
| 278 | AUD_RESULT MSP_SetClippingThreshold(AUD_TH th); |
|---|
| 279 | AUD_RESULT MSP_ChangeTruBassLevel(short val); |
|---|
| 280 | AUD_RESULT MSP_SetI2S3Matrix(AUD_I2S_IN mode); |
|---|
| 281 | AUD_RESULT MSP_SetTruBass(DS_BOOL enable,AUD_SPEAKER spk_size, int str); |
|---|
| 282 | AUD_RESULT MSP_SetDCLevel(short val); |
|---|
| 283 | AUD_RESULT MSP_SetDC(DS_BOOL enable); |
|---|
| 284 | AUD_RESULT MSP_AudioDelayPath(AUD_SOURCE src); |
|---|
| 285 | AUD_RESULT MSP_ChangeTruBassLevel(short val); |
|---|
| 286 | AUD_RESULT MSP_PresetASS(DS_BOOL enable); |
|---|
| 287 | AUD_RESULT MSP_SetI2SSync(DS_BOOL enable); |
|---|
| 288 | AUD_RESULT MSP_SetI2SOutput(int bI2S); |
|---|
| 289 | AUD_RESULT MSP_SetCarrierMute(DS_BOOL bEn); |
|---|
| 290 | |
|---|
| 291 | int test(void); |
|---|
| 292 | int red(void); |
|---|
| 293 | int getb(void); |
|---|
| 294 | |
|---|