1*53ee8cc1Swenshuai.xi //<MStar Software> 2*53ee8cc1Swenshuai.xi //****************************************************************************** 3*53ee8cc1Swenshuai.xi // MStar Software 4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved. 5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are 6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by 7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties. 8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all 9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written 10*53ee8cc1Swenshuai.xi // permission has been granted by MStar. 11*53ee8cc1Swenshuai.xi // 12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you 13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to 14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations: 15*53ee8cc1Swenshuai.xi // 16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar 17*53ee8cc1Swenshuai.xi // Software and any modification/derivatives thereof. 18*53ee8cc1Swenshuai.xi // No right, ownership, or interest to MStar Software and any 19*53ee8cc1Swenshuai.xi // modification/derivatives thereof is transferred to you under Terms. 20*53ee8cc1Swenshuai.xi // 21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be 22*53ee8cc1Swenshuai.xi // supplied together with third party`s software and the use of MStar 23*53ee8cc1Swenshuai.xi // Software may require additional licenses from third parties. 24*53ee8cc1Swenshuai.xi // Therefore, you hereby agree it is your sole responsibility to separately 25*53ee8cc1Swenshuai.xi // obtain any and all third party right and license necessary for your use of 26*53ee8cc1Swenshuai.xi // such third party`s software. 27*53ee8cc1Swenshuai.xi // 28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as 29*53ee8cc1Swenshuai.xi // MStar`s confidential information and you agree to keep MStar`s 30*53ee8cc1Swenshuai.xi // confidential information in strictest confidence and not disclose to any 31*53ee8cc1Swenshuai.xi // third party. 32*53ee8cc1Swenshuai.xi // 33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any 34*53ee8cc1Swenshuai.xi // kind. Any warranties are hereby expressly disclaimed by MStar, including 35*53ee8cc1Swenshuai.xi // without limitation, any warranties of merchantability, non-infringement of 36*53ee8cc1Swenshuai.xi // intellectual property rights, fitness for a particular purpose, error free 37*53ee8cc1Swenshuai.xi // and in conformity with any international standard. You agree to waive any 38*53ee8cc1Swenshuai.xi // claim against MStar for any loss, damage, cost or expense that you may 39*53ee8cc1Swenshuai.xi // incur related to your use of MStar Software. 40*53ee8cc1Swenshuai.xi // In no event shall MStar be liable for any direct, indirect, incidental or 41*53ee8cc1Swenshuai.xi // consequential damages, including without limitation, lost of profit or 42*53ee8cc1Swenshuai.xi // revenues, lost or damage of data, and unauthorized system use. 43*53ee8cc1Swenshuai.xi // You agree that this Section 4 shall still apply without being affected 44*53ee8cc1Swenshuai.xi // even if MStar Software has been modified by MStar in accordance with your 45*53ee8cc1Swenshuai.xi // request or instruction for your use, except otherwise agreed by both 46*53ee8cc1Swenshuai.xi // parties in writing. 47*53ee8cc1Swenshuai.xi // 48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or 49*53ee8cc1Swenshuai.xi // services in relation with MStar Software to you for your use of 50*53ee8cc1Swenshuai.xi // MStar Software in conjunction with your or your customer`s product 51*53ee8cc1Swenshuai.xi // ("Services"). 52*53ee8cc1Swenshuai.xi // You understand and agree that, except otherwise agreed by both parties in 53*53ee8cc1Swenshuai.xi // writing, Services are provided on an "AS IS" basis and the warranty 54*53ee8cc1Swenshuai.xi // disclaimer set forth in Section 4 above shall apply. 55*53ee8cc1Swenshuai.xi // 56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels 57*53ee8cc1Swenshuai.xi // or otherwise: 58*53ee8cc1Swenshuai.xi // (a) conferring any license or right to use MStar name, trademark, service 59*53ee8cc1Swenshuai.xi // mark, symbol or any other identification; 60*53ee8cc1Swenshuai.xi // (b) obligating MStar or any of its affiliates to furnish any person, 61*53ee8cc1Swenshuai.xi // including without limitation, you and your customers, any assistance 62*53ee8cc1Swenshuai.xi // of any kind whatsoever, or any information; or 63*53ee8cc1Swenshuai.xi // (c) conferring any license or right under any intellectual property right. 64*53ee8cc1Swenshuai.xi // 65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws 66*53ee8cc1Swenshuai.xi // of Taiwan, R.O.C., excluding its conflict of law rules. 67*53ee8cc1Swenshuai.xi // Any and all dispute arising out hereof or related hereto shall be finally 68*53ee8cc1Swenshuai.xi // settled by arbitration referred to the Chinese Arbitration Association, 69*53ee8cc1Swenshuai.xi // Taipei in accordance with the ROC Arbitration Law and the Arbitration 70*53ee8cc1Swenshuai.xi // Rules of the Association by three (3) arbitrators appointed in accordance 71*53ee8cc1Swenshuai.xi // with the said Rules. 72*53ee8cc1Swenshuai.xi // The place of arbitration shall be in Taipei, Taiwan and the language shall 73*53ee8cc1Swenshuai.xi // be English. 74*53ee8cc1Swenshuai.xi // The arbitration award shall be final and binding to both parties. 75*53ee8cc1Swenshuai.xi // 76*53ee8cc1Swenshuai.xi //****************************************************************************** 77*53ee8cc1Swenshuai.xi //<MStar Software> 78*53ee8cc1Swenshuai.xi #ifndef _AUDIO_COMM2_H_ 79*53ee8cc1Swenshuai.xi #define _AUDIO_COMM2_H_ 80*53ee8cc1Swenshuai.xi 81*53ee8cc1Swenshuai.xi 82*53ee8cc1Swenshuai.xi #include "audio_mbox2.h" 83*53ee8cc1Swenshuai.xi #include "ddr_config.h" 84*53ee8cc1Swenshuai.xi 85*53ee8cc1Swenshuai.xi #ifdef _COMPILE_DSP_ 86*53ee8cc1Swenshuai.xi #include "Sys_def.h" 87*53ee8cc1Swenshuai.xi #endif 88*53ee8cc1Swenshuai.xi 89*53ee8cc1Swenshuai.xi /************************************************ 90*53ee8cc1Swenshuai.xi * �ЫO�� Utopia �M DSP �̪��o���ɮפ@�P 91*53ee8cc1Swenshuai.xi * 92*53ee8cc1Swenshuai.xi * 1. ���Ѥ��n�� ! 93*53ee8cc1Swenshuai.xi * 2. �ŧi���n�� .const xxxx = ????; 94*53ee8cc1Swenshuai.xi ************************************************/ 95*53ee8cc1Swenshuai.xi 96*53ee8cc1Swenshuai.xi 97*53ee8cc1Swenshuai.xi /********************************************************* 98*53ee8cc1Swenshuai.xi * Version Control 99*53ee8cc1Swenshuai.xi *********************************************************/ 100*53ee8cc1Swenshuai.xi #define system_version_num 0x000B6D 101*53ee8cc1Swenshuai.xi #define dde_version_num 0xD20053 102*53ee8cc1Swenshuai.xi #define ms10_dde_version_num 0xD800C9 103*53ee8cc1Swenshuai.xi #define btscEnc_version_num 0xEF0127 104*53ee8cc1Swenshuai.xi #define fmTx_version_num 0xED010D 105*53ee8cc1Swenshuai.xi 106*53ee8cc1Swenshuai.xi #define AUDIO_DSP2_VERSION (system_version_num + dde_version_num + ms10_dde_version_num + btscEnc_version_num + fmTx_version_num) 107*53ee8cc1Swenshuai.xi 108*53ee8cc1Swenshuai.xi 109*53ee8cc1Swenshuai.xi /********************************************************* 110*53ee8cc1Swenshuai.xi * system define 111*53ee8cc1Swenshuai.xi *********************************************************/ 112*53ee8cc1Swenshuai.xi #define DSP2_DDP_HDMI_BYPASS_EN 0 113*53ee8cc1Swenshuai.xi 114*53ee8cc1Swenshuai.xi /* Software Feature List */ 115*53ee8cc1Swenshuai.xi #define SW_DMA_RDR_EN 0 // SW_DMA_READER1, output by "decoder 5 = 0x8C", disable when HW_DMA_READER2_SUPPORT 116*53ee8cc1Swenshuai.xi #define PCM_CAPTURE1_EN 1 // PCM_CAPTURE1 117*53ee8cc1Swenshuai.xi #define PCM_CAPTURE2_EN 1 // PCM_CAPTURE2 118*53ee8cc1Swenshuai.xi #define PCM_CAPTURE3_EN 0 // PCM_CAPTURE3 119*53ee8cc1Swenshuai.xi #define HW_DMA_WRITER1_EN 0 120*53ee8cc1Swenshuai.xi 121*53ee8cc1Swenshuai.xi /* ASND System Channels */ 122*53ee8cc1Swenshuai.xi #define SE_PROCESS_FETCH_CHANNELS 14 // SE_Buffer input channels 123*53ee8cc1Swenshuai.xi #define SE_PROCESS_STORE_CHANNELS 8 // SE_Buffer output channels 124*53ee8cc1Swenshuai.xi #define SPDIF_DELAY_STORE_CHANNELS 2 // SPDIF Buffer channels 125*53ee8cc1Swenshuai.xi #define HDMI_DELAY_STORE_CHANNELS 8 // HDMI Buffer channels, 8:_deciFs4x_ 126*53ee8cc1Swenshuai.xi #define DELAY_FUNCTION_STORE_CHANNELS 2 // Delay function Buffer channels 127*53ee8cc1Swenshuai.xi #define MULTI_CH_INPUT_DELAY_STORE_CHANNELS 6 // multi-channel input delay function Buffer channels 128*53ee8cc1Swenshuai.xi 129*53ee8cc1Swenshuai.xi /* DSP Audio Delay Setting */ 130*53ee8cc1Swenshuai.xi #define AUDIO_DELAY_FS 48 // fs = 48kHz 131*53ee8cc1Swenshuai.xi #define SPDIF_DELAY_FS 48 132*53ee8cc1Swenshuai.xi #define HDMI_DELAY_FS 48 133*53ee8cc1Swenshuai.xi #define DMA24BIT_BYTES_IN_WORDS 3 134*53ee8cc1Swenshuai.xi #define DMA16BIT_BYTES_IN_WORDS 2 135*53ee8cc1Swenshuai.xi 136*53ee8cc1Swenshuai.xi #define AUDIO_DELAY_LOWER_BOUND 0x20 // min main audio delay , 0x20 = 32 ms 137*53ee8cc1Swenshuai.xi #define SPDIF_DELAY_LOWER_BOUND 0x05 // min spdif audio delay, 0x05 = 5 ms 138*53ee8cc1Swenshuai.xi #define HDMI_DELAY_LOWER_BOUND 0x05 // min hdmi audio delay , 0x05 = 5 ms 139*53ee8cc1Swenshuai.xi #define KTV_DELAY_LOWER_BOUND 0x14 // min ktv audio delay , 0x14 = 20 ms 140*53ee8cc1Swenshuai.xi #define AUDIO_DELAY_UPPER_BOUND ((SE_MAIN_IN_DRAM_SIZE/SE_PROCESS_FETCH_CHANNELS + SE_MAIN_OUT_DRAM_SIZE/SE_PROCESS_STORE_CHANNELS)/DMA24BIT_BYTES_IN_WORDS/AUDIO_DELAY_FS) //unit : ms 141*53ee8cc1Swenshuai.xi #define SPDIF_DELAY_UPPER_BOUND ((SPDIF_DLY_DRAM_SIZE/SPDIF_DELAY_STORE_CHANNELS)/DMA16BIT_BYTES_IN_WORDS/SPDIF_DELAY_FS) //unit : ms 142*53ee8cc1Swenshuai.xi #define HDMI_DELAY_UPPER_BOUND ((SE_HDMI_DLY_DRAM_SIZE/2)/DMA16BIT_BYTES_IN_WORDS/HDMI_DELAY_FS) //unit : ms 143*53ee8cc1Swenshuai.xi 144*53ee8cc1Swenshuai.xi #define CH5_INPUT_DLY_UPPER_BOUND ((CH5_INPUT_DLY_DRAM_SIZE/DELAY_FUNCTION_STORE_CHANNELS)/DMA24BIT_BYTES_IN_WORDS/AUDIO_DELAY_FS) //unit : ms 145*53ee8cc1Swenshuai.xi #define CH6_INPUT_DLY_UPPER_BOUND ((CH6_INPUT_DLY_DRAM_SIZE/DELAY_FUNCTION_STORE_CHANNELS)/DMA24BIT_BYTES_IN_WORDS/AUDIO_DELAY_FS) //unit : ms 146*53ee8cc1Swenshuai.xi #define MULTI_CH_INPUT_DLY_UPPER_BOUND ((MULTI_CH_INPUT_DLY_DRAM_SIZE/MULTI_CH_INPUT_DELAY_STORE_CHANNELS)/DMA24BIT_BYTES_IN_WORDS/AUDIO_DELAY_FS) //unit : ms 147*53ee8cc1Swenshuai.xi 148*53ee8cc1Swenshuai.xi /* Audio Ease */ 149*53ee8cc1Swenshuai.xi #define AUDIO_EASE_TYPE_LINEAR 0 150*53ee8cc1Swenshuai.xi #define AUDIO_EASE_TYPE_INCUBIC 1 151*53ee8cc1Swenshuai.xi #define AUDIO_EASE_TYPE_OUTCUBIC 2 152*53ee8cc1Swenshuai.xi #define AUDIO_EASE_TYPE_INOUTCUBIC 3 153*53ee8cc1Swenshuai.xi 154*53ee8cc1Swenshuai.xi #define AUDIO_EASE_CH_NONE 0 155*53ee8cc1Swenshuai.xi #define AUDIO_EASE_CH_A 1 156*53ee8cc1Swenshuai.xi #define AUDIO_EASE_CH_B 2 157*53ee8cc1Swenshuai.xi 158*53ee8cc1Swenshuai.xi /* Sine Tone */ 159*53ee8cc1Swenshuai.xi #define SINE_GEN_PARAM_FREQ_48k 137 // (3.1415926*2/8) * 8388608 / 48000 160*53ee8cc1Swenshuai.xi #define SINE_GEN_PARAM_FREQ_32k 205 // (3.1415926*2/8) * 8388608 / 32000 161*53ee8cc1Swenshuai.xi #define SINE_GEN_PARAM_STEPS 1024 // 1024 steps 162*53ee8cc1Swenshuai.xi 163*53ee8cc1Swenshuai.xi /************************************************ 164*53ee8cc1Swenshuai.xi * DSP sram address mapping 165*53ee8cc1Swenshuai.xi ************************************************/ 166*53ee8cc1Swenshuai.xi /* DSP SRAM Segment */ 167*53ee8cc1Swenshuai.xi /* CM */ 168*53ee8cc1Swenshuai.xi #define DSP2_CM_MAIN_ADDR 0x0 169*53ee8cc1Swenshuai.xi #define DSP2_CM_MAIN_SIZE 0x2000 170*53ee8cc1Swenshuai.xi #define DSP2_CM_CODE1_ADDR 0x2000 171*53ee8cc1Swenshuai.xi #define DSP2_CM_CODE1_SIZE 0x0100 172*53ee8cc1Swenshuai.xi #define DSP2_CM_CODE2_ADDR 0x2100 173*53ee8cc1Swenshuai.xi #define DSP2_CM_CODE2_SIZE 0x0000 174*53ee8cc1Swenshuai.xi 175*53ee8cc1Swenshuai.xi /* PM */ 176*53ee8cc1Swenshuai.xi #define DSP2_PM_MAIN_ADDR 0x2100 177*53ee8cc1Swenshuai.xi #define DSP2_PM_MAIN_SIZE 0x02FF 178*53ee8cc1Swenshuai.xi #define DSP2_PM_SEG1_ADDR 0x23FF 179*53ee8cc1Swenshuai.xi #define DSP2_PM_SEG1_SIZE 0x2401 180*53ee8cc1Swenshuai.xi #define DSP2_PM_SEG2_ADDR 0x4800 181*53ee8cc1Swenshuai.xi #define DSP2_PM_SEG2_SIZE 0x0000 182*53ee8cc1Swenshuai.xi 183*53ee8cc1Swenshuai.xi /* Prefetch */ 184*53ee8cc1Swenshuai.xi #define DSP2_PM_PREFETCH_DSPADDR 0x10000 // check "arch.sys" 185*53ee8cc1Swenshuai.xi #define DSP2_PM_PREFETCH_DDRADDR DSP2_PM_PREFETCH_DSPADDR*3/BYTES_IN_MIU_LINE 186*53ee8cc1Swenshuai.xi #define DSP2_PM_PREFETCH2_DSPADDR 0x12000 // check "arch.sys" 187*53ee8cc1Swenshuai.xi #define DSP2_PM_PREFETCH2_DDRADDR DSP2_PM_PREFETCH2_DSPADDR*3/BYTES_IN_MIU_LINE 188*53ee8cc1Swenshuai.xi 189*53ee8cc1Swenshuai.xi /* DM */ 190*53ee8cc1Swenshuai.xi #define DSP2_DM_MAIN_ADDR 0x2F00 191*53ee8cc1Swenshuai.xi #define DSP2_DM_MAIN_SIZE 0x1100 192*53ee8cc1Swenshuai.xi #define DSP2_DM_SEG1A_ADDR 0x0 193*53ee8cc1Swenshuai.xi #define DSP2_DM_SEG1A_SIZE 0x2F00 194*53ee8cc1Swenshuai.xi #define DSP2_DM_SEG1B_ADDR 0x2F00 195*53ee8cc1Swenshuai.xi #define DSP2_DM_SEG1B_SIZE 0x0 196*53ee8cc1Swenshuai.xi #define DSP2_DM_SEG2_ADDR 0x2F00 197*53ee8cc1Swenshuai.xi #define DSP2_DM_SEG2_SIZE 0x0 198*53ee8cc1Swenshuai.xi 199*53ee8cc1Swenshuai.xi /* XBox */ 200*53ee8cc1Swenshuai.xi #define DSP2_XBOX_MAIN_ADDR 0xB800 201*53ee8cc1Swenshuai.xi #define DSP2_XBOX_MAIN_SIZE 0x200 202*53ee8cc1Swenshuai.xi 203*53ee8cc1Swenshuai.xi #define ENC_INIT_ADDR DSP2_CM_CODE1_ADDR 204*53ee8cc1Swenshuai.xi #define ENC_CM_SEG _cm_code1 205*53ee8cc1Swenshuai.xi #define ENC_PM_SEG _pm_ovly1 206*53ee8cc1Swenshuai.xi #define ENC_CACHE_SEG _ext_code05 207*53ee8cc1Swenshuai.xi #define ENC_FETCH_SEG _ext_fetch1 208*53ee8cc1Swenshuai.xi #define ENC_DM_SEG _dm_ovly1a 209*53ee8cc1Swenshuai.xi #define ENC_PM_SEG_ADDR DSP2_PM_SEG1_ADDR 210*53ee8cc1Swenshuai.xi #define ENC_DM_SEG_ADDR DSP2_DM_SEG1A_ADDR 211*53ee8cc1Swenshuai.xi 212*53ee8cc1Swenshuai.xi /* SND DSP PM vars */ 213*53ee8cc1Swenshuai.xi /* common */ 214*53ee8cc1Swenshuai.xi #define DSP2PmAddr_mainVer (DSP2_PM_MAIN_ADDR) //0x1900 215*53ee8cc1Swenshuai.xi #define DSP2PmAddr_alg1Ver (DSP2_PM_SEG1_ADDR) //0x1BFF // decoder 2 version 216*53ee8cc1Swenshuai.xi #define DSP2PmAddr_alg2Ver (DSP2_PM_MAIN_ADDR-1) 217*53ee8cc1Swenshuai.xi 218*53ee8cc1Swenshuai.xi #define DSP2PmAddr_peq48KCoeffAddr (DSP2PmAddr_mainVer + 1) 219*53ee8cc1Swenshuai.xi #define DSP2PmAddr_peq32KCoeffAddr (DSP2PmAddr_peq48KCoeffAddr) 220*53ee8cc1Swenshuai.xi #define DSP2PmAddr_peqscale48KAddr (DSP2PmAddr_peq48KCoeffAddr + 40 ) 221*53ee8cc1Swenshuai.xi #define DSP2PmAddr_peqbandEnAddr (DSP2PmAddr_peqscale48KAddr + 8 ) 222*53ee8cc1Swenshuai.xi #define DSP2PmAddr_peqbandDoubleAddr (DSP2PmAddr_peqbandEnAddr + 1 ) 223*53ee8cc1Swenshuai.xi #define DSP2PmAddr_hpf48KCoeffAddr (DSP2PmAddr_peqbandDoubleAddr + 1 ) 224*53ee8cc1Swenshuai.xi #define DSP2PmAddr_toneSelectAddr (DSP2PmAddr_hpf48KCoeffAddr + 5 ) 225*53ee8cc1Swenshuai.xi #define DSP2PmAddr_bass48KCoeffAddr (DSP2PmAddr_toneSelectAddr + 1 ) 226*53ee8cc1Swenshuai.xi #define DSP2PmAddr_bassscale48KAddr (DSP2PmAddr_bass48KCoeffAddr + 5 ) 227*53ee8cc1Swenshuai.xi #define DSP2PmAddr_treble48KCoeffAddr (DSP2PmAddr_bassscale48KAddr + 1 ) 228*53ee8cc1Swenshuai.xi #define DSP2PmAddr_treblescale48KAddr (DSP2PmAddr_treble48KCoeffAddr + 5 ) 229*53ee8cc1Swenshuai.xi #define DSP2PmAddr_VolEaseAddr (DSP2PmAddr_treblescale48KAddr + 1 ) 230*53ee8cc1Swenshuai.xi 231*53ee8cc1Swenshuai.xi /* ATV_Enc */ 232*53ee8cc1Swenshuai.xi #define DSP2_PM_ATV_Enc_input_attenuation_ADDR (DSP2PmAddr_alg1Ver+1) 233*53ee8cc1Swenshuai.xi #define DSP2_PM_ATV_Enc_output_scaling_ADDR (DSP2PmAddr_alg1Ver+2) 234*53ee8cc1Swenshuai.xi #define DSP2_PM_BTSC_Enc_output_M_gain_ADDR (DSP2PmAddr_alg1Ver+3) 235*53ee8cc1Swenshuai.xi #define DSP2_PM_BTSC_Enc_output_D_gain_ADDR (DSP2PmAddr_alg1Ver+4) 236*53ee8cc1Swenshuai.xi #define DSP2_PM_BTSC_Enc_output_SAP_gain_ADDR (DSP2PmAddr_alg1Ver+5) 237*53ee8cc1Swenshuai.xi 238*53ee8cc1Swenshuai.xi /* SND DSP DM vars */ 239*53ee8cc1Swenshuai.xi 240*53ee8cc1Swenshuai.xi /* Extra Box Address */ 241*53ee8cc1Swenshuai.xi 242*53ee8cc1Swenshuai.xi /* sys_param */ 243*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_mainVer 0xB800 244*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_mainAudioDelay (DSP2XboxAddr_mainVer + 0x01) 245*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_spdifDelay (DSP2XboxAddr_mainVer + 0x02) 246*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hpDelay (DSP2XboxAddr_mainVer + 0x03) 247*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hdmiNonPcmSts (DSP2XboxAddr_mainVer + 0x04) 248*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_btFrameSize (DSP2XboxAddr_mainVer + 0x05) 249*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_ipSecurity (DSP2XboxAddr_mainVer + 0x06) 250*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hdmiDelay (DSP2XboxAddr_mainVer + 0x07) 251*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_ch5InputDelay (DSP2XboxAddr_mainVer + 0x08) 252*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_ch6InputDelay (DSP2XboxAddr_mainVer + 0x09) 253*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_multiChInputDelay (DSP2XboxAddr_mainVer + 0x0A) 254*53ee8cc1Swenshuai.xi 255*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_peq48KCoeffAddr (DSP2XboxAddr_mainVer + 0x10) // len 40 256*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_peq32KCoeffAddr (DSP2XboxAddr_peq48KCoeffAddr) 257*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_peqscale48KAddr (DSP2XboxAddr_mainVer + 0x38) // len 8 258*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_peqbandEnAddr (DSP2XboxAddr_mainVer + 0x40) // len 1 259*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_peqbandDoubleAddr (DSP2XboxAddr_mainVer + 0x41) // len 1 260*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hpf48KCoeffAddr (DSP2XboxAddr_mainVer + 0x42) // len 5 261*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_toneSelectAddr (DSP2XboxAddr_mainVer + 0x47) // len 1 262*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_bass48KCoeffAddr (DSP2XboxAddr_mainVer + 0x48) // len 5 263*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_bassscale48KAddr (DSP2XboxAddr_mainVer + 0x4D) // len 1 264*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_treble48KCoeffAddr (DSP2XboxAddr_mainVer + 0x4E) // len 5 265*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_treblescale48KAddr (DSP2XboxAddr_mainVer + 0x53) // len 1 266*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_VolEaseAddr (DSP2XboxAddr_mainVer + 0x54) // len 9 267*53ee8cc1Swenshuai.xi 268*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_peqUpdateFlag (DSP2XboxAddr_mainVer + 0x5D) // len 1 269*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hpUpdateFlag (DSP2XboxAddr_mainVer + 0x5E) // len 1 270*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_bassUpdateFlag (DSP2XboxAddr_mainVer + 0x5F) // len 1 271*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_trebleUpdateFlag (DSP2XboxAddr_mainVer + 0x60) // len 1 272*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_toneUpdateFlag (DSP2XboxAddr_mainVer + 0x61) // len 1 273*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_easeAUpdateFlag (DSP2XboxAddr_mainVer + 0x62) // len 1 274*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_easeBUpdateFlag (DSP2XboxAddr_mainVer + 0x63) // len 1 275*53ee8cc1Swenshuai.xi 276*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_ATVEnc_input_attenuation_ADDR (DSP2XboxAddr_mainVer + 0x64) // len 1 277*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_ATVEnc_output_scaling_ADDR (DSP2XboxAddr_ATVEnc_input_attenuation_ADDR + 1) 278*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_BTSCEnc_output_M_gain_ADDR (DSP2XboxAddr_ATVEnc_output_scaling_ADDR + 1) 279*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_BTSCEnc_output_D_gain_ADDR (DSP2XboxAddr_BTSCEnc_output_M_gain_ADDR + 1) 280*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_BTSCEnc_output_SAP_gain_ADDR (DSP2XboxAddr_BTSCEnc_output_D_gain_ADDR + 1) 281*53ee8cc1Swenshuai.xi 282*53ee8cc1Swenshuai.xi /* sys_info */ 283*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_IO_Info1 0xB900 284*53ee8cc1Swenshuai.xi #define IO_INFO1_DAC1_OUT 0x0000 285*53ee8cc1Swenshuai.xi #define IO_INFO1_DAC2_OUT 0x0002 286*53ee8cc1Swenshuai.xi #define IO_INFO1_DAC3_OUT 0x0004 287*53ee8cc1Swenshuai.xi #define IO_INFO1_DAC4_OUT 0x0006 288*53ee8cc1Swenshuai.xi #define IO_INFO1_IIS1_OUT 0x0008 289*53ee8cc1Swenshuai.xi #define IO_INFO1_SPDIF_OUT 0x000A 290*53ee8cc1Swenshuai.xi #define IO_INFO1_HDMI_OUT 0x000C 291*53ee8cc1Swenshuai.xi 292*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_IO_Info2 DSP2XboxAddr_IO_Info1 + 0x000E 293*53ee8cc1Swenshuai.xi #define IO_INFO2_MUL_CH1 0x0000 294*53ee8cc1Swenshuai.xi #define IO_INFO2_MUL_CH2 0x0002 295*53ee8cc1Swenshuai.xi #define IO_INFO2_MUL_CH3 0x0004 296*53ee8cc1Swenshuai.xi #define IO_INFO2_MUL_CH4 0x0006 297*53ee8cc1Swenshuai.xi #define IO_INFO2_RAW 0x0008 298*53ee8cc1Swenshuai.xi #define IO_INFO2_RAW_DELAY 0x000A 299*53ee8cc1Swenshuai.xi #define IO_INFO2_RAW_DELAY_SE 0x000C 300*53ee8cc1Swenshuai.xi #define IO_INFO2_SCART 0x000E 301*53ee8cc1Swenshuai.xi #define IO_INFO2_KTV 0x0010 302*53ee8cc1Swenshuai.xi #define IO_INFO2_MUL_CH6 0x0012 303*53ee8cc1Swenshuai.xi #define IO_INFO2_SPDIF_DATA 0x0014 304*53ee8cc1Swenshuai.xi #define IO_INFO2_RESERVED4 0x0016 305*53ee8cc1Swenshuai.xi #define IO_INFO2_SINTONE 0x0018 306*53ee8cc1Swenshuai.xi #define IO_INFO2_MUL_CH8 0x001A 307*53ee8cc1Swenshuai.xi #define IO_INFO2_GPA_FS 0x001C 308*53ee8cc1Swenshuai.xi #define IO_INFO2_GPB_FS 0x001D 309*53ee8cc1Swenshuai.xi #define IO_INFO2_GPC_FS 0x001E 310*53ee8cc1Swenshuai.xi #define IO_INFO2_ALSA_MODE 0x001F 311*53ee8cc1Swenshuai.xi 312*53ee8cc1Swenshuai.xi 313*53ee8cc1Swenshuai.xi /* common */ 314*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_dec1_signal_energy (DSP2XboxAddr_IO_Info2 + 0x0020) // len 1 315*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture_overflow (DSP2XboxAddr_IO_Info2 + 0x0021) // len 1 316*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture_underflow (DSP2XboxAddr_IO_Info2 + 0x0022) // len 1 317*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture_volume (DSP2XboxAddr_IO_Info2 + 0x0023) // len 1 318*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture2_overflow (DSP2XboxAddr_IO_Info2 + 0x0024) // len 1 319*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture2_underflow (DSP2XboxAddr_IO_Info2 + 0x0025) // len 1 320*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture2_volume (DSP2XboxAddr_IO_Info2 + 0x0026) // len 1 321*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture3_overflow (DSP2XboxAddr_IO_Info2 + 0x0027) // len 1 322*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture3_underflow (DSP2XboxAddr_IO_Info2 + 0x0028) // len 1 323*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_pcmCapture3_volume (DSP2XboxAddr_IO_Info2 + 0x0029) // len 1 324*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_swDmaRdr_ctrlBase (DSP2XboxAddr_IO_Info2 + 0x002A) // len 11 325*53ee8cc1Swenshuai.xi 326*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hdmi_npcm_lock (DSP2XboxAddr_IO_Info2 + 0x0035) // len 1 327*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hdmi_unstable_protect (DSP2XboxAddr_IO_Info2 + 0x0036) // len 1 328*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hdmi_unstable_threshold (DSP2XboxAddr_IO_Info2 + 0x0037) // len 1 329*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_hdmi_decimation_mode_flag (DSP2XboxAddr_IO_Info2 + 0x0038) // len 2 330*53ee8cc1Swenshuai.xi 331*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_mips_crisis_flag (DSP2XboxAddr_IO_Info2 + 0x003A) // len 1 332*53ee8cc1Swenshuai.xi 333*53ee8cc1Swenshuai.xi /* basic sound effect */ 334*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_AvcSOffsetAddr (DSP2XboxAddr_IO_Info2 + 0x003B) // len 1 335*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_KTV_XAGain (DSP2XboxAddr_IO_Info2 + 0x003C) // len 1 336*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_KTV_XBGain (DSP2XboxAddr_IO_Info2 + 0x003D) // len 1 337*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_Multi_Channel_VOL (DSP2XboxAddr_IO_Info2 + 0x003E) // len 1 338*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_MixerGroup1_Ctrl_addr (DSP2XboxAddr_IO_Info2 + 0x003F) // len 1 339*53ee8cc1Swenshuai.xi #define DSP2Xboxaddr_MixerGroup2_Ctrl_addr (DSP2XboxAddr_IO_Info2 + 0x0040) // len 1 340*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_sinetone_StartFreq_Addr (DSP2XboxAddr_IO_Info2 + 0x0041) // len 1 341*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_sinetone_EndFreq_Addr (DSP2XboxAddr_IO_Info2 + 0x0042) // len 1 342*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_sinetone_SweepStep_Addr (DSP2XboxAddr_IO_Info2 + 0x0043) // len 1 343*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_sinetone_Duration_Addr (DSP2XboxAddr_IO_Info2 + 0x0044) // len 1 344*53ee8cc1Swenshuai.xi 345*53ee8cc1Swenshuai.xi /******************************************************************** 346*53ee8cc1Swenshuai.xi * Decoder default setting 347*53ee8cc1Swenshuai.xi ********************************************************************/ 348*53ee8cc1Swenshuai.xi /* SIF DSP PM vars */ 349*53ee8cc1Swenshuai.xi /* 350*53ee8cc1Swenshuai.xi #define ADDR_gain_base_2 0x2521 //B860 351*53ee8cc1Swenshuai.xi #define ADDR_thr_base_2 0x2620 352*53ee8cc1Swenshuai.xi #define ADDR_pfir_base_2 0x2690 353*53ee8cc1Swenshuai.xi // for SIF BTSC DSP PM vars // 354*53ee8cc1Swenshuai.xi #define BTSC_COMPILE_OPTION_Addr_2 0x25F1 // len 1 355*53ee8cc1Swenshuai.xi #define BTSC_OUTPUT_GAIN_Addr_2 0x2621 // len 2 356*53ee8cc1Swenshuai.xi #define BTSC_THRESHOLD_Addr_2 0x2623 // len 10 357*53ee8cc1Swenshuai.xi #define MTS_OUTPUT_GAIN_Addr_2 0x2634 //len 6 358*53ee8cc1Swenshuai.xi #define SIF_AGC_THRESHOLD_Addr_2 0x252D //len 3 359*53ee8cc1Swenshuai.xi 360*53ee8cc1Swenshuai.xi /// PAL gain setting address 361*53ee8cc1Swenshuai.xi #define ADDR_fm_stdM_gain_2 ADDR_gain_base_2 // len = 4 362*53ee8cc1Swenshuai.xi #define ADDR_fm_stdX_gain_2 ADDR_fm_stdM_gain_2+4 // len = 4 363*53ee8cc1Swenshuai.xi #define ADDR_nicam_gain_2 ADDR_fm_stdX_gain_2+4 // len = 2 364*53ee8cc1Swenshuai.xi #define ADDR_am_gain_2 ADDR_nicam_gain_2+2 // len = 2 365*53ee8cc1Swenshuai.xi #define ADDR_agc_gain_2 ADDR_am_gain_2+2 // len = 24 366*53ee8cc1Swenshuai.xi 367*53ee8cc1Swenshuai.xi // PAL threshold setting address 368*53ee8cc1Swenshuai.xi #define ADDR_a2_stdM_thr_2 ADDR_thr_base_2 // len = 15 369*53ee8cc1Swenshuai.xi #define ADDR_a2_stdBG_thr_2 ADDR_a2_stdM_thr_2+15 // len = 15 370*53ee8cc1Swenshuai.xi #define ADDR_a2_stdDK_thr_2 ADDR_a2_stdBG_thr_2+15 // len = 15 371*53ee8cc1Swenshuai.xi #define ADDR_a2_stdI_thr_2 ADDR_a2_stdDK_thr_2+15 // len = 4 372*53ee8cc1Swenshuai.xi #define ADDR_am_thr_2 ADDR_a2_stdI_thr_2+4 // len = 3 373*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdM_thr_2 ADDR_am_thr_2+3 // len = 4 374*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdBG_thr_2 ADDR_hidev_stdM_thr_2+4 // len = 4 375*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdDK_thr_2 ADDR_hidev_stdBG_thr_2+4 // len = 4 376*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdI_thr_2 ADDR_hidev_stdDK_thr_2+4 // len = 4 377*53ee8cc1Swenshuai.xi #define ADDR_nicam_stdBG_pherr_thr_2 ADDR_hidev_stdI_thr_2+4 //len = 3 378*53ee8cc1Swenshuai.xi #define ADDR_nicam_stdI_pherr_thr_2 ADDR_nicam_stdBG_pherr_thr_2+3 // len = 3 379*53ee8cc1Swenshuai.xi #define ADDR_a2_bg_nicam_fm_nsr_thr_2 0x246F // len = 1 380*53ee8cc1Swenshuai.xi #define ADDR_a2_dk_nicam_fm_nsr_thr_2 0x2470 // len = 1 381*53ee8cc1Swenshuai.xi 382*53ee8cc1Swenshuai.xi // pfir setting address 383*53ee8cc1Swenshuai.xi #define ADDR_hidev_demfir_2 ADDR_pfir_base_2 // len = 15 384*53ee8cc1Swenshuai.xi #define ADDR_fm_ch1_pfir_2 ADDR_hidev_demfir_2+16 // len = 30 385*53ee8cc1Swenshuai.xi #define ADDR_fm_ch2_pfir_2 ADDR_fm_ch1_pfir_2+30 // len = 30 386*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv1_pfir_2 ADDR_fm_ch2_pfir_2+30 // len = 20 387*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv2_pfir_2 ADDR_hidev_lv1_pfir_2+20 // len = 20 388*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv3_pfir_2 ADDR_hidev_lv2_pfir_2+20 // len = 20 389*53ee8cc1Swenshuai.xi 390*53ee8cc1Swenshuai.xi // BTSC threshold setting address 391*53ee8cc1Swenshuai.xi #define HIDEV_NSR_THRESHOLD_Addr_2 BTSC_THRESHOLD_Addr_2+10 // len 2 392*53ee8cc1Swenshuai.xi #define BTSC_MONO_AMP_THRESHOLD_Addr_2 HIDEV_NSR_THRESHOLD_Addr_2+2 // len 2 393*53ee8cc1Swenshuai.xi #define HIDEV_AMP_THRESHOLD_Addr_2 BTSC_MONO_AMP_THRESHOLD_Addr_2+2 // len 2 394*53ee8cc1Swenshuai.xi 395*53ee8cc1Swenshuai.xi #define BTSC_SAP_PHASE_DIFF_CLIP_THR_Addr_2 HIDEV_AMP_THRESHOLD_Addr_2+2 // len 1 396*53ee8cc1Swenshuai.xi #define BTSC_PILOT_DEBOUNCE_THRESHOLD_Addr_2 MTS_OUTPUT_GAIN_Addr_2+6 // len 3 397*53ee8cc1Swenshuai.xi #define BTSC_SAP_ON_DETECTION_DEBOUNCE_THRESHOLD_Addr_2 BTSC_PILOT_DEBOUNCE_THRESHOLD_Addr_2+3 // len 1 398*53ee8cc1Swenshuai.xi */ 399*53ee8cc1Swenshuai.xi 400*53ee8cc1Swenshuai.xi /************************************************ 401*53ee8cc1Swenshuai.xi * Below is MailBox config 402*53ee8cc1Swenshuai.xi *************************************************/ 403*53ee8cc1Swenshuai.xi 404*53ee8cc1Swenshuai.xi /************************************************ 405*53ee8cc1Swenshuai.xi * MCU to DSP mailbox 406*53ee8cc1Swenshuai.xi ************************************************/ 407*53ee8cc1Swenshuai.xi /* SIF */ 408*53ee8cc1Swenshuai.xi #define M2S_MBOX_SIF_CMD_STANDARD MB_2DC0 409*53ee8cc1Swenshuai.xi #define M2S_MBOX_SIF_CMD_PFIRBANDWIDTH MB_2DC2 410*53ee8cc1Swenshuai.xi #define M2S_MBOX_SIF_CMD_MODE1 MB_2DC4 411*53ee8cc1Swenshuai.xi #define M2S_MBOX_SIF_CMD_MODE2 MB_2DC6 412*53ee8cc1Swenshuai.xi 413*53ee8cc1Swenshuai.xi /* ATV Encoder */ 414*53ee8cc1Swenshuai.xi #define M2S_MBOX_ATVEnc_MODE_CTRL MB_2DC0 415*53ee8cc1Swenshuai.xi 416*53ee8cc1Swenshuai.xi /* SPDIF */ 417*53ee8cc1Swenshuai.xi #define M2S_MBOX_SPDIF_SETTING MB_2D8E 418*53ee8cc1Swenshuai.xi #define M2S_MBOX_HDMI_SETTING MB_2D8E 419*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_SETTING_BIT_MUTE MBOX_BIT0 420*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_SETTING_BIT_NPCMSEL MBOX_BIT1 421*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_SETTING_R2_NPCM_SELBIT MBOX_BIT2 422*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_SETTING_DVB2_NPCM_SELBIT MBOX_BIT3 423*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_SETTING_MINUS_11DB_BIT MBOX_BIT5 424*53ee8cc1Swenshuai.xi #define MBOX_HDMI_SETTING_BIT_NPCMSEL MBOX_BIT13 425*53ee8cc1Swenshuai.xi #define MBOX_HDMI_SETTING_BIT_HDMI_OUTPATH MBOX_BIT14 426*53ee8cc1Swenshuai.xi #define MBOX_HDMI_SETTING_BIT_MUTE MBOX_BIT15 427*53ee8cc1Swenshuai.xi 428*53ee8cc1Swenshuai.xi #define M2S_MBOX_DOLBY_LOUDNESS_INFO MB_2D98 429*53ee8cc1Swenshuai.xi #define MBOX_DOLBY_LOUDNESS_ENABLE_BIT MBOX_BIT15 430*53ee8cc1Swenshuai.xi #define MBOX_DOLBY_LOUDNESS_ATSC_MODE MBOX_BIT14 431*53ee8cc1Swenshuai.xi #define MBOX_DOLBY_LOUDNESS_OTHER_MODE MBOX_BIT13 432*53ee8cc1Swenshuai.xi 433*53ee8cc1Swenshuai.xi /* Sound effect */ 434*53ee8cc1Swenshuai.xi #define M2S_MBOX_AUOUT0_VOL MB_2D00 435*53ee8cc1Swenshuai.xi #define M2S_MBOX_AUOUT1_VOL MB_2D02 436*53ee8cc1Swenshuai.xi #define M2S_MBOX_AUOUT2_VOL MB_2D04 437*53ee8cc1Swenshuai.xi #define M2S_MBOX_AUOUT3_VOL MB_2D06 438*53ee8cc1Swenshuai.xi #define M2S_MBOX_I2S_VOL MB_2D08 439*53ee8cc1Swenshuai.xi #define M2S_MBOX_SPDIF_VOL MB_2D0A 440*53ee8cc1Swenshuai.xi #define M2S_MBOX_SRC_VOL MB_2D0C 441*53ee8cc1Swenshuai.xi #define M2S_MBOX_HDMI_VOL MB_2D0E //STB only 442*53ee8cc1Swenshuai.xi #define M2S_MBOX_I2S2_VOL MB_2D0E 443*53ee8cc1Swenshuai.xi #define M2S_MBOX_PRESCALE MB_2D10 444*53ee8cc1Swenshuai.xi 445*53ee8cc1Swenshuai.xi #define M2S_MBOX_EQ1_GAIN MB_2D14 //[15:8] 446*53ee8cc1Swenshuai.xi #define M2S_MBOX_BASS_CTRL MB_2D14 //[7:0] 447*53ee8cc1Swenshuai.xi #define M2S_MBOX_EQ2_GAIN MB_2D16 //[15:8] 448*53ee8cc1Swenshuai.xi #define M2S_MBOX_TREBLE_CTRL MB_2D16 //[7:0] 449*53ee8cc1Swenshuai.xi #define M2S_MBOX_EQ3_GAIN MB_2D18 //[15:8] 450*53ee8cc1Swenshuai.xi #define M2S_MBOX_SUPBASS_CTRL MB_2D18 //[7:0] 451*53ee8cc1Swenshuai.xi #define M2S_MBOX_EQ4_GAIN MB_2D1A //[15:8] 452*53ee8cc1Swenshuai.xi #define M2S_MBOX_EQ5_GAIN MB_2D1C //[15:8] 453*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_CTRL MB_2D1E 454*53ee8cc1Swenshuai.xi 455*53ee8cc1Swenshuai.xi #define M2S_MBOX_SNDEFF_EN MB_2D20 456*53ee8cc1Swenshuai.xi #define M2S_MBOX_STEREO_EN_BIT MBOX_BIT15 457*53ee8cc1Swenshuai.xi #define M2S_MBOX_DRC_EN_BIT MBOX_BIT13 458*53ee8cc1Swenshuai.xi #define M2S_MBOX_AVC_EN_BIT MBOX_BIT12 459*53ee8cc1Swenshuai.xi #define M2S_MBOX_TONE_EN_BIT MBOX_BIT11 460*53ee8cc1Swenshuai.xi #define M2S_MBOX_SPATIAL_EN_BIT MBOX_BIT10 461*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOLBAL_EN_BIT MBOX_BIT9 462*53ee8cc1Swenshuai.xi #define M2S_MBOX_GEQ_EN_BIT MBOX_BIT7 463*53ee8cc1Swenshuai.xi #define M2S_MBOX_EASE_EN_BIT MBOX_BIT6 464*53ee8cc1Swenshuai.xi #define M2S_MBOX_BASSBOOST_EN_BIT MBOX_BIT5 465*53ee8cc1Swenshuai.xi #define M2S_MBOX_ECHO_EN_BIT MBOX_BIT4 466*53ee8cc1Swenshuai.xi #define M2S_MBOX_DC_REMOVE_EN_BIT MBOX_BIT3 467*53ee8cc1Swenshuai.xi #define M2S_MBOX_HPF_EN_BIT MBOX_BIT2 468*53ee8cc1Swenshuai.xi #define M2S_MBOX_COEFFUPDATE_EN_BIT MBOX_BIT1 469*53ee8cc1Swenshuai.xi #define M2S_MBOX_PEQ_EN_BIT MBOX_BIT0 470*53ee8cc1Swenshuai.xi 471*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOLUME_EN MB_2D22 472*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_DAC0_EN_BIT MBOX_BIT0 473*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_DAC1_EN_BIT MBOX_BIT1 474*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_DAC2_EN_BIT MBOX_BIT2 475*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_DAC3_EN_BIT MBOX_BIT3 476*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_I2S0_EN_BIT MBOX_BIT4 477*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_I2S1_EN_BIT MBOX_BIT5 478*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_I2S2_EN_BIT MBOX_BIT6 479*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_I2S3_EN_BIT MBOX_BIT7 480*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_SPDIF_EN_BIT MBOX_BIT8 481*53ee8cc1Swenshuai.xi #define M2S_MBOX_VOL_SRC_EN_BIT MBOX_BIT9 482*53ee8cc1Swenshuai.xi 483*53ee8cc1Swenshuai.xi #define M2S_MBOX_AVC_CTRL MB_2D24 //[15:13] AT, [12:10] RT, [9:8] AVC_Mode, [7:0] AVC Threshold 484*53ee8cc1Swenshuai.xi #define M2S_MBOX_SURR_CTRL MB_2D26 485*53ee8cc1Swenshuai.xi 486*53ee8cc1Swenshuai.xi #define M2S_MBOX_SINE_GEN MB_2D28 487*53ee8cc1Swenshuai.xi #define M2S_MBOX_SINE_GEN_CTRL_MASK 0x7F 488*53ee8cc1Swenshuai.xi #define M2S_MBOX_SINE_GEN_EN_BIT MBOX_BIT7 489*53ee8cc1Swenshuai.xi #define M2S_MBOX_MENUSOUND_MODE_SEL_MASK 0xF0 // [7:4] MENUSOUND Mode_Select, 0: Sine tone (default 1khz), 1: Sweep, 2: Sweep_300_800_5sec, 3: Sweep_800_300_5sec 490*53ee8cc1Swenshuai.xi #define M2S_MBOX_MENUSOUND_MUTE_RIGHT_BIT MBOX_BIT3 // [3] MENUSOUND RIGHT_CHANNEL_MUTE, 1->mute, 0->un-mute 491*53ee8cc1Swenshuai.xi #define M2S_MBOX_MENUSOUND_MUTE_LEFT_BIT MBOX_BIT2 // [2] MENUSOUND LEFT_CHANNEL_MUTE , 1->mute, 0->un-mute 492*53ee8cc1Swenshuai.xi #define M2S_MBOX_MENUSOUND_PAUSE_BIT MBOX_BIT1 // [1] MENUSOUND PAUSE 493*53ee8cc1Swenshuai.xi #define M2S_MBOX_MENUSOUND_PLAY_BIT MBOX_BIT0 // [0] MENUSOUND PLAY Trigger bit when change (from 0 to 1) 494*53ee8cc1Swenshuai.xi 495*53ee8cc1Swenshuai.xi #define M2S_MBOX_BALANCE_EN MB_2D2A 496*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_DAC0_EN_BIT MBOX_BIT0 497*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_DAC1_EN_BIT MBOX_BIT1 498*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_DAC2_EN_BIT MBOX_BIT2 499*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_DAC3_EN_BIT MBOX_BIT3 500*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_I2S0_EN_BIT MBOX_BIT4 501*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_I2S1_EN_BIT MBOX_BIT5 502*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_I2S2_EN_BIT MBOX_BIT6 503*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_I2S3_EN_BIT MBOX_BIT7 504*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_SPDIF_EN_BIT MBOX_BIT8 505*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_SRC_EN_BIT MBOX_BIT9 506*53ee8cc1Swenshuai.xi #define M2S_MBOX_BAL_HDMI_EN_BIT MBOX_BIT10 507*53ee8cc1Swenshuai.xi 508*53ee8cc1Swenshuai.xi #define M2S_MBOX_DRC_CTRL MB_2D2E //[7:0] DRC1 Threshold 509*53ee8cc1Swenshuai.xi #define M2S_MBOX_SOUND_MODE_SEL MB_2D30 //[1:0] : LR / LL / RR 510*53ee8cc1Swenshuai.xi #define M2S_MBOX_POWER_DOWN MB_2D30 //[8:9] 511*53ee8cc1Swenshuai.xi #define M2S_MBOX_NR_CTRL MB_2D32 512*53ee8cc1Swenshuai.xi 513*53ee8cc1Swenshuai.xi #define M2S_MBOX_ADVSND_EN MB_2D40 514*53ee8cc1Swenshuai.xi #define M2S_MBOX_ADVSND_SUMMARY_EN_BIT MBOX_BIT15 515*53ee8cc1Swenshuai.xi 516*53ee8cc1Swenshuai.xi #define M2S_MBOX_KTV_CTRL MB_2D46 517*53ee8cc1Swenshuai.xi #define M2S_MBOX_KTV_EN_BIT MBOX_BIT15 518*53ee8cc1Swenshuai.xi 519*53ee8cc1Swenshuai.xi #define M2S_MBOX_INPUT_MUX_SEL1 MB_2D50 520*53ee8cc1Swenshuai.xi #define M2S_MBOX_INPUT_MUX_SEL2 MB_2D52 521*53ee8cc1Swenshuai.xi #define M2S_MBOX_INPUT_MUX_SEL3 MB_2D54 522*53ee8cc1Swenshuai.xi 523*53ee8cc1Swenshuai.xi #define M2S_MBOX_KTV8_VOL MB_2D5A 524*53ee8cc1Swenshuai.xi #define M2S_MBOX_KTV5_VOL MB_2D5C 525*53ee8cc1Swenshuai.xi #define M2S_MBOX_KTV6_VOL MB_2D5E 526*53ee8cc1Swenshuai.xi #define M2S_MBOX_CH7_VOL MB_2D58 527*53ee8cc1Swenshuai.xi 528*53ee8cc1Swenshuai.xi #define M2S_MBOX_AD_CONTROL MB_2DD8 529*53ee8cc1Swenshuai.xi #define M2S_MBOX_MIX_MODE_BSTART MBOX_BITS_SHIFT-11 530*53ee8cc1Swenshuai.xi #define M2S_MBOX_MIX_MODE_BMASK 0x7 531*53ee8cc1Swenshuai.xi 532*53ee8cc1Swenshuai.xi /* M2S_MBOX_MIX_MODE */ 533*53ee8cc1Swenshuai.xi #define GPA_MIX_MODE_IS_FORWARD 0 534*53ee8cc1Swenshuai.xi #define GPA_MIX_MODE_IS_BACKWARD 1 535*53ee8cc1Swenshuai.xi #define GPA_MIX_MODE_IS_NULL 2 ! 2 & 3: NULL_Mixer_Mode 536*53ee8cc1Swenshuai.xi 537*53ee8cc1Swenshuai.xi #define M2S_MBOX_DBG_CMD1 MB_2DDC 538*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_SET_ADDR 0x0200 539*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_WRITE_DM 0x0300 540*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_WRITE_PM 0x0400 541*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_READ_DM 0x0500 542*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_READ_PM 0x0600 543*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_READ_PMASK 0x0700 544*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_READ_IMASK 0x0800 545*53ee8cc1Swenshuai.xi 546*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_READ_MAIN_VER 0x9000 547*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_READ_ALG1_VER 0x9100 548*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_READ_ALG2_VER 0x9200 549*53ee8cc1Swenshuai.xi 550*53ee8cc1Swenshuai.xi //#define MBOX_DBGCMD_MIP_INT 0xE000 551*53ee8cc1Swenshuai.xi //#define MBOX_DBGCMD_ENC_INT 0xE100 552*53ee8cc1Swenshuai.xi //#define MBOX_DBGCMD_FILE_PTS_INT 0xEA00 553*53ee8cc1Swenshuai.xi 554*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_SIF_BEG 0xF000 555*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_SIF_END 0xF100 556*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_WAIT_MCU_START 0xF300 557*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_ADVSND_BEG 0xF400 558*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_ADVSND_END 0xF500 559*53ee8cc1Swenshuai.xi 560*53ee8cc1Swenshuai.xi #define M2S_MBOX_DBG_CMD2 MB_2DDE 561*53ee8cc1Swenshuai.xi 562*53ee8cc1Swenshuai.xi /* MISC */ 563*53ee8cc1Swenshuai.xi #define M2S_MBOX_SW_DMA_READER_DDR_WtPtr MB_2D34 564*53ee8cc1Swenshuai.xi #define M2S_MBOX_SW_DMA_READER_DDR_Ctrl MB_2D36 565*53ee8cc1Swenshuai.xi #define M2S_MBOX_SW_DMA_READER_DDR_SynthFreq MB_2D56 566*53ee8cc1Swenshuai.xi #define M2S_MBOX_SW_DMA_READER_DDR_SynthFreq_L 0 //Reserved 567*53ee8cc1Swenshuai.xi 568*53ee8cc1Swenshuai.xi #define M2S_MBOX_CAPTURE_CTRL MB_2D4A //[7:0] PCM_capture1 [15:8] PCM_capture2 569*53ee8cc1Swenshuai.xi //#define M2S_MBOX_CAPTURE3_CTRL //MB_2D4C //[7:0] PCM_capture3 //RESERVED 570*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_CH5 1 571*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_CH6 2 572*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_CH7 3 573*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_CH8 4 574*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_ADC1 5 575*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_ADC2 6 576*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_Raw_Delay_SE 7 577*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_MIXER 8 578*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_Raw 9 579*53ee8cc1Swenshuai.xi #define M2S_MBOX_GET_DEBUG 128 580*53ee8cc1Swenshuai.xi 581*53ee8cc1Swenshuai.xi #define M2S_MBOX_PCM_CAPTURE_DDR_RdPtr MB_2DD4 582*53ee8cc1Swenshuai.xi #define M2S_MBOX_PCM_CAPTURE_DDR_Size MB_2DD6 583*53ee8cc1Swenshuai.xi 584*53ee8cc1Swenshuai.xi #define M2S_MBOX_PCM_CAPTURE2_DDR_RdPtr MB_2D38 585*53ee8cc1Swenshuai.xi #define M2S_MBOX_PCM_CAPTURE2_DDR_Size MB_2D3A 586*53ee8cc1Swenshuai.xi 587*53ee8cc1Swenshuai.xi //#define M2S_MBOX_PCM_CAPTURE3_DDR_RdPtr //MB_2D94 //RESERVED 588*53ee8cc1Swenshuai.xi //#define M2S_MBOX_PCM_CAPTURE3_DDR_Size //MB_2D96 //RESERVED 589*53ee8cc1Swenshuai.xi 590*53ee8cc1Swenshuai.xi /************************************************ 591*53ee8cc1Swenshuai.xi * DSP to MCU mailbox 592*53ee8cc1Swenshuai.xi ************************************************/ 593*53ee8cc1Swenshuai.xi #define S2M_MBOX_ES_MEMCNT MB_2D70 594*53ee8cc1Swenshuai.xi #define S2M_MBOX_PCM_MEMCNT MB_2D72 595*53ee8cc1Swenshuai.xi #define S2M_MBOX_MM_BROWSE_TIME MB_2D74 596*53ee8cc1Swenshuai.xi #define S2M_MBOX_MM_PTS_IN_SEC MB_2D76 597*53ee8cc1Swenshuai.xi #define S2M_MBOX_MM_PTS_IN_MSEC MB_2D78 598*53ee8cc1Swenshuai.xi #define S2M_MBOX_MM_PTS_HI MB_2D7A 599*53ee8cc1Swenshuai.xi #define S2M_MBOX_MM_PTS_ME MB_2D7C 600*53ee8cc1Swenshuai.xi #define S2M_MBOX_MM_PTS_LO MB_2D7E 601*53ee8cc1Swenshuai.xi 602*53ee8cc1Swenshuai.xi #define S2M_MBOX_DEC_STATUS MB_2DFA 603*53ee8cc1Swenshuai.xi 604*53ee8cc1Swenshuai.xi #define S2M_MBOX_SIF_DETECTION_RESULT MB_2DE0 605*53ee8cc1Swenshuai.xi #define S2M_MBOX_SIF_STATUS_INFO MB_2DE2 606*53ee8cc1Swenshuai.xi #define S2M_MBOX_SIF_STATUS_MODE1 MB_2DE4 607*53ee8cc1Swenshuai.xi #define S2M_MBOX_SIF_STATUS_MODE2 MB_2DE6 608*53ee8cc1Swenshuai.xi #define S2M_MBOX_SIF_STATUS_NICAM_INFO MB_2DE8 609*53ee8cc1Swenshuai.xi #define S2M_MBOX_SIF_STATUS_NICAM_PARITY_ERR_CNT MB_2DEA 610*53ee8cc1Swenshuai.xi 611*53ee8cc1Swenshuai.xi #define S2M_MBOX_NR_STATUS MB_2DEE 612*53ee8cc1Swenshuai.xi #define S2M_MBOX_BSND_STATUS MB_2DEE 613*53ee8cc1Swenshuai.xi #define MBOX_NR_WORKING_NOW MBOX_BIT0 // 1: NR working now , 0 NR not working 614*53ee8cc1Swenshuai.xi #define MBOX_TONE_FUNC_SELECT MBOX_BIT1 // 0: EQ_Bass_Treble , 1: Bass_Treble_old 615*53ee8cc1Swenshuai.xi #define MBOX_PEQ_FUNC_SELECT MBOX_BIT2 // 0: PEQ: single precision , 1: double precision 616*53ee8cc1Swenshuai.xi 617*53ee8cc1Swenshuai.xi #define S2M_MBOX_MAIN_OVERFLOW_CNT MB_2DF2 //[15:8], full cnt of input SRAM buff2 618*53ee8cc1Swenshuai.xi #define S2M_MBOX_MAIN_UNDERFLOW_CNT MB_2DF2 //[ 7:0], empty cnt of output SRAM buff1 619*53ee8cc1Swenshuai.xi 620*53ee8cc1Swenshuai.xi #define S2M_MBOX_ISR_CNTR MB_2DF6 //[15:8] 621*53ee8cc1Swenshuai.xi #define S2M_MBOX_INTR_CMDTYPE MB_2DF6 //[ 7:0] 622*53ee8cc1Swenshuai.xi #define SE_DSP_INTR_CMD_MMES_NEED_DATA 0x0300 623*53ee8cc1Swenshuai.xi #define SE_DSP_INTR_CMD_REPORT_PTS 0x0500 624*53ee8cc1Swenshuai.xi #define SE_DSP_INTR_CMD_MMUNI_NEED_DATA 0x0600 625*53ee8cc1Swenshuai.xi #define SE_DSP_INTR_CMD_VOIP 0x0900 626*53ee8cc1Swenshuai.xi #define DSP_INTR_CMD_PCM_UPLOAD 0x3300 627*53ee8cc1Swenshuai.xi #define DSP_INTR_CMD_PCM_DOWNLOAD 0xC000 628*53ee8cc1Swenshuai.xi 629*53ee8cc1Swenshuai.xi #define S2M_MBOX_WHILE1_CNTR MB_2DF8 //[ 7:0] Always in Low Byte 630*53ee8cc1Swenshuai.xi #define S2M_MBOX_TIMER_CNTR MB_2DF8 //[15:8] Always in High Byte 631*53ee8cc1Swenshuai.xi 632*53ee8cc1Swenshuai.xi #define S2M_MBOX_DBG_RESULT1 MB_2DFC // 633*53ee8cc1Swenshuai.xi #define S2M_MBOX_DSP_INIT_ACK 0x00E3 634*53ee8cc1Swenshuai.xi 635*53ee8cc1Swenshuai.xi #define S2M_MBOX_DBG_RESULT2 MB_2DFE // 636*53ee8cc1Swenshuai.xi #define MBOX_DSP_RELOAD_ACK1 0x0033 637*53ee8cc1Swenshuai.xi #define MBOX_DSP_RELOAD_ACK2 0x0077 638*53ee8cc1Swenshuai.xi 639*53ee8cc1Swenshuai.xi #define S2M_MBOX_SW_DMA_READER_DDR_Level MB_2DE0 640*53ee8cc1Swenshuai.xi 641*53ee8cc1Swenshuai.xi #define S2M_MBOX_PCM_CAPTURE_DDR_WrPtr MB_2DF0 642*53ee8cc1Swenshuai.xi #define S2M_MBOX_PCM_CAPTURE2_DDR_WrPtr MB_2DF4 643*53ee8cc1Swenshuai.xi //#define S2M_MBOX_PCM_CAPTURE3_DDR_WrPtr //MB_2D7E //RESERVED 644*53ee8cc1Swenshuai.xi 645*53ee8cc1Swenshuai.xi #ifdef _COMPILE_DSP_ 646*53ee8cc1Swenshuai.xi /************************************************ 647*53ee8cc1Swenshuai.xi * DSP ddr address mapping 648*53ee8cc1Swenshuai.xi *************************************************/ 649*53ee8cc1Swenshuai.xi /* DRAM Config */ 650*53ee8cc1Swenshuai.xi .const DSP2_TO_COMMON_DRAM_OFFSET = (ASND_DSP_DDR_SIZE / BYTES_IN_MIU_LINE); 651*53ee8cc1Swenshuai.xi 652*53ee8cc1Swenshuai.xi /* SPDIF delay (GP C Bffer) */ 653*53ee8cc1Swenshuai.xi .const DSP2_SPDIF_DLY_DRAM_BASE = (OFFSET_SPDIF_DLY_DRAM_BASE / BYTES_IN_MIU_LINE); 654*53ee8cc1Swenshuai.xi .const DSP2_SPDIF_DLY_DRAM_SIZE = ((SPDIF_DLY_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); 655*53ee8cc1Swenshuai.xi 656*53ee8cc1Swenshuai.xi /* HDMI delay (GP C Bffer) */ 657*53ee8cc1Swenshuai.xi .const HDMI_DLY_DRAM_BASE = (SE_HDMI_DLY_DRAM_BASE / BYTES_IN_MIU_LINE); 658*53ee8cc1Swenshuai.xi .const HDMI_DLY_DRAM_SIZE = (SE_HDMI_DLY_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1; 659*53ee8cc1Swenshuai.xi 660*53ee8cc1Swenshuai.xi /* sound system */ 661*53ee8cc1Swenshuai.xi .const DSP2_DMA_START_DRAM_BASE1 = (OFFSET_SE_MAIN_IN_DRAM_ADDR / BYTES_IN_MIU_LINE); 662*53ee8cc1Swenshuai.xi .const DSP2_DMA_START_DRAM_SIZE1 = (SE_MAIN_IN_DRAM_SIZE / BYTES_IN_MIU_LINE); 663*53ee8cc1Swenshuai.xi .const DSP2_DMA_START_DRAM_BASE2 = (OFFSET_SE_MAIN_OUT_DRAM_ADDR / BYTES_IN_MIU_LINE); 664*53ee8cc1Swenshuai.xi .const DSP2_DMA_START_DRAM_SIZE2 = (SE_MAIN_OUT_DRAM_SIZE / BYTES_IN_MIU_LINE); 665*53ee8cc1Swenshuai.xi 666*53ee8cc1Swenshuai.xi /* Surround */ 667*53ee8cc1Swenshuai.xi #if(MSTAR_SURROUND_DRAM_SIZE>0) 668*53ee8cc1Swenshuai.xi #define SUR_DRAM_BASEADDR (OFFSET_MSTAR_SURROUND_DRAM_ADDR / BYTES_IN_MIU_LINE) // Line Address 669*53ee8cc1Swenshuai.xi #define SUR_DRAM_ENDADDR ((OFFSET_MSTAR_SURROUND_DRAM_ADDR + 0x0007E00) / BYTES_IN_MIU_LINE) // ((OFFSET_MSTAR_SURROUND_DRAM_ADDR + MSTAR_SURROUND_DRAM_SIZE) / BYTES_IN_MIU_LINE) // Line Address 670*53ee8cc1Swenshuai.xi #endif 671*53ee8cc1Swenshuai.xi 672*53ee8cc1Swenshuai.xi /* HE-AAC Metadata Buffer on DEC */ 673*53ee8cc1Swenshuai.xi .const DSP2_HEAAC_METADATA_DRAM_BASE = (OFFSET_DDENC_METADATA_DRAM_ADDR / BYTES_IN_MIU_LINE); 674*53ee8cc1Swenshuai.xi .const DSP2_HEAAC_METADATA_DRAM_SIZE = (DDENC_METADATA_DRAM_SIZE / BYTES_IN_MIU_LINE); // 8KB 675*53ee8cc1Swenshuai.xi 676*53ee8cc1Swenshuai.xi /* KTV */ 677*53ee8cc1Swenshuai.xi #if(KTV_SURROUND_DRAM_SIZE>0) 678*53ee8cc1Swenshuai.xi #define SUR_DRAM_KTV_BASEADDR (OFFSET_KTV_SURROUND_DRAM_ADDR / BYTES_IN_MIU_LINE) // Line address, Only in KTV mode, MS surround -> echo 679*53ee8cc1Swenshuai.xi #define SUR_DARM_KTV_ENDADDR ((OFFSET_KTV_SURROUND_DRAM_ADDR + 0x0001FE00) / BYTES_IN_MIU_LINE) //((OFFSET_KTV_SURROUND_DRAM_ADDR + KTV_SURROUND_DRAM_SIZE) / BYTES_IN_MIU_LINE) // Line address, Overlay with DM prefetch 680*53ee8cc1Swenshuai.xi #endif 681*53ee8cc1Swenshuai.xi 682*53ee8cc1Swenshuai.xi /* DSP DM Prefetch */ 683*53ee8cc1Swenshuai.xi #define DSP2_DM_PREFETCH_DRAM_BASE (OFFSET_DM_PREFETCH_DRAM_ADDR / BYTES_IN_MIU_LINE) 684*53ee8cc1Swenshuai.xi #define DSP2_DM_PREFETCH_DRAM_SIZE (DM_PREFETCH_DRAM_SIZE / BYTES_IN_MIU_LINE) // 64KB 685*53ee8cc1Swenshuai.xi 686*53ee8cc1Swenshuai.xi /* standalone DDCO PCM Buffer */ 687*53ee8cc1Swenshuai.xi //#define DSP2_DDE_PCM_DRAM_BASE (DSP2_DM_PREFETCH_DRAM_BASE+0x400) // AC3 Encode base address 688*53ee8cc1Swenshuai.xi //#define DSP2_DDE_PCM_DRAM_SIZE (0xBFF) // 48KB 689*53ee8cc1Swenshuai.xi .const DSP2_DDE_PCM_DRAM_BASE = (OFFSET_SER2_DDENC_MCHOUT_DRAM_ADDR / BYTES_IN_MIU_LINE); // AC3 Encode base address 690*53ee8cc1Swenshuai.xi .const DSP2_DDE_PCM_DRAM_SIZE = ((SER2_DDENC_MCHOUT_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); // 54kB 691*53ee8cc1Swenshuai.xi 692*53ee8cc1Swenshuai.xi /* HEAD PHONE delay */ 693*53ee8cc1Swenshuai.xi #if(HEAD_PHONE_DLY_DRAM_SIZE>0) 694*53ee8cc1Swenshuai.xi .const DSP2_HEAD_PHONE_DLY_DRAM_BASE = (OFFSET_HEAD_PHONE_DLY_DRAM_BASE / BYTES_IN_MIU_LINE); // Line address 695*53ee8cc1Swenshuai.xi .const DSP2_HEAD_PHONE_DLY_DRAM_SIZE = ((HEAD_PHONE_DLY_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); 696*53ee8cc1Swenshuai.xi #endif 697*53ee8cc1Swenshuai.xi 698*53ee8cc1Swenshuai.xi /* CH5 input delay */ 699*53ee8cc1Swenshuai.xi #if(CH5_INPUT_DLY_DRAM_SIZE>0) 700*53ee8cc1Swenshuai.xi .const DSP2_CH5_INPUT_DLY_DRAM_BASE = (OFFSET_CH5_INPUT_DLY_DRAM_BASE / BYTES_IN_MIU_LINE); // Line address 701*53ee8cc1Swenshuai.xi .const DSP2_CH5_INPUT_DLY_DRAM_SIZE = ((CH5_INPUT_DLY_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); 702*53ee8cc1Swenshuai.xi #endif 703*53ee8cc1Swenshuai.xi 704*53ee8cc1Swenshuai.xi /* CH6 input delay */ 705*53ee8cc1Swenshuai.xi #if(CH6_INPUT_DLY_DRAM_SIZE>0) 706*53ee8cc1Swenshuai.xi .const DSP2_CH6_INPUT_DLY_DRAM_BASE = (OFFSET_CH6_INPUT_DLY_DRAM_BASE / BYTES_IN_MIU_LINE); // Line address 707*53ee8cc1Swenshuai.xi .const DSP2_CH6_INPUT_DLY_DRAM_SIZE = ((CH6_INPUT_DLY_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); 708*53ee8cc1Swenshuai.xi #endif 709*53ee8cc1Swenshuai.xi 710*53ee8cc1Swenshuai.xi /* multiChInput audio delay */ 711*53ee8cc1Swenshuai.xi #if(MULTI_CH_INPUT_DLY_DRAM_SIZE>0) 712*53ee8cc1Swenshuai.xi .const DSP2_MULTI_CH_INPUT_DLY_DRAM_BASE = (OFFSET_MULTI_CH_INPUT_DLY_DRAM_BASE / BYTES_IN_MIU_LINE); // Line address 713*53ee8cc1Swenshuai.xi .const DSP2_MULTI_CH_INPUT_DLY_DRAM_SIZE = ((MULTI_CH_INPUT_DLY_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); 714*53ee8cc1Swenshuai.xi #endif 715*53ee8cc1Swenshuai.xi 716*53ee8cc1Swenshuai.xi /* SPDIF Non-PCM */ 717*53ee8cc1Swenshuai.xi .const DSP2_SPDIF_DRAM_BASE = OFFSET_SPDIF_NONPCM_DRAM_BASE / BYTES_IN_MIU_LINE; 718*53ee8cc1Swenshuai.xi .const DSP2_SPDIF_DRAM_SIZE = (SPDIF_NONPCM_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1; 719*53ee8cc1Swenshuai.xi 720*53ee8cc1Swenshuai.xi /* HDMI Non-PCM */ 721*53ee8cc1Swenshuai.xi .const DSP2_HDMI_DRAM_BASE = OFFSET_HDMI_NONPCM_DRAM_BASE / BYTES_IN_MIU_LINE; 722*53ee8cc1Swenshuai.xi .const DSP2_HDMI_DRAM_SIZE = (HDMI_NONPCM_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1; 723*53ee8cc1Swenshuai.xi 724*53ee8cc1Swenshuai.xi /* pcmR_dmxPcm from preAsndR2 */ 725*53ee8cc1Swenshuai.xi .const DSP2_PCMR_DMXPCM_DRAM_BASE = (OFFSET_SER2_OUTPCM_DMX_DRAM_ADDR / BYTES_IN_MIU_LINE); 726*53ee8cc1Swenshuai.xi .const DSP2_PCMR_DMXPCM_DRAM_SIZE = ((SER2_OUTPCM_DMX_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); 727*53ee8cc1Swenshuai.xi 728*53ee8cc1Swenshuai.xi /* COMMON DRAM */ 729*53ee8cc1Swenshuai.xi 730*53ee8cc1Swenshuai.xi /* PCM 1 / 2 */ 731*53ee8cc1Swenshuai.xi .const DSP2_PCM1_DRAM_BASE = (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM1_DRAM_ADDR / BYTES_IN_MIU_LINE)); 732*53ee8cc1Swenshuai.xi .const DSP2_PCM1_DRAM_SIZE = (PCM1_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1; 733*53ee8cc1Swenshuai.xi 734*53ee8cc1Swenshuai.xi .const DSP2_PCM2_DRAM_BASE = (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM2_DRAM_ADDR / BYTES_IN_MIU_LINE)); 735*53ee8cc1Swenshuai.xi .const DSP2_PCM2_DRAM_SIZE = (PCM2_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1; 736*53ee8cc1Swenshuai.xi 737*53ee8cc1Swenshuai.xi /* Software DMA */ 738*53ee8cc1Swenshuai.xi #if(SW_DMA_READER_DRAM_SIZE>0) 739*53ee8cc1Swenshuai.xi .const DSP2_SW_DMA_READER_DRAM_BASE = (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_SW_DMA_READER_DRAM_BASE / BYTES_IN_MIU_LINE)); 740*53ee8cc1Swenshuai.xi .const DSP2_SW_DMA_READER_DRAM_SIZE = ((SW_DMA_READER_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1); 741*53ee8cc1Swenshuai.xi #endif 742*53ee8cc1Swenshuai.xi /* PCM capture buffer */ 743*53ee8cc1Swenshuai.xi #if(PCM_CAPTURE_BUFFER_DRAM_SIZE>0) 744*53ee8cc1Swenshuai.xi .const DSP2_PCM_CAPTURE_BUFFER_DRAM_BASE = DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM_CAPTURE1_BUFFER_DRAM_BASE / BYTES_IN_MIU_LINE); 745*53ee8cc1Swenshuai.xi .const DSP2_PCM_CAPTURE_BUFFER_DRAM_SIZE = (PCM_CAPTURE_BUFFER_DRAM_SIZE/ BYTES_IN_MIU_LINE); 746*53ee8cc1Swenshuai.xi #endif 747*53ee8cc1Swenshuai.xi #if(PCM_CAPTURE2_BUFFER_DRAM_SIZE>0) 748*53ee8cc1Swenshuai.xi .const DSP2_PCM_CAPTURE2_BUFFER_DRAM_BASE = DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM_CAPTURE2_BUFFER_DRAM_BASE / BYTES_IN_MIU_LINE); 749*53ee8cc1Swenshuai.xi .const DSP2_PCM_CAPTURE2_BUFFER_DRAM_SIZE = (PCM_CAPTURE2_BUFFER_DRAM_SIZE/ BYTES_IN_MIU_LINE); 750*53ee8cc1Swenshuai.xi #endif 751*53ee8cc1Swenshuai.xi #if(PCM_CAPTURE3_BUFFER_DRAM_SIZE>0) 752*53ee8cc1Swenshuai.xi .const DSP2_PCM_CAPTURE3_BUFFER_DRAM_BASE = DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM_CAPTURE3_BUFFER_DRAM_BASE / BYTES_IN_MIU_LINE); 753*53ee8cc1Swenshuai.xi .const DSP2_PCM_CAPTURE3_BUFFER_DRAM_SIZE = (PCM_CAPTURE3_BUFFER_DRAM_SIZE/ BYTES_IN_MIU_LINE); 754*53ee8cc1Swenshuai.xi #endif 755*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE_COPY_WORDSIZE 32 756*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE_COPY_LINESIZE 4 757*53ee8cc1Swenshuai.xi 758*53ee8cc1Swenshuai.xi /************************************************ 759*53ee8cc1Swenshuai.xi * DSP TSCALE & TCOUNT setting 760*53ee8cc1Swenshuai.xi ************************************************/ 761*53ee8cc1Swenshuai.xi #define DSP_SYSTEM_FREQUENCY 368 762*53ee8cc1Swenshuai.xi #define TSCALE_CONSTANT 0xF9 763*53ee8cc1Swenshuai.xi #define DSP_TIME_CONSTANT (DSP_SYSTEM_FREQUENCY/2 -1) 764*53ee8cc1Swenshuai.xi #define DSP_TIMER_SETTING DSP_TIME_CONSTANT 765*53ee8cc1Swenshuai.xi 766*53ee8cc1Swenshuai.xi /************************************************ 767*53ee8cc1Swenshuai.xi * Below is DMA config 768*53ee8cc1Swenshuai.xi *************************************************/ 769*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_ALIGNMENT_BIT 7 // 1/0 : msb / lsb alignment 770*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_BYTESWAP_BIT 6 // set 1 to byte swap 771*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_READY_BIT 5 // set 1 to trigger, will be 0 when dma is finished 772*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_CLRCNTR_BIT 4 // set 1 to clear 773*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_PRIORITY_BIT 3 // 1/0 : high / low 774*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_24BITS_BIT 2 // 1/0 : 24bits / 16bits 775*53ee8cc1Swenshuai.xi 776*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_ALIGNMENT_MASK 0x80 777*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_BYTESWAP_MASK 0x40 778*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_READY_MASK 0x20 779*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_CLRCNTR_MASK 0x10 780*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_PRIORITY_MASK 0x08 781*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_24BITS_MASK 0x04 782*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_BURST_6 0x03 783*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_BURST_3 0x02 784*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_BURST_2 0x01 785*53ee8cc1Swenshuai.xi #define DMAITF_DSPCMD_BURST_1 0x00 786*53ee8cc1Swenshuai.xi 787*53ee8cc1Swenshuai.xi #if (MIU_128 == 1) 788*53ee8cc1Swenshuai.xi /* 1 MIU Line = 128bit (16 bytes) */ 789*53ee8cc1Swenshuai.xi #define DMAITF_DSPWORDS_IN_1_LINE 8 790*53ee8cc1Swenshuai.xi #define DMAITF_DSPWORDS_IN_1LINE_LOG2 3 791*53ee8cc1Swenshuai.xi #define DMAITF_DSPWORDS_IN_3LINE_LOG2 4 792*53ee8cc1Swenshuai.xi #define DMAITF_WR_BIT 16 793*53ee8cc1Swenshuai.xi #define DMAITF_DM_BIT 15 794*53ee8cc1Swenshuai.xi #define DMAITF_BYTES_IN_1MIU_LINE BYTES_IN_MIU_LINE 795*53ee8cc1Swenshuai.xi 796*53ee8cc1Swenshuai.xi #define DMAITF_RD_PM_MASK 0x000000 797*53ee8cc1Swenshuai.xi #define DMAITF_WR_PM_MASK 0x010000 798*53ee8cc1Swenshuai.xi #define DMAITF_RD_DM_MASK 0x008000 799*53ee8cc1Swenshuai.xi #define DMAITF_WR_DM_MASK 0x018000 800*53ee8cc1Swenshuai.xi 801*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B1_DMA_CMD 0xA8 // 16 Bits Burst 1, high alignment 802*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B2_DMA_CMD 0xA8 //no Burst 2 cmd, use B1 instead 803*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B1_SWAP_DMA_CMD 0xE8 // 16 Bits Burst 1, high alignment 804*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B2_SWAP_DMA_CMD 0xE8 //no Burst 2 cmd, use B1 instead 805*53ee8cc1Swenshuai.xi 806*53ee8cc1Swenshuai.xi #define DMAITF_24BITS_B3_DMA_CMD 0x2E // 24 Bits Burst 3 807*53ee8cc1Swenshuai.xi #define DMAITF_24BITS_B6_DMA_CMD 0x2E //no Burst 6 cmd, use B3 instead 808*53ee8cc1Swenshuai.xi 809*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_LowAlign_B1_DMA_CMD 0x28 //16 Bits Burst 1, low alignment 810*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_LowAlign_B1_SWAP_DMA_CMD 0x68 //16 Bits Burst 1, low alignment 811*53ee8cc1Swenshuai.xi #else 812*53ee8cc1Swenshuai.xi /* 1 MIU Line = 64bit (8 bytes) */ 813*53ee8cc1Swenshuai.xi #define DMAITF_DSPWORDS_IN_1_LINE 4 814*53ee8cc1Swenshuai.xi #define DMAITF_DSPWORDS_IN_1LINE_LOG2 2 815*53ee8cc1Swenshuai.xi #define DMAITF_DSPWORDS_IN_3LINE_LOG2 3 816*53ee8cc1Swenshuai.xi #define DMAITF_WR_BIT 15 817*53ee8cc1Swenshuai.xi #define DMAITF_DM_BIT 14 818*53ee8cc1Swenshuai.xi #define DMAITF_BYTES_IN_1MIU_LINE BYTES_IN_MIU_LINE 819*53ee8cc1Swenshuai.xi 820*53ee8cc1Swenshuai.xi #define DMAITF_RD_PM_MASK 0x000000 821*53ee8cc1Swenshuai.xi #define DMAITF_WR_PM_MASK 0x008000 822*53ee8cc1Swenshuai.xi #define DMAITF_RD_DM_MASK 0x004000 823*53ee8cc1Swenshuai.xi #define DMAITF_WR_DM_MASK 0x00C000 824*53ee8cc1Swenshuai.xi 825*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B1_DMA_CMD 0xA8 // 16 Bits Burst 1, high alignment 826*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B2_DMA_CMD 0xA9 827*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B1_SWAP_DMA_CMD 0xE8 // 16 Bits Burst 1, high alignment 828*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_B2_SWAP_DMA_CMD 0xE9 829*53ee8cc1Swenshuai.xi 830*53ee8cc1Swenshuai.xi #define DMAITF_24BITS_B3_DMA_CMD 0x2E // 24 Bits Burst 3 831*53ee8cc1Swenshuai.xi #define DMAITF_24BITS_B6_DMA_CMD 0x2F // 24 Bits Burst 6 832*53ee8cc1Swenshuai.xi 833*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_LowAlign_B1_DMA_CMD 0x28 //16 Bits Burst 1, low alignment 834*53ee8cc1Swenshuai.xi #define DMAITF_16BITS_LowAlign_B1_SWAP_DMA_CMD 0x68 //16 Bits Burst 1, low alignment 835*53ee8cc1Swenshuai.xi #endif 836*53ee8cc1Swenshuai.xi 837*53ee8cc1Swenshuai.xi /* DMA Mapping */ 838*53ee8cc1Swenshuai.xi #define General_DSP_IDMA_CMD_Number 15 // just info this chip nubmer of DSP_IDMA can support, (no any purpose) need sync with HW spec 839*53ee8cc1Swenshuai.xi 840*53ee8cc1Swenshuai.xi #define SNDISR1_DMA_CTRL DSPDMA7_DMA_CTRL 841*53ee8cc1Swenshuai.xi #define SNDISR2_DMA_CTRL DSPDMA2_DMA_CTRL 842*53ee8cc1Swenshuai.xi #define SPDIF_DMA_CTRL DSPDMA6_DMA_CTRL // SPDIF npcm 843*53ee8cc1Swenshuai.xi #define HDMI_DMA_CTRL DSPDMA6_DMA_CTRL // HDMI npcm 844*53ee8cc1Swenshuai.xi #define PCM_CAPTURE_DMA_CTRL DSPDMA15_DMA_CTRL 845*53ee8cc1Swenshuai.xi #define PCM_CAPTURE2_DMA_CTRL DSPDMA14_DMA_CTRL 846*53ee8cc1Swenshuai.xi #define PCM_CAPTURE3_DMA_CTRL DSPDMA13_DMA_CTRL 847*53ee8cc1Swenshuai.xi #define SW_DMARDR_DMA_CTRL DSPDMA13_DMA_CTRL 848*53ee8cc1Swenshuai.xi #define HP_DLY_DMA_CTRL DSPDMA13_DMA_CTRL 849*53ee8cc1Swenshuai.xi #define CH5_IN_DLY_DMA_CTRL DSPDMA12_DMA_CTRL 850*53ee8cc1Swenshuai.xi #define CH6_IN_DLY_DMA_CTRL DSPDMA11_DMA_CTRL 851*53ee8cc1Swenshuai.xi #define MULTI_CH_INPUT_DLY_DMA_CTRL DSPDMA9_DMA_CTRL 852*53ee8cc1Swenshuai.xi #define R2_DEC_PCM1R_DMA_CTRL PCM1R_DMA_CTRL 853*53ee8cc1Swenshuai.xi #define DDE_ISR_PCM_DMA_CTRL DSPDMA1_DMA_CTRL 854*53ee8cc1Swenshuai.xi #define SPDIF_DLY_IN_DMA_CTRL DSPDMA2_DMA_CTRL 855*53ee8cc1Swenshuai.xi #define HDMI_DLY_IN_DMA_CTRL DSPDMA2_DMA_CTRL 856*53ee8cc1Swenshuai.xi #define SPDIF_DLY_OUT_DMA_CTRL DSPDMA6_DMA_CTRL 857*53ee8cc1Swenshuai.xi #define HDMI_DLY_OUT_DMA_CTRL DSPDMA6_DMA_CTRL 858*53ee8cc1Swenshuai.xi #define PCMR_DMXPCM_DMA_CTRL PCM1R_DMA_CTRL 859*53ee8cc1Swenshuai.xi 860*53ee8cc1Swenshuai.xi #define SNDBG_DMA_CTRL DSPDMA3_DMA_CTRL // Background sound effect 861*53ee8cc1Swenshuai.xi #define ADEC_DMA1_CTRL DSPDMA3_DMA_CTRL 862*53ee8cc1Swenshuai.xi #define ADEC_DMA2_CTRL DSPDMA4_DMA_CTRL 863*53ee8cc1Swenshuai.xi #define ADEC_DMA3_CTRL DSPDMA3_DMA_CTRL 864*53ee8cc1Swenshuai.xi #define ADEC_DMA4_CTRL DSPDMA4_DMA_CTRL 865*53ee8cc1Swenshuai.xi #define ADEC_DMA5_CTRL DSPDMA5_DMA_CTRL 866*53ee8cc1Swenshuai.xi 867*53ee8cc1Swenshuai.xi /************************************************ 868*53ee8cc1Swenshuai.xi * Below is DSP FIFO/DDR unit Setting 869*53ee8cc1Swenshuai.xi *************************************************/ 870*53ee8cc1Swenshuai.xi .const SE_R2_FRAME_SIZE = 256; //256 samples for R2_SE 871*53ee8cc1Swenshuai.xi .const SE_PROCESS_FRAME_SMP_UNIT = 128; //128 samples per frame 872*53ee8cc1Swenshuai.xi 873*53ee8cc1Swenshuai.xi .const SE_PROCESS_FETCH_FRAME_LINE_SIZE = SE_PROCESS_FRAME_SMP_UNIT*SE_PROCESS_FETCH_CHANNELS*3/BYTES_IN_MIU_LINE; 874*53ee8cc1Swenshuai.xi .const SE_PROCESS_STORE_FRAME_LINE_SIZE = SE_PROCESS_FRAME_SMP_UNIT*SE_PROCESS_STORE_CHANNELS*3/BYTES_IN_MIU_LINE; 875*53ee8cc1Swenshuai.xi 876*53ee8cc1Swenshuai.xi /* sound effect buffer / share buffer setting */ 877*53ee8cc1Swenshuai.xi .const SE_PROCESS_FIFO_SIZE_UNIT = 64; //delay fifo size per channel 878*53ee8cc1Swenshuai.xi .const SE_PROCESS_DMA_WORD_SIZE_UNIT = 16; //DMA_WORD_SIZE per channel 879*53ee8cc1Swenshuai.xi 880*53ee8cc1Swenshuai.xi /* input ISR PCM samples -> DDR1 unit setting */ 881*53ee8cc1Swenshuai.xi .const SE_BUFF2_FIFO_SIZE = (SE_PROCESS_FIFO_SIZE_UNIT * SE_PROCESS_FETCH_CHANNELS); 882*53ee8cc1Swenshuai.xi .const SE_BUFF2_DMA_WORD_SIZE = (SE_PROCESS_DMA_WORD_SIZE_UNIT * SE_PROCESS_FETCH_CHANNELS); // (DMA_WORD_SIZE per channel) * channel number 883*53ee8cc1Swenshuai.xi .const SE_BUFF2_DMA_24BIT_LINE_SIZE = SE_BUFF2_DMA_WORD_SIZE*3/BYTES_IN_MIU_LINE; 884*53ee8cc1Swenshuai.xi .const SE_BUFF2_DMA_16BIT_LINE_SIZE = SE_BUFF2_DMA_WORD_SIZE*2/BYTES_IN_MIU_LINE; 885*53ee8cc1Swenshuai.xi 886*53ee8cc1Swenshuai.xi /* DDR2 --> output ISR PCM samples */ 887*53ee8cc1Swenshuai.xi .const SE_BUFF1_FIFO_SIZE = (SE_PROCESS_FIFO_SIZE_UNIT * SE_PROCESS_STORE_CHANNELS); 888*53ee8cc1Swenshuai.xi .const SE_BUFF1_DMA_WORD_SIZE = (SE_PROCESS_DMA_WORD_SIZE_UNIT * SE_PROCESS_STORE_CHANNELS); // (DMA_WORD_SIZE per channel) * channel number 889*53ee8cc1Swenshuai.xi .const SE_BUFF1_DMA_24BIT_LINE_SIZE = SE_BUFF1_DMA_WORD_SIZE*3/BYTES_IN_MIU_LINE; 890*53ee8cc1Swenshuai.xi .const SE_BUFF1_DMA_16BIT_LINE_SIZE = SE_BUFF1_DMA_WORD_SIZE*2/BYTES_IN_MIU_LINE; 891*53ee8cc1Swenshuai.xi 892*53ee8cc1Swenshuai.xi /* share buffer in dm mapping */ 893*53ee8cc1Swenshuai.xi .const SE_PROCESS_BUFFER_MAIN = 0x0; 894*53ee8cc1Swenshuai.xi .const SE_PROCESS_BUFFER_MAIN_RAW1_LR = SE_PROCESS_BUFFER_MAIN + SE_PROCESS_FRAME_SMP_UNIT*0; 895*53ee8cc1Swenshuai.xi .const SE_PROCESS_BUFFER_MAIN_RAW2_LR = SE_PROCESS_BUFFER_MAIN + SE_PROCESS_FRAME_SMP_UNIT*2; 896*53ee8cc1Swenshuai.xi .const SE_PROCESS_BUFFER_MAIN_SE_LR = SE_PROCESS_BUFFER_MAIN + SE_PROCESS_FRAME_SMP_UNIT*4; 897*53ee8cc1Swenshuai.xi .const SE_PROCESS_BUFFER_MAIN_SE_LmRm = SE_PROCESS_BUFFER_MAIN + SE_PROCESS_FRAME_SMP_UNIT*6; 898*53ee8cc1Swenshuai.xi .const SURR_DLY_BUFFER = SE_PROCESS_BUFFER_MAIN + SE_PROCESS_FRAME_SMP_UNIT*8; 899*53ee8cc1Swenshuai.xi .const NR_PARAMETER_BUFFER = SE_PROCESS_BUFFER_MAIN + SE_PROCESS_FRAME_SMP_UNIT*10; 900*53ee8cc1Swenshuai.xi .const SE_PROCESS_BUFFER_MAIN_TMP = SE_PROCESS_BUFFER_MAIN + SE_PROCESS_FRAME_SMP_UNIT*12; //0x600 901*53ee8cc1Swenshuai.xi 902*53ee8cc1Swenshuai.xi #define DSP2DmAddr_system_shareBuff 0x0 //SE_PROCESS_BUFFER_MAIN 903*53ee8cc1Swenshuai.xi #define DSP2DmAddr_system_shareBuff_size (0x600) //(SE_PROCESS_BUFFER_MAIN_TMP - SE_PROCESS_BUFFER_MAIN) 904*53ee8cc1Swenshuai.xi #define DSP2DmAddr_advSnd_shareBuff_base SE_PROCESS_BUFFER_MAIN_TMP 905*53ee8cc1Swenshuai.xi #define DSP2DmAddr_advSnd_shareBuff_size (0x1500) // min size: (SE_PROCESS_FRAME_SMP_UNIT*SE_PROCESS_FETCH_CHANNELS) for system frame base SE 906*53ee8cc1Swenshuai.xi 907*53ee8cc1Swenshuai.xi .const SndEff_Array_TMP1 = SE_PROCESS_BUFFER_MAIN_TMP; 908*53ee8cc1Swenshuai.xi .const SndEff_Array_TMP2 = SndEff_Array_TMP1 + SE_PROCESS_FRAME_SMP_UNIT*2; 909*53ee8cc1Swenshuai.xi .const SndEff_Array_TMP3 = SndEff_Array_TMP2 + SE_PROCESS_FRAME_SMP_UNIT*2; 910*53ee8cc1Swenshuai.xi .const SndEff_Array_TMP4 = SndEff_Array_TMP3 + SE_PROCESS_FRAME_SMP_UNIT*2; 911*53ee8cc1Swenshuai.xi 912*53ee8cc1Swenshuai.xi .const Apply_NR_Status_BUFFER = NR_PARAMETER_BUFFER; 913*53ee8cc1Swenshuai.xi .const Apply_NR_Gain_BUFFER = Apply_NR_Status_BUFFER + SE_PROCESS_FRAME_SMP_UNIT; 914*53ee8cc1Swenshuai.xi 915*53ee8cc1Swenshuai.xi /* General delay buffer template */ 916*53ee8cc1Swenshuai.xi .const DELAY_FIFO_SIZE = 128; 917*53ee8cc1Swenshuai.xi .const DELAY_DMA_WORDSIZE = 32; 918*53ee8cc1Swenshuai.xi .const DELAY_DMA_LINESIZE = DELAY_DMA_WORDSIZE*3/BYTES_IN_MIU_LINE; 919*53ee8cc1Swenshuai.xi 920*53ee8cc1Swenshuai.xi .const MULTI_CH_INPUT_DELAY_FIFO_SIZE = (SE_PROCESS_FIFO_SIZE_UNIT * MULTI_CH_INPUT_DELAY_STORE_CHANNELS); // fifo len 921*53ee8cc1Swenshuai.xi .const MULTI_CH_INPUT_DELAY_DMA_WORDSIZE = (SE_PROCESS_DMA_WORD_SIZE_UNIT * MULTI_CH_INPUT_DELAY_STORE_CHANNELS); 922*53ee8cc1Swenshuai.xi .const MULTI_CH_INPUT_DELAY_DMA_LINESIZE = (MULTI_CH_INPUT_DELAY_DMA_WORDSIZE*3/BYTES_IN_MIU_LINE); 923*53ee8cc1Swenshuai.xi 924*53ee8cc1Swenshuai.xi /* Dly_status */ 925*53ee8cc1Swenshuai.xi .const DELAY_INPUT_STOP = 0; 926*53ee8cc1Swenshuai.xi .const DELAY_OUTPUT_STOP = 1; 927*53ee8cc1Swenshuai.xi .const DELAY_DLYIN_DMA_ASSERT = 2; 928*53ee8cc1Swenshuai.xi .const DELAY_DLYOUT_DMA_ASSERT = 3; 929*53ee8cc1Swenshuai.xi 930*53ee8cc1Swenshuai.xi /* Mstar Surround delay buffer */ 931*53ee8cc1Swenshuai.xi .const SUR_FIFO_UNIT = SE_PROCESS_FRAME_SMP_UNIT*2; 932*53ee8cc1Swenshuai.xi .const SUR_DRAM_BURSRT = (SUR_FIFO_UNIT*3)/BYTES_IN_MIU_LINE; 933*53ee8cc1Swenshuai.xi 934*53ee8cc1Swenshuai.xi /* spdif delay unit setting */ 935*53ee8cc1Swenshuai.xi .const SPDIF_DLYBUF_DMA_WORDSIZE = 32; 936*53ee8cc1Swenshuai.xi .const SPDIF_DLYBUF_DMA_LINESIZE = SPDIF_DLYBUF_DMA_WORDSIZE*2/BYTES_IN_MIU_LINE; 937*53ee8cc1Swenshuai.xi .const SPDIF_DLYFIFO_LEN = 64; 938*53ee8cc1Swenshuai.xi 939*53ee8cc1Swenshuai.xi /* spdif nonPcm unit setting */ 940*53ee8cc1Swenshuai.xi .const SPDIF_NPCM_DMA_WORDSIZE = 32; 941*53ee8cc1Swenshuai.xi .const SPDIF_NPCM_DMA_LINESIZE = SPDIF_NPCM_DMA_WORDSIZE*2/BYTES_IN_MIU_LINE; 942*53ee8cc1Swenshuai.xi .const SPDIF_NPCMFIFO_LEN = 64; 943*53ee8cc1Swenshuai.xi 944*53ee8cc1Swenshuai.xi /* pcmR_dmxPcm unit setting */ 945*53ee8cc1Swenshuai.xi .const PCMR_DMXPCM_DMA_WORDSIZE = 32; 946*53ee8cc1Swenshuai.xi .const PCMR_DMXPCM_DMA_LINESIZE = PCMR_DMXPCM_DMA_WORDSIZE*2/BYTES_IN_MIU_LINE; 947*53ee8cc1Swenshuai.xi .const PCMR_DMXPCMFIFO_LEN = 64; 948*53ee8cc1Swenshuai.xi 949*53ee8cc1Swenshuai.xi /* hdmi npcm fifo unit setting */ 950*53ee8cc1Swenshuai.xi .const HDMI_NPCM_DMA_WORDSIZE = 128; 951*53ee8cc1Swenshuai.xi .const HDMI_NPCM_DMA_LINESIZE = HDMI_NPCM_DMA_WORDSIZE*2/BYTES_IN_MIU_LINE; 952*53ee8cc1Swenshuai.xi .const HDMI_NFIFO_LEN = 128*2; 953*53ee8cc1Swenshuai.xi 954*53ee8cc1Swenshuai.xi /* hdmi delay unit setting */ 955*53ee8cc1Swenshuai.xi .const HDMI_DLYBUF_DMA_WORDSIZE = 32; 956*53ee8cc1Swenshuai.xi .const HDMI_DLYBUF_DMA_LINESIZE = HDMI_DLYBUF_DMA_WORDSIZE*2/BYTES_IN_MIU_LINE; 957*53ee8cc1Swenshuai.xi .const HDMI_DLYFIFO_LEN = 64; 958*53ee8cc1Swenshuai.xi 959*53ee8cc1Swenshuai.xi /* SW DMA */ 960*53ee8cc1Swenshuai.xi .const SW_DMA_CTRL_RESET_BIT = 0; 961*53ee8cc1Swenshuai.xi .const SW_DMA_CTRL_START_BIT = 1; 962*53ee8cc1Swenshuai.xi .const SW_DMA_CTRL_CIRCL_BIT = 2; 963*53ee8cc1Swenshuai.xi 964*53ee8cc1Swenshuai.xi .const SW_DMA_WORDSIZE = 32; 965*53ee8cc1Swenshuai.xi .const SW_DMA_LINESIZE = SW_DMA_WORDSIZE*2/BYTES_IN_MIU_LINE; 966*53ee8cc1Swenshuai.xi 967*53ee8cc1Swenshuai.xi /******************************************************************** 968*53ee8cc1Swenshuai.xi * DSP ISR mapping 969*53ee8cc1Swenshuai.xi ********************************************************************/ 970*53ee8cc1Swenshuai.xi /* default 0 (no use) */ 971*53ee8cc1Swenshuai.xi #define ISR_MASK_PCM IMASK_SP1T_IRQ1 972*53ee8cc1Swenshuai.xi #define ISR_MASK_PCM2 IMASK_SP1R_IRQ0 973*53ee8cc1Swenshuai.xi #define ISR_MASK_TIMER IMASK_TM 974*53ee8cc1Swenshuai.xi 975*53ee8cc1Swenshuai.xi /* default -1 (no use) */ 976*53ee8cc1Swenshuai.xi #define ISR_PMASK_PCM -1 977*53ee8cc1Swenshuai.xi #define ISR_PMASK_PCM2 -1 978*53ee8cc1Swenshuai.xi #define ISR_PMASK_DEC_R2_CMD 2 //from R2_0 IO 0xB000_0860 979*53ee8cc1Swenshuai.xi #define ISR_PMASK_R2_LOAD_CODE_CMD 3 //from R2_0 IO 0xB000_0840 980*53ee8cc1Swenshuai.xi #define ISR_PMASK_SPDIF2_ISR 0 //no use 981*53ee8cc1Swenshuai.xi #define ISR_PMASK_HDMI_ISR IMASK_IRQL1 982*53ee8cc1Swenshuai.xi 983*53ee8cc1Swenshuai.xi #define DEC_MAIN_FUNC_PTR g_DecFunPtr 984*53ee8cc1Swenshuai.xi #define PCMOUT_FUNC_PTR g_IRQ1_isr_funcPtr 985*53ee8cc1Swenshuai.xi #define SIF_PCMOUT_FUNC_PTR g_IRQ0_isr_funcPtr 986*53ee8cc1Swenshuai.xi #define SIF_ENC_FUNC_PTR g_SifEncFuncPtr 987*53ee8cc1Swenshuai.xi #define SIF_ENC_DATAOUT_FUNC_PTR g_SifEncDataOutFuncPtr 988*53ee8cc1Swenshuai.xi 989*53ee8cc1Swenshuai.xi /******************************************************************** 990*53ee8cc1Swenshuai.xi * DSP internal mailbox mapping 991*53ee8cc1Swenshuai.xi ********************************************************************/ 992*53ee8cc1Swenshuai.xi 993*53ee8cc1Swenshuai.xi /* SPDIF NonPCM */ 994*53ee8cc1Swenshuai.xi #define D2S_MBOX_SPDIF_CTRL ddco_spdifNpcmCtrl // [0:2]=Acmod for AC3/AC3+/HE-AAC, [3]=LFE flag, 995*53ee8cc1Swenshuai.xi // [ 8:11]: HDMI sample rate 996*53ee8cc1Swenshuai.xi // 0: 96K, 1: 88K, 2: 64K 997*53ee8cc1Swenshuai.xi // 3: 48K, 4: 44K, 5: 32K 998*53ee8cc1Swenshuai.xi // 6: 24K, 7: 22K, 8: 16K 999*53ee8cc1Swenshuai.xi // 9: 12K, a: 11K, b: 8K 1000*53ee8cc1Swenshuai.xi // c:192K, d: 176K e: 128K 1001*53ee8cc1Swenshuai.xi // [12:15]: SPDIF sample rate 1002*53ee8cc1Swenshuai.xi // 0: 96K, 1: 88K, 2: 64K 1003*53ee8cc1Swenshuai.xi // 3: 48K, 4: 44K, 5: 32K 1004*53ee8cc1Swenshuai.xi // 6: 24K, 7: 22K, 8: 16K 1005*53ee8cc1Swenshuai.xi // 9: 12K, a: 11K, b: 8K 1006*53ee8cc1Swenshuai.xi // [18] info to DDCO: 1-> -4.75dB; 0-> do nothing 1007*53ee8cc1Swenshuai.xi // [19] : 1->48KHz, 0->non-48KHz 1008*53ee8cc1Swenshuai.xi // [20] MultiCH_EN, [21]=ADEC Stop/Play,[22]=Freeze,[23]=Start 1009*53ee8cc1Swenshuai.xi #define D2S_MBOX_SPDIF_WRPTR ddco_spdifNpcmWrPtr 1010*53ee8cc1Swenshuai.xi #define S2D_MBOX_SPDIF_RDPTR ddco_spdifNpcmRdPtr 1011*53ee8cc1Swenshuai.xi 1012*53ee8cc1Swenshuai.xi .const MBOX_MULTI_CHANNEL_ENABLE_BIT = 20; 1013*53ee8cc1Swenshuai.xi .const MBOX_SPDIF_NPCM_CTRL_BIT_PLAY = 17; 1014*53ee8cc1Swenshuai.xi .const MBOX_SPDIF_NPCM_CTRL_BIT_FREEZE = 22; 1015*53ee8cc1Swenshuai.xi .const MBOX_SPDIF_NPCM_CTRL_BIT_START = 19; 1016*53ee8cc1Swenshuai.xi .const MBOX_HDMI_NPCM_CTRL_BIT_PLAY = 21; 1017*53ee8cc1Swenshuai.xi .const MBOX_HDMI_NPCM_CTRL_BIT_START = 23; 1018*53ee8cc1Swenshuai.xi //[23] HDMI nonPcm Start 1019*53ee8cc1Swenshuai.xi //[22] 1020*53ee8cc1Swenshuai.xi //[21] HDMI nonPcm PlayEnable 1021*53ee8cc1Swenshuai.xi //[20] HDMI HBR mode 1022*53ee8cc1Swenshuai.xi //[19] SPDIF nonPcm Start 1023*53ee8cc1Swenshuai.xi //[18] inform DDEncode to attenuate 4.75dB 1024*53ee8cc1Swenshuai.xi //[17] SPDIF nonPcm PlayEnable 1025*53ee8cc1Swenshuai.xi //[16] 1026*53ee8cc1Swenshuai.xi //[15:12] SPDIF nonPcm sampleRate index 1027*53ee8cc1Swenshuai.xi // 0: 96K, 1: 88K, 2: 64K 1028*53ee8cc1Swenshuai.xi // 3: 48K, 4: 44K, 5: 32K 1029*53ee8cc1Swenshuai.xi // 6: 24K, 7: 22K, 8: 16K 1030*53ee8cc1Swenshuai.xi // 9: 12K, a: 11K, b: 8K 1031*53ee8cc1Swenshuai.xi 1032*53ee8cc1Swenshuai.xi //[11:8] HDMI nonPcm sampleRate index 1033*53ee8cc1Swenshuai.xi // 0: 96K, 1: 88K, 2: 64K 1034*53ee8cc1Swenshuai.xi // 3: 48K, 4: 44K, 5: 32K 1035*53ee8cc1Swenshuai.xi // 6: 24K, 7: 22K, 8: 16K 1036*53ee8cc1Swenshuai.xi // 9: 12K, a: 11K, b: 8K 1037*53ee8cc1Swenshuai.xi // c:192K, d: 176K e: 128K 1038*53ee8cc1Swenshuai.xi 1039*53ee8cc1Swenshuai.xi //[7] HDMI is Pcm or nonPcm 1040*53ee8cc1Swenshuai.xi //[6] SPDIF is Pcm or nonPcm 1041*53ee8cc1Swenshuai.xi //[5:4] hdmi nonPcm owner 1042*53ee8cc1Swenshuai.xi //[3:2] spdif nonPcm owner 1043*53ee8cc1Swenshuai.xi //[0:1] spdif/hdmi PCM attenuator index 1044*53ee8cc1Swenshuai.xi 1045*53ee8cc1Swenshuai.xi #define NULL_PAYLOAD_TEST 1 1046*53ee8cc1Swenshuai.xi 1047*53ee8cc1Swenshuai.xi #if (NULL_PAYLOAD_TEST == 1) 1048*53ee8cc1Swenshuai.xi .const SPDIF_NPCM_MUTE_FRMCNT = 0x8; 1049*53ee8cc1Swenshuai.xi .const SPDIF_PCM_MUTE_SMPCNT = 0; 1050*53ee8cc1Swenshuai.xi .const SPDIF_NPCM_NULL_FRMCNT = 0x0 + SPDIF_NPCM_MUTE_FRMCNT; 1051*53ee8cc1Swenshuai.xi #else 1052*53ee8cc1Swenshuai.xi .const SPDIF_NPCM_MUTE_FRMCNT = 0x10; 1053*53ee8cc1Swenshuai.xi .const SPDIF_PCM_MUTE_SMPCNT = 0; 1054*53ee8cc1Swenshuai.xi #endif 1055*53ee8cc1Swenshuai.xi 1056*53ee8cc1Swenshuai.xi /* Mailbox with DEC R2 */ 1057*53ee8cc1Swenshuai.xi #define D2S_MBOX_LOAD_CODE_CMD DECR2M_2_DSP_MAILBOX0 1058*53ee8cc1Swenshuai.xi #define D2S_MBOX_PCMISR_CTRL DECR2M_2_DSP_MAILBOX1 1059*53ee8cc1Swenshuai.xi #define MBOX_R2_PCM1ISR_PLAY_START_BIT 0 //--> �o�U�� playSmpFlag / stop / pause �M�w 1060*53ee8cc1Swenshuai.xi #define MBOX_R2_PCM1ISR_PLAY_MUTE_BIT 1 //--> Mute 1061*53ee8cc1Swenshuai.xi #define MBOX_R2_PCM1ISR_USING_ASINK_ISR_BIT 2 1062*53ee8cc1Swenshuai.xi #define MBOX_R2_PCM2ISR_PLAY_START_BIT 8 1063*53ee8cc1Swenshuai.xi #define MBOX_R2_PCM2ISR_PLAY_MUTE_BIT 9 1064*53ee8cc1Swenshuai.xi #define MBOX_R2_PCM2ISR_USING_ASINK_ISR_BIT 10 1065*53ee8cc1Swenshuai.xi 1066*53ee8cc1Swenshuai.xi #define D2S_MBOX_PCM1_DRAM_WRPTR DECR2M_2_DSP_MAILBOX2 1067*53ee8cc1Swenshuai.xi #define D2S_MBOX_PCM1_SYNTH_H DECR2M_2_DSP_MAILBOX3 1068*53ee8cc1Swenshuai.xi #define D2S_MBOX_PCM1_SYNTH_L DECR2M_2_DSP_MAILBOX4 1069*53ee8cc1Swenshuai.xi 1070*53ee8cc1Swenshuai.xi #define D2S_MBOX_PCM2_DRAM_WRPTR DECR2M_2_DSP_MAILBOX5 1071*53ee8cc1Swenshuai.xi #define D2S_MBOX_PCM2_SYNTH_H DECR2M_2_DSP_MAILBOX6 1072*53ee8cc1Swenshuai.xi #define D2S_MBOX_PCM2_SYNTH_L DECR2M_2_DSP_MAILBOX7 1073*53ee8cc1Swenshuai.xi 1074*53ee8cc1Swenshuai.xi #define D2S_MBOX_R2_TO_DSP_COMMAND DECR2M_2_DSP_MAILBOX8 1075*53ee8cc1Swenshuai.xi #define D2S_CMD_UPD_PCM1_MUTECNT 0x0001 // Bit0 1076*53ee8cc1Swenshuai.xi #define D2S_CMD_CLR_PCM1_PLAYCNT 0x0002 // Bit1 1077*53ee8cc1Swenshuai.xi #define D2S_CMD_UPD_PCM1_PLAYCNT 0x0004 // Bit2 1078*53ee8cc1Swenshuai.xi #define D2S_CMD_FLUSH_PCM1_SMPS 0x0008 // Bit3 1079*53ee8cc1Swenshuai.xi #define D2S_CMD_RESET_PCM1 0x0010 // Bit4 1080*53ee8cc1Swenshuai.xi #define D2S_CMD_UPD_PCM2_MUTECNT 0x0020 // Bit5 1081*53ee8cc1Swenshuai.xi #define D2S_CMD_CLR_PCM2_PLAYCNT 0x0040 // Bit6 1082*53ee8cc1Swenshuai.xi #define D2S_CMD_UPD_PCM2_PLAYCNT 0x0080 // Bit7 1083*53ee8cc1Swenshuai.xi #define D2S_CMD_FLUSH_PCM2_SMPS 0x0100 // Bit8 1084*53ee8cc1Swenshuai.xi #define D2S_CMD_RESET_PCM2 0x0200 // Bit9 1085*53ee8cc1Swenshuai.xi 1086*53ee8cc1Swenshuai.xi #define D2S_MBOX_R2_TO_DSP_PARAM DECR2M_2_DSP_MAILBOX9 1087*53ee8cc1Swenshuai.xi #define D2S_R2_SPDIF_WR_PTR DECR2M_2_DSP_MAILBOXA 1088*53ee8cc1Swenshuai.xi #define D2S_MBOX_HDMI_NPCM_WRPTR DECR2M_2_DSP_MAILBOXB 1089*53ee8cc1Swenshuai.xi 1090*53ee8cc1Swenshuai.xi #define D2S_MBOX_HDMI_NPCM_CMD DECR2M_2_DSP_MAILBOXC 1091*53ee8cc1Swenshuai.xi #define D2S_R2_SPDIF_CTRL DECR2M_2_DSP_MAILBOXC 1092*53ee8cc1Swenshuai.xi #define D2S_MBOX_NPCM_CTRL D2S_R2_SPDIF_CTRL 1093*53ee8cc1Swenshuai.xi //#define MBOX_HDMI_NPCM_CTRL_BIT_START MBOX_BIT23 1094*53ee8cc1Swenshuai.xi //#define MBOX_HDMI_NPCM_CTRL_BIT_PLAY MBOX_BIT21 1095*53ee8cc1Swenshuai.xi //#define MBOX_MULTI_CHANNEL_ENABLE_BIT MBOX_BIT20 1096*53ee8cc1Swenshuai.xi //#define MBOX_SPDIF_NPCM_CTRL_BIT_START MBOX_BIT19 1097*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_NPCM_DDE_MINUS_4_75DB MBOX_BIT18 1098*53ee8cc1Swenshuai.xi //#define MBOX_SPDIF_NPCM_CTRL_BIT_PLAY MBOX_BIT17 1099*53ee8cc1Swenshuai.xi #define MBOX_HDMI_NONPCM_FROM_ASND_DSP_BIT MBOX_BIT5 1100*53ee8cc1Swenshuai.xi #define MBOX_HDMI_NONPCM_FROM_ASND_R2_BIT MBOX_BIT4 1101*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_NONPCM_FROM_ASND_DSP_BIT MBOX_BIT3 1102*53ee8cc1Swenshuai.xi #define MBOX_SPDIF_NONPCM_FROM_ASND_R2_BIT MBOX_BIT2 1103*53ee8cc1Swenshuai.xi //[23] HDMI nonPcm Start 1104*53ee8cc1Swenshuai.xi //[22] 1105*53ee8cc1Swenshuai.xi //[21] HDMI nonPcm PlayEnable 1106*53ee8cc1Swenshuai.xi //[20] HDMI HBR mode 1107*53ee8cc1Swenshuai.xi //[19] SPDIF nonPcm Start 1108*53ee8cc1Swenshuai.xi //[18] inform DDEncode to attenuate 4.75dB 1109*53ee8cc1Swenshuai.xi //[17] SPDIF nonPcm PlayEnable 1110*53ee8cc1Swenshuai.xi //[16] 1111*53ee8cc1Swenshuai.xi //[15:12] SPDIF nonPcm sampleRate index 1112*53ee8cc1Swenshuai.xi // 0: 96K, 1: 88K, 2: 64K 1113*53ee8cc1Swenshuai.xi // 3: 48K, 4: 44K, 5: 32K 1114*53ee8cc1Swenshuai.xi // 6: 24K, 7: 22K, 8: 16K 1115*53ee8cc1Swenshuai.xi // 9: 12K, a: 11K, b: 8K 1116*53ee8cc1Swenshuai.xi 1117*53ee8cc1Swenshuai.xi //[11:8] HDMI nonPcm sampleRate index 1118*53ee8cc1Swenshuai.xi // 0: 96K, 1: 88K, 2: 64K 1119*53ee8cc1Swenshuai.xi // 3: 48K, 4: 44K, 5: 32K 1120*53ee8cc1Swenshuai.xi // 6: 24K, 7: 22K, 8: 16K 1121*53ee8cc1Swenshuai.xi // 9: 12K, a: 11K, b: 8K 1122*53ee8cc1Swenshuai.xi // c:192K, d: 176K e: 128K 1123*53ee8cc1Swenshuai.xi 1124*53ee8cc1Swenshuai.xi //[7] HDMI is Pcm or nonPcm 1125*53ee8cc1Swenshuai.xi //[6] SPDIF is Pcm or nonPcm 1126*53ee8cc1Swenshuai.xi //[5:4] hdmi nonPcm owner 1127*53ee8cc1Swenshuai.xi //[3:2] spdif nonPcm owner 1128*53ee8cc1Swenshuai.xi //[0:1] spdif/hdmi PCM attenuator index //Dolby Bulletin 11: PCM Level control, 0: 0dB, 1:-7dB(ATSC), 2:-8dB(DVB), 3:-11dB(ISDB) 1129*53ee8cc1Swenshuai.xi 1130*53ee8cc1Swenshuai.xi #define D2S_R2_DOLBY_META_DATA DECR2M_2_DSP_MAILBOXD 1131*53ee8cc1Swenshuai.xi #define D2S_DSP_ENCODE_SETTING DECR2M_2_DSP_MAILBOXE 1132*53ee8cc1Swenshuai.xi #define MBOX_NONPCM_DDE_ENABLE_BIT MBOX_BIT6 1133*53ee8cc1Swenshuai.xi #define MBOX_NONPCM_DTSE_ENABLE_BIT MBOX_BIT5 1134*53ee8cc1Swenshuai.xi //[6] DSP DDENC ENABLE bit 1135*53ee8cc1Swenshuai.xi //[5] DSP DTS ENC ENABLE bit 1136*53ee8cc1Swenshuai.xi //[4] LFE 1137*53ee8cc1Swenshuai.xi //[3:0] AC mode 1138*53ee8cc1Swenshuai.xi 1139*53ee8cc1Swenshuai.xi /************************************************************/ 1140*53ee8cc1Swenshuai.xi 1141*53ee8cc1Swenshuai.xi #define S2D_MBOX_DSP_TO_R2_COMMAND DSP_2_DECR2M_MAILBOX0 1142*53ee8cc1Swenshuai.xi #define S2D_CMD_RESET_PCM1_AVSYNC 0x0001 1143*53ee8cc1Swenshuai.xi #define S2D_CMD_RESET_PCM2_AVSYNC 0x0002 1144*53ee8cc1Swenshuai.xi 1145*53ee8cc1Swenshuai.xi #define S2D_MBOX_DSP_TO_R2_PARAM DSP_2_DECR2M_MAILBOX1 1146*53ee8cc1Swenshuai.xi #define S2D_MBOX_R2CMD_RECEIVE_CNT DSP_2_DECR2M_MAILBOX2 1147*53ee8cc1Swenshuai.xi 1148*53ee8cc1Swenshuai.xi #define S2D_MBOX_PCM1_PLAYCNT DSP_2_DECR2M_MAILBOX3 1149*53ee8cc1Swenshuai.xi #define S2D_MBOX_PCM1_FIFOCNT DSP_2_DECR2M_MAILBOX4 1150*53ee8cc1Swenshuai.xi #define S2D_MBOX_PCM1_DRAM_RDPTR DSP_2_DECR2M_MAILBOX5 1151*53ee8cc1Swenshuai.xi 1152*53ee8cc1Swenshuai.xi #define S2D_MBOX_PCM2_PLAYCNT DSP_2_DECR2M_MAILBOX6 1153*53ee8cc1Swenshuai.xi #define S2D_MBOX_PCM2_FIFOCNT DSP_2_DECR2M_MAILBOX7 1154*53ee8cc1Swenshuai.xi #define S2D_MBOX_PCM2_DRAM_RDPTR DSP_2_DECR2M_MAILBOX8 1155*53ee8cc1Swenshuai.xi 1156*53ee8cc1Swenshuai.xi #define S2D_MBOX_ENCODE_SURPPORT DSP_2_DECR2M_MAILBOX9 1157*53ee8cc1Swenshuai.xi #define DDE_ENCODE_SURPPORT_BIT MBOX_BIT0 1158*53ee8cc1Swenshuai.xi #define DTSE_ENCODE_SURPPORT_BIT MBOX_BIT1 1159*53ee8cc1Swenshuai.xi #define DDPE_ENCODE_SURPPORT_BIT MBOX_BIT2 1160*53ee8cc1Swenshuai.xi 1161*53ee8cc1Swenshuai.xi #define S2D_R2_SPDIF_RD_PTR DSP_2_DECR2M_MAILBOXA 1162*53ee8cc1Swenshuai.xi #define S2D_MBOX_HDMI_NPCM_RDPTR DSP_2_DECR2M_MAILBOXB 1163*53ee8cc1Swenshuai.xi 1164*53ee8cc1Swenshuai.xi #define S2D_IP_SECURITY_KEY DSP_2_DECR2M_MAILBOXE 1165*53ee8cc1Swenshuai.xi #define S2D_OTP_BOUNDING DSP_2_DECR2M_MAILBOXF 1166*53ee8cc1Swenshuai.xi 1167*53ee8cc1Swenshuai.xi #define S2A_IP_SECURITY_KEY DSP_2_SNDR2M_MAILBOXE 1168*53ee8cc1Swenshuai.xi #define S2A_OTP_BOUNDING DSP_2_SNDR2M_MAILBOXF 1169*53ee8cc1Swenshuai.xi 1170*53ee8cc1Swenshuai.xi !#define S2A_R2_PCMIN_WRPTR DSP_2_DECR2M_MAILBOX7 1171*53ee8cc1Swenshuai.xi !#define S2A_R2_PCMIN2_WRPTR DSP_2_DECR2M_MAILBOX8 1172*53ee8cc1Swenshuai.xi !#define S2A_R2_SPDIF_RD_PTR DSP_2_DECR2M_MAILBOX9 1173*53ee8cc1Swenshuai.xi !#define S2A_IP_SECURITY_KEY DSP_2_DECR2M_MAILBOXE 1174*53ee8cc1Swenshuai.xi !#define S2A_OTP_BOUNDING DSP_2_DECR2M_MAILBOXF 1175*53ee8cc1Swenshuai.xi 1176*53ee8cc1Swenshuai.xi !#define A2S_R2_PCMOUT_WRPTR DECR2M_2_DSP_MAILBOXD 1177*53ee8cc1Swenshuai.xi !#define A2S_R2_PCMOUT2_WRPTR DECR2M_2_DSP_MAILBOX0 1178*53ee8cc1Swenshuai.xi !#define A2S_R2_SPDIF_WR_PTR DECR2M_2_DSP_MAILBOXE 1179*53ee8cc1Swenshuai.xi !#define A2S_R2_SPDIF_CTRL DECR2M_2_DSP_MAILBOXF 1180*53ee8cc1Swenshuai.xi /* Mailbox with SND R2 */ 1181*53ee8cc1Swenshuai.xi #define S2A_R2_PCMIN_WRPTR DSP_2_SNDR2M_MAILBOX1 1182*53ee8cc1Swenshuai.xi #define S2A_R2_PCMIN2_WRPTR DSP_2_SNDR2M_MAILBOX2 1183*53ee8cc1Swenshuai.xi #define S2A_R2_SPDIF_RD_PTR DSP_2_SNDR2M_MAILBOX3 1184*53ee8cc1Swenshuai.xi #define S2A_IP_SECURITY_KEY DSP_2_SNDR2M_MAILBOXE 1185*53ee8cc1Swenshuai.xi #define S2A_OTP_BOUNDING DSP_2_SNDR2M_MAILBOXF 1186*53ee8cc1Swenshuai.xi #define S2A_MBOX_HDMI_NPCM_RDPTR DSP_2_SNDR2M_MAILBOX4 1187*53ee8cc1Swenshuai.xi #define S2A_MBOX_PCMR_DMXPCM_RDPTR DSP_2_SNDR2M_MAILBOX5 // pcmR_dmxPcm from preAsndR2 RDPTR 1188*53ee8cc1Swenshuai.xi #define S2A_MBOX_SPEAKER_CH_VOLUME DSP_2_SNDR2M_MAILBOXA 1189*53ee8cc1Swenshuai.xi 1190*53ee8cc1Swenshuai.xi #define A2S_R2_PCMOUT_WRPTR SNDR2M_2_DSP_MAILBOX1 1191*53ee8cc1Swenshuai.xi #define A2S_R2_PCMOUT2_WRPTR SNDR2M_2_DSP_MAILBOX2 1192*53ee8cc1Swenshuai.xi #define A2S_R2_SPDIF_WR_PTR SNDR2M_2_DSP_MAILBOX3 1193*53ee8cc1Swenshuai.xi #define A2S_MBOX_HDMI_NPCM_WRPTR SNDR2M_2_DSP_MAILBOX4 1194*53ee8cc1Swenshuai.xi #define A2S_R2_SPDIF_CTRL SNDR2M_2_DSP_MAILBOX5 1195*53ee8cc1Swenshuai.xi #define A2S_MBOX_HDMI_NPCM_CMD SNDR2M_2_DSP_MAILBOX5 1196*53ee8cc1Swenshuai.xi #define A2S_R2_DOLBY_META_DATA SNDR2M_2_DSP_MAILBOX6 1197*53ee8cc1Swenshuai.xi #define A2S_MBOX_DDENC_OUTMCH_WRPTR SNDR2M_2_DSP_MAILBOX6 1198*53ee8cc1Swenshuai.xi 1199*53ee8cc1Swenshuai.xi #define A2S_MBOX_R2_TO_DSP_CTRL SNDR2M_2_DSP_MAILBOX7 1200*53ee8cc1Swenshuai.xi #define A2S_DDENC_ENABLE MBOX_BIT0 1201*53ee8cc1Swenshuai.xi #define A2S_CMD_SOUND_MIXER_DISABLE_BIT MBOX_BIT1 //[1] SOUND_MIXER, 0:in DSP (MS11), 1:in SND_R2 (MS12) 1202*53ee8cc1Swenshuai.xi 1203*53ee8cc1Swenshuai.xi #define A2S_MBOX_PCMR_DMXPCM_WRPTR SNDR2M_2_DSP_MAILBOX9 // pcmR_dmxPcm from preAsndR2 WRPTR 1204*53ee8cc1Swenshuai.xi 1205*53ee8cc1Swenshuai.xi #define A2S_R2_SOUND_PROCESS_CTRL SNDR2M_2_DSP_MAILBOXF 1206*53ee8cc1Swenshuai.xi #define MBOX_PRE_SOUND_PROCESS_DISABLE_BIT MBOX_BIT0 1207*53ee8cc1Swenshuai.xi #define MBOX_POST_SOUND_PROCESS_DISABLE_BIT MBOX_BIT1 1208*53ee8cc1Swenshuai.xi 1209*53ee8cc1Swenshuai.xi /******************************************************************** 1210*53ee8cc1Swenshuai.xi * DSP io mapping 1211*53ee8cc1Swenshuai.xi ********************************************************************/ 1212*53ee8cc1Swenshuai.xi #define NULL_IO 0 1213*53ee8cc1Swenshuai.xi 1214*53ee8cc1Swenshuai.xi /* DSP common IO */ 1215*53ee8cc1Swenshuai.xi #define DSPIO_SPDIF_IN_FREQ STATUS_SPDIF_FREQ 1216*53ee8cc1Swenshuai.xi #define DSPIO_HDMI_IN_FREQ STATUS_HDMI_FREQ 1217*53ee8cc1Swenshuai.xi #define DSPIO_HDMI_IN_PC STATUS_HDMI_PC 1218*53ee8cc1Swenshuai.xi 1219*53ee8cc1Swenshuai.xi /* DSP Bounding IO */ 1220*53ee8cc1Swenshuai.xi #define DSP_BOUND_OPTION 1 1221*53ee8cc1Swenshuai.xi #define DSPIO_BOUND_OPTION 0xA0FF 1222*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DD = 0; //DD 1223*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DDP = 1; //DD+ 1224*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DPULSE = 2; //Dolby Pulse (MS10 DDT) or DDCO 1225*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DVOL = 3; //Dolby Volume 1226*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DTRUEHD = 4; //Dolby TrueHD 1227*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DDDCO = 5; //Dolby DDCO 1228*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DTSENVELO = 6; //DTS Envelo / Symmetry 1229*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DTSDMP = 7; //DTS DMP 1230*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DTSLBR = 8; //DTS LBR 1231*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DTSTS = 9; //DTS Transcoder 1232*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DTSCORELESS = 10; //DTS Coreless 1233*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_SRS = 11; //SRS / Adv Sound 1234*53ee8cc1Swenshuai.xi .const BOUNDING_BIT_DOLBY = 12; // when bit[12] = 0, all dolby ip's licenses open 1235*53ee8cc1Swenshuai.xi 1236*53ee8cc1Swenshuai.xi //#define AUTH_OPTION 0x0FF2 1237*53ee8cc1Swenshuai.xi .const AUTH_BIT_DD = 0; 1238*53ee8cc1Swenshuai.xi .const AUTH_BIT_DDP = 1; 1239*53ee8cc1Swenshuai.xi .const AUTH_BIT_DDE = 2; 1240*53ee8cc1Swenshuai.xi .const AUTH_BIT_DTSDEC = 3; 1241*53ee8cc1Swenshuai.xi .const AUTH_BIT_MS10DDT = 4; 1242*53ee8cc1Swenshuai.xi .const AUTH_BIT_WMA = 5; 1243*53ee8cc1Swenshuai.xi .const AUTH_BIT_DRA = 6; 1244*53ee8cc1Swenshuai.xi .const AUTH_BIT_DTSLBR = 7; 1245*53ee8cc1Swenshuai.xi .const AUTH_BIT_GAAC = 8; 1246*53ee8cc1Swenshuai.xi .const AUTH_BIT_MS11DDT = 9; 1247*53ee8cc1Swenshuai.xi .const AUTH_BIT_DEMOMODE = 12; 1248*53ee8cc1Swenshuai.xi .const AUTH_BIT_COOK = 16; 1249*53ee8cc1Swenshuai.xi .const AUTH_BIT_DTS_HD = 17; 1250*53ee8cc1Swenshuai.xi .const AUTH_BIT_MS12_LC = 18; 1251*53ee8cc1Swenshuai.xi .const AUTH_BIT_MS12_D = 19; 1252*53ee8cc1Swenshuai.xi .const AUTH_BIT_SONICMOTION_ABS3D = 20; 1253*53ee8cc1Swenshuai.xi .const AUTH_BIT_MS12_B = 21; 1254*53ee8cc1Swenshuai.xi .const AUTH_BIT_DV258 = 22; 1255*53ee8cc1Swenshuai.xi 1256*53ee8cc1Swenshuai.xi /* IP AUTH */ 1257*53ee8cc1Swenshuai.xi #define D2S_MBOX_IP_AUTH DEC2SE_MAILBOX7 1258*53ee8cc1Swenshuai.xi 1259*53ee8cc1Swenshuai.xi /* PCM output port */ 1260*53ee8cc1Swenshuai.xi #define SIF_DSP_MAIN_DMX_L_OUT DEC4_PCM1_OUT 1261*53ee8cc1Swenshuai.xi #define SIF_DSP_MAIN_DMX_R_OUT DEC4_PCM2_OUT 1262*53ee8cc1Swenshuai.xi 1263*53ee8cc1Swenshuai.xi !#define R2_PCM1_DMX__L_OUT DEC3_PCM1_OUT // channel mapping of PCM buffer, replace R2_DMA_READER1 (R2_DECODER1_OUTPUT_BY_DSP) 1264*53ee8cc1Swenshuai.xi !#define R2_PCM1_DMX__R_OUT DEC3_PCM2_OUT 1265*53ee8cc1Swenshuai.xi !#define R2_PCM1_MCH__L_OUT DEC3_PCM3_OUT 1266*53ee8cc1Swenshuai.xi !#define R2_PCM1_MCH__C_OUT DEC3_PCM4_OUT 1267*53ee8cc1Swenshuai.xi !#define R2_PCM1_MCH__R_OUT DEC3_PCM5_OUT 1268*53ee8cc1Swenshuai.xi !#define R2_PCM1_MCH_LS_OUT DEC3_PCM6_OUT 1269*53ee8cc1Swenshuai.xi !#define R2_PCM1_MCH_RS_OUT DEC3_PCM7_OUT 1270*53ee8cc1Swenshuai.xi !#define R2_PCM1_MCH_SW_OUT DEC3_PCM8_OUT 1271*53ee8cc1Swenshuai.xi !#define R2_PCM1_SYNTH_L DVB3_FIX_SYNTH_NF_L 1272*53ee8cc1Swenshuai.xi !#define R2_PCM1_SYNTH_H DVB3_FIX_SYNTH_NF_H 1273*53ee8cc1Swenshuai.xi 1274*53ee8cc1Swenshuai.xi #define R2_PCM2_DMX__L_OUT DEC4_PCM1_OUT // channel mapping of PCM buffer, replace R2_DMA_READER2 (R2_DECODER2_OUTPUT_BY_DSP) 1275*53ee8cc1Swenshuai.xi #define R2_PCM2_DMX__R_OUT DEC4_PCM2_OUT 1276*53ee8cc1Swenshuai.xi !#define R2_PCM2_MCH__L_OUT DEC4_PCM3_OUT 1277*53ee8cc1Swenshuai.xi !#define R2_PCM2_MCH__C_OUT DEC4_PCM4_OUT 1278*53ee8cc1Swenshuai.xi !#define R2_PCM2_MCH__R_OUT DEC4_PCM5_OUT 1279*53ee8cc1Swenshuai.xi !#define R2_PCM2_MCH_LS_OUT DEC4_PCM6_OUT 1280*53ee8cc1Swenshuai.xi !#define R2_PCM2_MCH_RS_OUT DEC4_PCM7_OUT 1281*53ee8cc1Swenshuai.xi !#define R2_PCM2_MCH_SW_OUT DEC4_PCM8_OUT 1282*53ee8cc1Swenshuai.xi #define R2_PCM2_SYNTH_L DVB4_FIX_SYNTH_NF_L 1283*53ee8cc1Swenshuai.xi #define R2_PCM2_SYNTH_H DVB4_FIX_SYNTH_NF_H 1284*53ee8cc1Swenshuai.xi 1285*53ee8cc1Swenshuai.xi #define DSP_SW_DMA_DMX_L_OUT DEC5_PCM1_OUT 1286*53ee8cc1Swenshuai.xi #define DSP_SW_DMA_DMX_R_OUT DEC5_PCM2_OUT 1287*53ee8cc1Swenshuai.xi #define DSP_SW_DMA_RDR_SYNTH_L DVB5_FIX_SYNTH_NF_L // SW DMA RDR use DVB5_SYNTH, MCU control, 0x112C28: Synth_L 0x112C26: Synth_H, Toggle 0x112C24[12] to update 1288*53ee8cc1Swenshuai.xi #define DSP_SW_DMA_RDR_SYNTH_H DVB5_FIX_SYNTH_NF_H 1289*53ee8cc1Swenshuai.xi 1290*53ee8cc1Swenshuai.xi /************************************************ 1291*53ee8cc1Swenshuai.xi * Below is macro for DSP code only 1292*53ee8cc1Swenshuai.xi *************************************************/ 1293*53ee8cc1Swenshuai.xi #define DSP_DMA_CHECK 1294*53ee8cc1Swenshuai.xi 1295*53ee8cc1Swenshuai.xi #define INC_WHILE_ONE_CNTR ar = dm (S2M_MBOX_WHILE1_CNTR); \ 1296*53ee8cc1Swenshuai.xi ay0 = 0x00FF00; \ 1297*53ee8cc1Swenshuai.xi af = ar and ay0; \ 1298*53ee8cc1Swenshuai.xi ar = ar + 0x000001; \ 1299*53ee8cc1Swenshuai.xi ay0 = 0x0000FF; \ 1300*53ee8cc1Swenshuai.xi ar = ar and ay0; \ 1301*53ee8cc1Swenshuai.xi ar = ar or af; \ 1302*53ee8cc1Swenshuai.xi dm (S2M_MBOX_WHILE1_CNTR) = ar 1303*53ee8cc1Swenshuai.xi 1304*53ee8cc1Swenshuai.xi #define INC_DEBUG_CNT(x) ar = dm(kh_debugCnt+x); \ 1305*53ee8cc1Swenshuai.xi ar = ar + 1; \ 1306*53ee8cc1Swenshuai.xi dm(kh_debugCnt+x) = ar; 1307*53ee8cc1Swenshuai.xi 1308*53ee8cc1Swenshuai.xi #define CONFIG_PCM_OUTPUT_PORT ar = 0; \ 1309*53ee8cc1Swenshuai.xi dm (DEC_OUT_SEL) = ar; 1310*53ee8cc1Swenshuai.xi 1311*53ee8cc1Swenshuai.xi #define TRIGGER_INT_TO_MCU ar = 0x0000; IO(PDATA) = ar; \ 1312*53ee8cc1Swenshuai.xi nop; nop; nop; nop; \ 1313*53ee8cc1Swenshuai.xi nop; nop; nop; nop; \ 1314*53ee8cc1Swenshuai.xi ar = 0x8000; IO(PDATA) = ar; \ 1315*53ee8cc1Swenshuai.xi nop; nop; nop; nop; \ 1316*53ee8cc1Swenshuai.xi nop; nop; nop; nop; \ 1317*53ee8cc1Swenshuai.xi ar = 0x0000; IO(PDATA) = ar 1318*53ee8cc1Swenshuai.xi 1319*53ee8cc1Swenshuai.xi /* Saft jump to i0 ~ i7 x:address, y:i0 ~ i7 */ 1320*53ee8cc1Swenshuai.xi #define I_REGISTER_JUMP(x,y) sr = lshift x by -16(lo); \ 1321*53ee8cc1Swenshuai.xi y = x; \ 1322*53ee8cc1Swenshuai.xi CPR = sr0; \ 1323*53ee8cc1Swenshuai.xi jump (y); 1324*53ee8cc1Swenshuai.xi 1325*53ee8cc1Swenshuai.xi /* Saft call to i0 ~ i7 x:address, y:i0 ~ i7 */ 1326*53ee8cc1Swenshuai.xi #define I_REGISTER_CALL(x,y) sr = lshift x by -16(lo); \ 1327*53ee8cc1Swenshuai.xi y = x; \ 1328*53ee8cc1Swenshuai.xi CPR = sr0; \ 1329*53ee8cc1Swenshuai.xi call (y); 1330*53ee8cc1Swenshuai.xi 1331*53ee8cc1Swenshuai.xi #define SEND_INT_TO_R2(cmd, param) ar = param; \ 1332*53ee8cc1Swenshuai.xi dm(S2D_MBOX_DSP_TO_R2_PARAM) = ar; \ 1333*53ee8cc1Swenshuai.xi ar = cmd; \ 1334*53ee8cc1Swenshuai.xi dm(S2D_MBOX_DSP_TO_R2_COMMAND) = ar 1335*53ee8cc1Swenshuai.xi 1336*53ee8cc1Swenshuai.xi #else 1337*53ee8cc1Swenshuai.xi 1338*53ee8cc1Swenshuai.xi #define DSP2_TO_COMMON_DRAM_OFFSET (ASND_DSP_DDR_SIZE / BYTES_IN_MIU_LINE) 1339*53ee8cc1Swenshuai.xi 1340*53ee8cc1Swenshuai.xi /* DMA Reader Buffer */ 1341*53ee8cc1Swenshuai.xi #define DSP2_DMA_READER_DRAM_BASE (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_DMA_READER_DRAM_BASE / BYTES_IN_MIU_LINE)) 1342*53ee8cc1Swenshuai.xi #define DSP2_DMA_READER_DRAM_SIZE ((DMA_READER_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1) 1343*53ee8cc1Swenshuai.xi 1344*53ee8cc1Swenshuai.xi /* HW DMA Reader2 Buffer */ 1345*53ee8cc1Swenshuai.xi #define DSP2_HW_DMA_READER2_DRAM_BASE (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_HW_DMA_READER2_DRAM_BASE /BYTES_IN_MIU_LINE)) 1346*53ee8cc1Swenshuai.xi #define DSP2_HW_DMA_READER2_DRAM_SIZE ((HW_DMA_READER2_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1) 1347*53ee8cc1Swenshuai.xi 1348*53ee8cc1Swenshuai.xi /* Software DMA */ 1349*53ee8cc1Swenshuai.xi #define DSP2_SW_DMA_READER_DRAM_BASE (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_SW_DMA_READER_DRAM_BASE / BYTES_IN_MIU_LINE)) 1350*53ee8cc1Swenshuai.xi #define DSP2_SW_DMA_READER_DRAM_SIZE ((SW_DMA_READER_DRAM_SIZE / BYTES_IN_MIU_LINE) - 1) 1351*53ee8cc1Swenshuai.xi 1352*53ee8cc1Swenshuai.xi /* PCM capture buffer */ 1353*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE_BUFFER_DRAM_BASE (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM_CAPTURE1_BUFFER_DRAM_BASE / BYTES_IN_MIU_LINE)) 1354*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE2_BUFFER_DRAM_BASE (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM_CAPTURE2_BUFFER_DRAM_BASE / BYTES_IN_MIU_LINE)) 1355*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE3_BUFFER_DRAM_BASE (DSP2_TO_COMMON_DRAM_OFFSET + (OFFSET_PCM_CAPTURE3_BUFFER_DRAM_BASE / BYTES_IN_MIU_LINE)) 1356*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE_BUFFER_DRAM_SIZE (PCM_CAPTURE_BUFFER_DRAM_SIZE/ BYTES_IN_MIU_LINE) 1357*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE2_BUFFER_DRAM_SIZE (PCM_CAPTURE2_BUFFER_DRAM_SIZE/ BYTES_IN_MIU_LINE) 1358*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE3_BUFFER_DRAM_SIZE (PCM_CAPTURE3_BUFFER_DRAM_SIZE/ BYTES_IN_MIU_LINE) 1359*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE_COPY_WORDSIZE 32 1360*53ee8cc1Swenshuai.xi #define DSP2_PCM_CAPTURE_COPY_LINESIZE 4 1361*53ee8cc1Swenshuai.xi 1362*53ee8cc1Swenshuai.xi #endif //_COMPILE_DSP_ 1363*53ee8cc1Swenshuai.xi 1364*53ee8cc1Swenshuai.xi //Reseved XBox 1365*53ee8cc1Swenshuai.xi /* srs puresound */ 1366*53ee8cc1Swenshuai.xi //reserved XBox for SRS start from XBox 0xB960 1367*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_SRS_PURESOUND_RESERVED1 0xB960 1368*53ee8cc1Swenshuai.xi 1369*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqFir_NumOfTaps_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+1 1370*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir_NumOfSections_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+2 1371*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir1Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+3 1372*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir2Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+8 1373*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir3Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+13 1374*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir4Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+18 1375*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir5Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+23 1376*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir6Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+28 1377*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir7Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+33 1378*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir8Coefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+38 1379*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir1_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+43 1380*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir2_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+44 1381*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir3_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+45 1382*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir4_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+46 1383*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir5_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+47 1384*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir6_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+48 1385*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir7_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+49 1386*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir8_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+50 1387*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir_Gain_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+51 1388*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqIir_Gain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+52 1389*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqFir_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+53 1390*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqFir_Gain_iwl_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+54 1391*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqFir_Gain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+55 1392*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqFirCoefs_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED1+64 1393*53ee8cc1Swenshuai.xi 1394*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_SRS_PURESOUND_RESERVED2 SRS_PURESOUND_AeqFirCoefs_addr+1 1395*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_mDummy_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2 1396*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_SRS_EN_BITS_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+1 1397*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_mInputGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+2 1398*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_mOutputGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+3 1399*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_mBypassGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+4 1400*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_mHPFfc_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+5 1401*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_hlInputGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+25 1402*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_hlOutputGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+26 1403*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_hlBypassGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+27 1404*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_hlLimiterboost_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+28 1405*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_hlHardLimit_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+29 1406*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_hlDelaylen_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+30 1407*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqInputGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+32 1408*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqOutputGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+33 1409*53ee8cc1Swenshuai.xi #define SRS_PURESOUND_AeqBypassGain_addr DSP2XboxAddr_SRS_PURESOUND_RESERVED2+34 1410*53ee8cc1Swenshuai.xi 1411*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_SRS_PURESOUND_RESERVED_END SRS_PURESOUND_AeqBypassGain_addr 1412*53ee8cc1Swenshuai.xi 1413*53ee8cc1Swenshuai.xi /* atv */ 1414*53ee8cc1Swenshuai.xi //reserved XBox for ATV 1415*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_ATV_RESERVED1 DSP2XboxAddr_SRS_PURESOUND_RESERVED_END+1 1416*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_AU_PAL_SYS_THRESHOLD DSP2XboxAddr_ATV_RESERVED1 1417*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_SIF_PM_GAIN_TBL_PAL DSP2XboxAddr_AU_PAL_SYS_THRESHOLD+12 1418*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_SIF_PM_GAIN_TBL_BTSC DSP2XboxAddr_AU_PAL_SYS_THRESHOLD+12 1419*53ee8cc1Swenshuai.xi #define DSP2XboxAddr_ATV_RESERVED_END DSP2XboxAddr_SIF_PM_GAIN_TBL_BTSC+8-1 1420*53ee8cc1Swenshuai.xi 1421*53ee8cc1Swenshuai.xi /************************************************ 1422*53ee8cc1Swenshuai.xi * For Compile Pass mailbox (Need to remove later) 1423*53ee8cc1Swenshuai.xi ************************************************/ 1424*53ee8cc1Swenshuai.xi 1425*53ee8cc1Swenshuai.xi #define D2M_MBOX_INTR_CMDTYPE MB_2DB2 1426*53ee8cc1Swenshuai.xi #define DSP1PmAddr_ipSecurity 0x0FF2 1427*53ee8cc1Swenshuai.xi #define D2M_MBOX_ENC_LINEADDR MB_2DAC //MPEG Encoder 1428*53ee8cc1Swenshuai.xi #define D2M_MBOX_ENC_LINESIZE MB_2DAE //MPEG Encoder 1429*53ee8cc1Swenshuai.xi #define M2D_MBOX_PIO_ID MB_2D8A 1430*53ee8cc1Swenshuai.xi #define DSP1PmAddr_smpRate 0x0FF7 1431*53ee8cc1Swenshuai.xi #define D2M_MBOX_HDMI_NPCM_LOCK MB_2DB4 //[ 3:0] Always in LSB Nibble 1432*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_DTV1_BEG 0xF000 1433*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_DTV1_END 0xF100 1434*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_DTV2_BEG 0xF600 1435*53ee8cc1Swenshuai.xi #define MBOX_DBGCMD_RELOAD_DTV2_END 0xF700 1436*53ee8cc1Swenshuai.xi #define DSP1DmAddr_sys_IoInfo NULL 1437*53ee8cc1Swenshuai.xi #define M2D_MBOX_MM_FILEIN_TAG MB_2D8C 1438*53ee8cc1Swenshuai.xi #define MBOX_DSP_INIT_ACK 0xE300 1439*53ee8cc1Swenshuai.xi #define D2M_MBOX_DBG_RESULT2 MB_2DBE 1440*53ee8cc1Swenshuai.xi #define D2M_MBOX_DBG_RESULT1 MB_2DBC 1441*53ee8cc1Swenshuai.xi #define M2D_MBOX_DEC_CTRL MB_2D86 1442*53ee8cc1Swenshuai.xi #define M2D_MBOX_DBG_CMD1 MB_2D9C 1443*53ee8cc1Swenshuai.xi 1444*53ee8cc1Swenshuai.xi #define D2M_MBOX_DBG_RESULT1 MB_2DBC 1445*53ee8cc1Swenshuai.xi #define MBOX_DSP_INIT_ACK 0xE300 1446*53ee8cc1Swenshuai.xi #define D2M_MBOX_DBG_RESULT2 MB_2DBE 1447*53ee8cc1Swenshuai.xi #define MBOX_DSP_RELOAD_ACK1 0x0033 1448*53ee8cc1Swenshuai.xi #define MBOX_DSP_RELOAD_ACK2 0x0077 1449*53ee8cc1Swenshuai.xi #define M2D_MBOX_DEC_CTRL MB_2D86 1450*53ee8cc1Swenshuai.xi #define D2M_MBOX_SAMPLERATE MB_2DA6 1451*53ee8cc1Swenshuai.xi #define DSP1DmAddr_dec1_param 0x47A0 1452*53ee8cc1Swenshuai.xi #define DSP1DmAddr_dec1_info 0x47C0 1453*53ee8cc1Swenshuai.xi #define DSP1DmAddr_dec1_omx_param 0x42B4 1454*53ee8cc1Swenshuai.xi #define M2D_MBOX_UNI_PCM3_WRPTR MB_2D94 1455*53ee8cc1Swenshuai.xi #define DSP1PmAddr_video_TD 0x0FF1 1456*53ee8cc1Swenshuai.xi #define D2M_MBOX_UNI_PCM_BUFFEBT MB_2D6A 1457*53ee8cc1Swenshuai.xi 1458*53ee8cc1Swenshuai.xi //// SIF /* SIF DSP PM vars */ // for SIF PAL DSP PM vars // 1459*53ee8cc1Swenshuai.xi #define ADDR_gain_base 0x1921 1460*53ee8cc1Swenshuai.xi #define ADDR_thr_base 0x1A20 1461*53ee8cc1Swenshuai.xi #define ADDR_pfir_base 0x1A90 // for SIF BTSC DSP PM vars // 1462*53ee8cc1Swenshuai.xi #define BTSC_COMPILE_OPTION_Addr 0x19F1 // len 1 1463*53ee8cc1Swenshuai.xi #define BTSC_OUTPUT_GAIN_Addr 0x1A21 // len 2 1464*53ee8cc1Swenshuai.xi #define BTSC_THRESHOLD_Addr 0x1A23 // len 10 1465*53ee8cc1Swenshuai.xi #define MTS_OUTPUT_GAIN_Addr 0x1A34 //len 6 1466*53ee8cc1Swenshuai.xi #define SIF_AGC_THRESHOLD_Addr 0x192D //len 3 /// PAL gain setting address 1467*53ee8cc1Swenshuai.xi #define ADDR_fm_stdM_gain ADDR_gain_base // len = 4 1468*53ee8cc1Swenshuai.xi #define ADDR_fm_stdX_gain ADDR_fm_stdM_gain+4 // len = 4 1469*53ee8cc1Swenshuai.xi #define ADDR_nicam_gain ADDR_fm_stdX_gain+4 // len = 2 1470*53ee8cc1Swenshuai.xi #define ADDR_am_gain ADDR_nicam_gain+2 // len = 2 1471*53ee8cc1Swenshuai.xi #define ADDR_agc_gain ADDR_am_gain+2 // len = 24 // PAL threshold setting address 1472*53ee8cc1Swenshuai.xi #define ADDR_a2_stdM_thr ADDR_thr_base // len = 15 1473*53ee8cc1Swenshuai.xi #define ADDR_a2_stdBG_thr ADDR_a2_stdM_thr+15 // len = 15 1474*53ee8cc1Swenshuai.xi #define ADDR_a2_stdDK_thr ADDR_a2_stdBG_thr+15 // len = 15 1475*53ee8cc1Swenshuai.xi #define ADDR_a2_stdI_thr ADDR_a2_stdDK_thr+15 // len = 4 1476*53ee8cc1Swenshuai.xi #define ADDR_am_thr ADDR_a2_stdI_thr+4 // len = 3 1477*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdM_thr ADDR_am_thr+3 // len = 4 1478*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdBG_thr ADDR_hidev_stdM_thr+4 // len = 4 1479*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdDK_thr ADDR_hidev_stdBG_thr+4 // len = 4 1480*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdI_thr ADDR_hidev_stdDK_thr+4 // len = 4 1481*53ee8cc1Swenshuai.xi #define ADDR_nicam_stdBG_pherr_thr ADDR_hidev_stdI_thr+4 //len = 3 1482*53ee8cc1Swenshuai.xi #define ADDR_nicam_stdI_pherr_thr ADDR_nicam_stdBG_pherr_thr+3 // len = 3 1483*53ee8cc1Swenshuai.xi #define ADDR_a2_bg_nicam_fm_nsr_thr 0x186F // len = 1 1484*53ee8cc1Swenshuai.xi #define ADDR_a2_dk_nicam_fm_nsr_thr 0x1870 // len = 1 // pfir setting address 1485*53ee8cc1Swenshuai.xi #define ADDR_hidev_demfir ADDR_pfir_base // len = 15 1486*53ee8cc1Swenshuai.xi #define ADDR_fm_ch1_pfir ADDR_hidev_demfir+16 // len = 30 1487*53ee8cc1Swenshuai.xi #define ADDR_fm_ch2_pfir ADDR_fm_ch1_pfir+30 // len = 30 1488*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv1_pfir ADDR_fm_ch2_pfir+30 // len = 20 1489*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv2_pfir ADDR_hidev_lv1_pfir+20 // len = 20 1490*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv3_pfir ADDR_hidev_lv2_pfir+20 // len = 20 // BTSC threshold setting address 1491*53ee8cc1Swenshuai.xi #define HIDEV_NSR_THRESHOLD_Addr BTSC_THRESHOLD_Addr+10 // len 2 1492*53ee8cc1Swenshuai.xi #define BTSC_MONO_AMP_THRESHOLD_Addr HIDEV_NSR_THRESHOLD_Addr+2 // len 2 1493*53ee8cc1Swenshuai.xi #define HIDEV_AMP_THRESHOLD_Addr BTSC_MONO_AMP_THRESHOLD_Addr+2 // len 2 1494*53ee8cc1Swenshuai.xi #define BTSC_SAP_PHASE_DIFF_CLIP_THR_Addr HIDEV_AMP_THRESHOLD_Addr+2 // len 1 1495*53ee8cc1Swenshuai.xi #define BTSC_PILOT_DEBOUNCE_THRESHOLD_Addr MTS_OUTPUT_GAIN_Addr+6 // len 3 1496*53ee8cc1Swenshuai.xi #define BTSC_SAP_ON_DETECTION_DEBOUNCE_THRESHOLD_Addr BTSC_PILOT_DEBOUNCE_THRESHOLD_Addr+3 // len 1 1497*53ee8cc1Swenshuai.xi 1498*53ee8cc1Swenshuai.xi #define M2S_MBOX_MM_FILEIN_TAG MB_2DCC //[7:0] 1499*53ee8cc1Swenshuai.xi #define DSP2PmAddr_smpRate 0x0D49 1500*53ee8cc1Swenshuai.xi #define DSP2PmAddr_soundMode 0x0D4A 1501*53ee8cc1Swenshuai.xi #define DSP2DmAddr_dec1_param 0x4390 1502*53ee8cc1Swenshuai.xi #define DSP2DmAddr_hdmi_debugInfo 0x396A 1503*53ee8cc1Swenshuai.xi #define DSP2DmAddr_spdif_debugInfo 0x3832 1504*53ee8cc1Swenshuai.xi 1505*53ee8cc1Swenshuai.xi /* SIF DSP PM vars */ 1506*53ee8cc1Swenshuai.xi /* for SIF PAL DSP PM vars */ 1507*53ee8cc1Swenshuai.xi 1508*53ee8cc1Swenshuai.xi #define ADDR_gain_base_2 NULL 1509*53ee8cc1Swenshuai.xi #define ADDR_thr_base_2 NULL 1510*53ee8cc1Swenshuai.xi #define ADDR_pfir_base_2 NULL 1511*53ee8cc1Swenshuai.xi // for SIF BTSC DSP PM vars // 1512*53ee8cc1Swenshuai.xi #define BTSC_COMPILE_OPTION_Addr_2 NULL // len 1 1513*53ee8cc1Swenshuai.xi #define BTSC_OUTPUT_GAIN_Addr_2 NULL // len 2 1514*53ee8cc1Swenshuai.xi #define BTSC_THRESHOLD_Addr_2 NULL // len 10 1515*53ee8cc1Swenshuai.xi #define MTS_OUTPUT_GAIN_Addr_2 NULL //len 6 1516*53ee8cc1Swenshuai.xi #define SIF_AGC_THRESHOLD_Addr_2 NULL //len 3 1517*53ee8cc1Swenshuai.xi 1518*53ee8cc1Swenshuai.xi /// PAL gain setting address 1519*53ee8cc1Swenshuai.xi #define ADDR_fm_stdM_gain_2 NULL // len = 4 1520*53ee8cc1Swenshuai.xi #define ADDR_fm_stdX_gain_2 NULL // len = 4 1521*53ee8cc1Swenshuai.xi #define ADDR_nicam_gain_2 NULL // len = 2 1522*53ee8cc1Swenshuai.xi #define ADDR_am_gain_2 NULL // len = 2 1523*53ee8cc1Swenshuai.xi #define ADDR_agc_gain_2 NULL // len = 24 1524*53ee8cc1Swenshuai.xi 1525*53ee8cc1Swenshuai.xi // PAL threshold setting address 1526*53ee8cc1Swenshuai.xi #define ADDR_a2_stdM_thr_2 NULL // len = 15 1527*53ee8cc1Swenshuai.xi #define ADDR_a2_stdBG_thr_2 NULL // len = 15 1528*53ee8cc1Swenshuai.xi #define ADDR_a2_stdDK_thr_2 NULL // len = 15 1529*53ee8cc1Swenshuai.xi #define ADDR_a2_stdI_thr_2 NULL // len = 4 1530*53ee8cc1Swenshuai.xi #define ADDR_am_thr_2 NULL // len = 3 1531*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdM_thr_2 NULL // len = 4 1532*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdBG_thr_2 NULL // len = 4 1533*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdDK_thr_2 NULL // len = 4 1534*53ee8cc1Swenshuai.xi #define ADDR_hidev_stdI_thr_2 NULL // len = 4 1535*53ee8cc1Swenshuai.xi #define ADDR_nicam_stdBG_pherr_thr_2 NULL //len = 3 1536*53ee8cc1Swenshuai.xi #define ADDR_nicam_stdI_pherr_thr_2 NULL // len = 3 1537*53ee8cc1Swenshuai.xi #define ADDR_a2_bg_nicam_fm_nsr_thr_2 NULL // len = 1 1538*53ee8cc1Swenshuai.xi #define ADDR_a2_dk_nicam_fm_nsr_thr_2 NULL // len = 1 1539*53ee8cc1Swenshuai.xi 1540*53ee8cc1Swenshuai.xi // pfir setting address 1541*53ee8cc1Swenshuai.xi #define ADDR_hidev_demfir_2 NULL // len = 15 1542*53ee8cc1Swenshuai.xi #define ADDR_fm_ch1_pfir_2 NULL // len = 30 1543*53ee8cc1Swenshuai.xi #define ADDR_fm_ch2_pfir_2 NULL // len = 30 1544*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv1_pfir_2 NULL // len = 20 1545*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv2_pfir_2 NULL // len = 20 1546*53ee8cc1Swenshuai.xi #define ADDR_hidev_lv3_pfir_2 NULL // len = 20 1547*53ee8cc1Swenshuai.xi 1548*53ee8cc1Swenshuai.xi // BTSC threshold setting address 1549*53ee8cc1Swenshuai.xi #define HIDEV_NSR_THRESHOLD_Addr_2 NULL // len 2 1550*53ee8cc1Swenshuai.xi #define BTSC_MONO_AMP_THRESHOLD_Addr_2 NULL // len 2 1551*53ee8cc1Swenshuai.xi #define HIDEV_AMP_THRESHOLD_Addr_2 NULL // len 2 1552*53ee8cc1Swenshuai.xi 1553*53ee8cc1Swenshuai.xi #define BTSC_SAP_PHASE_DIFF_CLIP_THR_Addr_2 NULL // len 1 1554*53ee8cc1Swenshuai.xi #define BTSC_PILOT_DEBOUNCE_THRESHOLD_Addr_2 NULL // len 3 1555*53ee8cc1Swenshuai.xi #define BTSC_SAP_ON_DETECTION_DEBOUNCE_THRESHOLD_Addr_2 NULL // len 1 1556*53ee8cc1Swenshuai.xi 1557*53ee8cc1Swenshuai.xi /************************************************ 1558*53ee8cc1Swenshuai.xi * End for Compile Pass mailbox (Need to remove later) 1559*53ee8cc1Swenshuai.xi ************************************************/ 1560*53ee8cc1Swenshuai.xi 1561*53ee8cc1Swenshuai.xi 1562*53ee8cc1Swenshuai.xi #endif //_AUDIO_COMM2_H_ 1563*53ee8cc1Swenshuai.xi 1564