xref: /utopia/UTPA2-700.0.x/modules/audio/hal/macan/audio/decR2_proj.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #ifndef __PLATFORM_PROJ_INCLUDE_FILE__
2*53ee8cc1Swenshuai.xi #define __PLATFORM_PROJ_INCLUDE_FILE__
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi #include "ddr_config.h"
5*53ee8cc1Swenshuai.xi #include "mbox_decR2.h"
6*53ee8cc1Swenshuai.xi 
7*53ee8cc1Swenshuai.xi #define DEC_R2_CLOCK             432000000
8*53ee8cc1Swenshuai.xi 
9*53ee8cc1Swenshuai.xi #define DEFAULT_ES_BLOCK_LEVEL                      0x1800
10*53ee8cc1Swenshuai.xi #define DEFAULT_PCM_BLOCK_LEVEL                     0x20000
11*53ee8cc1Swenshuai.xi #define DEFAULT_AVSYNC_OFFSET                       0x3138                  //AVSYNC delay in DTV: 140ms, Unit: 33bits
12*53ee8cc1Swenshuai.xi #define DEFAULT_SPDIF_OFFSET                        0xC00                    //
13*53ee8cc1Swenshuai.xi #define DEFAULT_STOP_PARSER_ES_LEVEL                0x10000
14*53ee8cc1Swenshuai.xi #define DEFAULT_FILE_HAND_SHAKE_SIZE                0x800
15*53ee8cc1Swenshuai.xi 
16*53ee8cc1Swenshuai.xi #define MPG_AV_DEFAULT_DELAY                0x3E1E
17*53ee8cc1Swenshuai.xi #define AC3_AV_DEFAULT_DELAY                0x4300
18*53ee8cc1Swenshuai.xi #define AAC_AV_DEFAULT_DELAY                0x327E
19*53ee8cc1Swenshuai.xi 
20*53ee8cc1Swenshuai.xi #define DELAY_UPPER_LIMIT                   0x6978
21*53ee8cc1Swenshuai.xi #define DELAY_LOWER_LIMIT                   0xA8C
22*53ee8cc1Swenshuai.xi 
23*53ee8cc1Swenshuai.xi #ifdef  __BUILD_FOR_R2__
24*53ee8cc1Swenshuai.xi /***********************************************************
25*53ee8cc1Swenshuai.xi *   Software Setting
26*53ee8cc1Swenshuai.xi ***********************************************************/
27*53ee8cc1Swenshuai.xi     #define R2_SIMULATION                   0
28*53ee8cc1Swenshuai.xi     #define R2_BUILD_IN_TEST_PATTERN        0
29*53ee8cc1Swenshuai.xi 
30*53ee8cc1Swenshuai.xi     #define R2_DECODER_EN                           (1)
31*53ee8cc1Swenshuai.xi         #define R2_DECODER1_FORCE_MCH_OUTPUT        (1)
32*53ee8cc1Swenshuai.xi         #define R2_DECODER1_FORCE_2CH_OUTPUT        (0)
33*53ee8cc1Swenshuai.xi         #define R2_DECODER2_FORCE_MCH_OUTPUT        (1)
34*53ee8cc1Swenshuai.xi         #define R2_DECODER2_FORCE_2CH_OUTPUT        (0)
35*53ee8cc1Swenshuai.xi #ifdef __aeon__
36*53ee8cc1Swenshuai.xi         #define R2_DECODER1_OUTPUT_BY_DSP           (0)
37*53ee8cc1Swenshuai.xi         #define R2_DECODER2_OUTPUT_BY_DSP           (0)
38*53ee8cc1Swenshuai.xi #else
39*53ee8cc1Swenshuai.xi         #define R2_DECODER1_OUTPUT_BY_DSP           (0)
40*53ee8cc1Swenshuai.xi         #define R2_DECODER2_OUTPUT_BY_DSP           (0)
41*53ee8cc1Swenshuai.xi #endif
42*53ee8cc1Swenshuai.xi 
43*53ee8cc1Swenshuai.xi     #define PRE__SOUND_PROCESS_EN           0
44*53ee8cc1Swenshuai.xi     #define POST_SOUND_PROCESS_EN           0
45*53ee8cc1Swenshuai.xi     #define FD230_EN                        0
46*53ee8cc1Swenshuai.xi 
47*53ee8cc1Swenshuai.xi     #define R2_AD_ENABLE                    1
48*53ee8cc1Swenshuai.xi     #define R2_DISABLE_PARSERAB             0
49*53ee8cc1Swenshuai.xi     #define PARSER_PUSI_SUPPORT             1
50*53ee8cc1Swenshuai.xi     #define PASDMA_ENABLE                   0
51*53ee8cc1Swenshuai.xi     #define PASDROP_ENABLE                  0
52*53ee8cc1Swenshuai.xi 
53*53ee8cc1Swenshuai.xi     #define R2_INTERRUPT_PRINTF
54*53ee8cc1Swenshuai.xi 
55*53ee8cc1Swenshuai.xi #if (R2_SIMULATION == 1)
56*53ee8cc1Swenshuai.xi     #define R2_SIM_DEC1_AUDIO_TYPE       1           // 1: AC3, 5: AAC, 3: mp3 (use ES1(md) and ES2(ad))
57*53ee8cc1Swenshuai.xi     #define R2_SIM_DEC2_AUDIO_TYPE       1           // 1: AC3, 5: AAC, 3: mp3 (use ES3(md) and ES4(ad))
58*53ee8cc1Swenshuai.xi     #define R2_SIM_DEC1_COMMAND_ENABLE      0x11        //0: disable, 0x01 : MD only, 0x11: MD+AD
59*53ee8cc1Swenshuai.xi     #define R2_SIM_DEC2_COMMAND_ENABLE      0           //0: disable, 0x01 : MD only, 0x11: MD+AD
60*53ee8cc1Swenshuai.xi     #undef R2_INTERRUPT_PRINTF
61*53ee8cc1Swenshuai.xi #endif
62*53ee8cc1Swenshuai.xi 
63*53ee8cc1Swenshuai.xi /***********************************************************
64*53ee8cc1Swenshuai.xi *   wrapper define for each IP
65*53ee8cc1Swenshuai.xi ***********************************************************/
66*53ee8cc1Swenshuai.xi #define DEC_R2_DQMEM_SIZE                   32      //unit is kbytes
67*53ee8cc1Swenshuai.xi #define DEC_R2_DQMEM_ADDR                   0xFFFF0000
68*53ee8cc1Swenshuai.xi 
69*53ee8cc1Swenshuai.xi #define R2_DEC_HDMI_OUTPUT              1       // 1:HDMI_Nonpcm_Tx or HDMI_ARC
70*53ee8cc1Swenshuai.xi #define UNI_DECODE_DONE_NON_6_BLOCK     1
71*53ee8cc1Swenshuai.xi #define REMOVE_DTS_TRANSCODER           0
72*53ee8cc1Swenshuai.xi #define REMOVE_MS11_DDENCODE            0
73*53ee8cc1Swenshuai.xi #define HEAAC_SPDIF_BYPASS              1
74*53ee8cc1Swenshuai.xi #define SND_R2_SUPPORT_DDENC            1
75*53ee8cc1Swenshuai.xi #define SND_DSP_SUPPORT_DDENC           1
76*53ee8cc1Swenshuai.xi #define SND_R2_SUPPORT_DDPENC           1
77*53ee8cc1Swenshuai.xi #define SND_DSP_SUPPORT_DPDENC          1
78*53ee8cc1Swenshuai.xi #define SND_R2_SUPPORT_DTSENC           1
79*53ee8cc1Swenshuai.xi #define SND_DSP_SUPPORT_DTSENC          1
80*53ee8cc1Swenshuai.xi #define USE_SPDIF_REPLACE_HDMI          1
81*53ee8cc1Swenshuai.xi #define STREAMING_LOW_LATENCY_LIMITER   0
82*53ee8cc1Swenshuai.xi 
83*53ee8cc1Swenshuai.xi #define L2_CRC_ERR_MUTE_NUM             2
84*53ee8cc1Swenshuai.xi #define L2_SYNCWORD_ERR_MUTE_NUM        2
85*53ee8cc1Swenshuai.xi #define DDP_HDMI_FILL256_SAMPLE_BEFORE_FIRST_FRAME  0
86*53ee8cc1Swenshuai.xi #define SUPPORT_DRCLINE_MPEG_LEVEL_MODIFY           1
87*53ee8cc1Swenshuai.xi /***********************************************************
88*53ee8cc1Swenshuai.xi *   Hardware Setting
89*53ee8cc1Swenshuai.xi ***********************************************************/
90*53ee8cc1Swenshuai.xi     #define LOG2_BYTES_IN_LINE          4
91*53ee8cc1Swenshuai.xi     #define BYTE_IN_LINE                (1<<LOG2_BYTES_IN_LINE)
92*53ee8cc1Swenshuai.xi     #define BYTE_IN_LINE_MASK           (BYTE_IN_LINE - 1)
93*53ee8cc1Swenshuai.xi     #define ALIGN_TO_MIU_LINE(x)        (x&BYTE_IN_LINE_MASK)?((x+BYTE_IN_LINE)&(~BYTE_IN_LINE_MASK)):x
94*53ee8cc1Swenshuai.xi 
95*53ee8cc1Swenshuai.xi     #define HAL_ICACHE_SIZE             8192
96*53ee8cc1Swenshuai.xi     #define HAL_ICACHE_LINE_SIZE        64
97*53ee8cc1Swenshuai.xi     #define HAL_ICACHE_WAY              4
98*53ee8cc1Swenshuai.xi 
99*53ee8cc1Swenshuai.xi     #define HAL_DCACHE_SIZE             8192
100*53ee8cc1Swenshuai.xi     #define HAL_DCACHE_LINE_SIZE        64
101*53ee8cc1Swenshuai.xi     #define HAL_DCACHE_WAY              4
102*53ee8cc1Swenshuai.xi 
103*53ee8cc1Swenshuai.xi      /* D_PREFETCH */
104*53ee8cc1Swenshuai.xi     #define DC_WR_ALLOCATE_EN           1         // R2 D-Cache write-allocate
105*53ee8cc1Swenshuai.xi     #define D_PREFETCH_NUM              0         //Macan has no this feature
106*53ee8cc1Swenshuai.xi     #define R2_SPRA_DCU_PREFETCH        (118)     //118 for DCU prefetch
107*53ee8cc1Swenshuai.xi 
108*53ee8cc1Swenshuai.xi     /* I_PREFETCH */
109*53ee8cc1Swenshuai.xi     #define I_PREFETCH_NUM              0         //Macan has no this feature
110*53ee8cc1Swenshuai.xi     #define R2_SPRA_ICU_PREFETCH        (119)     //119 for ICU prefetch
111*53ee8cc1Swenshuai.xi 
112*53ee8cc1Swenshuai.xi     /* interrupt */
113*53ee8cc1Swenshuai.xi     #define NR_IRQS                     20
114*53ee8cc1Swenshuai.xi     #define IRQ13_UART			        0x13//19
115*53ee8cc1Swenshuai.xi 
116*53ee8cc1Swenshuai.xi /***********************************************************
117*53ee8cc1Swenshuai.xi *
118*53ee8cc1Swenshuai.xi ***********************************************************/
119*53ee8cc1Swenshuai.xi     #define MAX_PRINTF_BUF                  0x8000
120*53ee8cc1Swenshuai.xi     #define decSysFunc_start        //dbg_func_entries++
121*53ee8cc1Swenshuai.xi     #define decSysFunc_end          //dbg_func_entries--
122*53ee8cc1Swenshuai.xi     #define decSysPrint(x)           //{int xxx=0;  for( xxx=0; xxx<dbg_func_entries; xxx++) printf("\t");}   x
123*53ee8cc1Swenshuai.xi #ifdef WIN32
124*53ee8cc1Swenshuai.xi     #define decSysPrint_R2(x)
125*53ee8cc1Swenshuai.xi #else
126*53ee8cc1Swenshuai.xi     #define decSysPrint_R2(x)       x
127*53ee8cc1Swenshuai.xi #endif
128*53ee8cc1Swenshuai.xi 
129*53ee8cc1Swenshuai.xi     #define CHK_BUFF_SUM(addr, size)    {   \
130*53ee8cc1Swenshuai.xi             int xxx=0;  \
131*53ee8cc1Swenshuai.xi             unsigned char *p = (unsigned char *) addr;  \
132*53ee8cc1Swenshuai.xi             unsigned char sum = 0;  \
133*53ee8cc1Swenshuai.xi             for (xxx=0; xxx<size; xxx++)    \
134*53ee8cc1Swenshuai.xi                 sum += p[xxx];  \
135*53ee8cc1Swenshuai.xi             printf("sum = %x ", sum);    \
136*53ee8cc1Swenshuai.xi         }
137*53ee8cc1Swenshuai.xi 
138*53ee8cc1Swenshuai.xi     #define CHK_BUFF_XOR(addr, size)    {   \
139*53ee8cc1Swenshuai.xi             int xxx=0;  \
140*53ee8cc1Swenshuai.xi             unsigned char *p = (unsigned char *) addr;  \
141*53ee8cc1Swenshuai.xi             unsigned char sum = 0;  \
142*53ee8cc1Swenshuai.xi             for (xxx=0; xxx<size; xxx++)    \
143*53ee8cc1Swenshuai.xi                 sum ^= p[xxx];  \
144*53ee8cc1Swenshuai.xi             printf("xor = %x ", sum);    \
145*53ee8cc1Swenshuai.xi         }
146*53ee8cc1Swenshuai.xi 
147*53ee8cc1Swenshuai.xi /***********************************************************
148*53ee8cc1Swenshuai.xi *   DDR Setting
149*53ee8cc1Swenshuai.xi ***********************************************************/
150*53ee8cc1Swenshuai.xi     #ifdef __aeon__
151*53ee8cc1Swenshuai.xi     #define OFFSET_R2                0
152*53ee8cc1Swenshuai.xi     #else
153*53ee8cc1Swenshuai.xi     #define OFFSET_R2                ((unsigned int)&chip_audio_memory_buf)
154*53ee8cc1Swenshuai.xi     #endif
155*53ee8cc1Swenshuai.xi 
156*53ee8cc1Swenshuai.xi     #define OFFSET_R2_TO_ASNDR2     (OFFSET_R2 + ADEC__R2_DDR_SIZE)
157*53ee8cc1Swenshuai.xi     #define OFFSET_R2_TO_ASNDDSP    (OFFSET_R2 + ADEC__R2_DDR_SIZE + ASND__R2_DDR_SIZE)
158*53ee8cc1Swenshuai.xi     #define OFFSET_R2_TO_COMM_DDR   (OFFSET_R2 + ADEC__R2_DDR_SIZE +ASND__R2_DDR_SIZE + ASND_DSP_DDR_SIZE)
159*53ee8cc1Swenshuai.xi 
160*53ee8cc1Swenshuai.xi     /* DECODER DDR */
161*53ee8cc1Swenshuai.xi         #define DEC1_METADATA1_BUF               (OFFSET_R2_TO_ASNDDSP + OFFSET_DEC1_METADATA1_DRAM_ADDR)
162*53ee8cc1Swenshuai.xi         #define DEC1_METADATA2_BUF               (OFFSET_R2_TO_ASNDDSP + OFFSET_DEC1_METADATA2_DRAM_ADDR)
163*53ee8cc1Swenshuai.xi         #define DEC1_METADATA3_BUF               (OFFSET_R2_TO_ASNDDSP + OFFSET_DEC1_METADATA3_DRAM_ADDR)
164*53ee8cc1Swenshuai.xi 
165*53ee8cc1Swenshuai.xi         #define DEC2_METADATA1_BUF               (OFFSET_R2_TO_ASNDDSP + OFFSET_DEC2_METADATA1_DRAM_ADDR)
166*53ee8cc1Swenshuai.xi         #define DEC2_METADATA2_BUF               (OFFSET_R2_TO_ASNDDSP + OFFSET_DEC2_METADATA2_DRAM_ADDR)
167*53ee8cc1Swenshuai.xi         #define DEC2_METADATA3_BUF               (OFFSET_R2_TO_ASNDDSP + OFFSET_DEC2_METADATA3_DRAM_ADDR)
168*53ee8cc1Swenshuai.xi         //// ES & PCM ////
169*53ee8cc1Swenshuai.xi         #if 1
170*53ee8cc1Swenshuai.xi         #define ES1_DRAM_ADDR                   (OFFSET_R2_TO_ASNDDSP + OFFSET_ES1_DRAM_ADDR)
171*53ee8cc1Swenshuai.xi         #define ES2_DRAM_ADDR                   (OFFSET_R2_TO_ASNDDSP + OFFSET_ES2_DRAM_ADDR)
172*53ee8cc1Swenshuai.xi         #define ES3_DRAM_ADDR                   (OFFSET_R2_TO_ASNDDSP + OFFSET_ES3_DRAM_ADDR)
173*53ee8cc1Swenshuai.xi         #define ES4_DRAM_ADDR                   (OFFSET_R2_TO_ASNDDSP + OFFSET_ES4_DRAM_ADDR)
174*53ee8cc1Swenshuai.xi         #define PCM1_DRAM_ADDR                  (OFFSET_R2_TO_COMM_DDR + OFFSET_PCM1_DRAM_ADDR)
175*53ee8cc1Swenshuai.xi         #define PCM2_DRAM_ADDR                  (OFFSET_R2_TO_COMM_DDR + OFFSET_PCM2_DRAM_ADDR)
176*53ee8cc1Swenshuai.xi         #endif
177*53ee8cc1Swenshuai.xi 
178*53ee8cc1Swenshuai.xi         //// HDMI non-PCM ////
179*53ee8cc1Swenshuai.xi         #if (R2_DEC_HDMI_OUTPUT == 1)
180*53ee8cc1Swenshuai.xi         #define BUF_HDMI_OFFSET		            OFFSET_HDMI_NONPCM_DRAM_BASE
181*53ee8cc1Swenshuai.xi         #define BUF_HDMI_ADDR			        (OFFSET_R2_TO_COMM_DDR+ BUF_HDMI_OFFSET)
182*53ee8cc1Swenshuai.xi         #define BUF_HDMI_SIZE			        HDMI_NONPCM_DRAM_SIZE
183*53ee8cc1Swenshuai.xi         #endif
184*53ee8cc1Swenshuai.xi 
185*53ee8cc1Swenshuai.xi         #if 0
186*53ee8cc1Swenshuai.xi         #define DSP1_ENC_RAW_OFFSET	            0x334000
187*53ee8cc1Swenshuai.xi         #define DSP1_ENC_RAW_BUFADDR		    (OFFSET_R2_TO_COMM_DDR + DSP1_ENC_RAW_OFFSET)
188*53ee8cc1Swenshuai.xi         #define DSP1_ENC_RAW_BUFSIZE 		    0x38E00
189*53ee8cc1Swenshuai.xi         #endif
190*53ee8cc1Swenshuai.xi 
191*53ee8cc1Swenshuai.xi     /* sound effect related DDR */
192*53ee8cc1Swenshuai.xi 
193*53ee8cc1Swenshuai.xi         /* pre sound DDR */
194*53ee8cc1Swenshuai.xi         //#define BUF_PCMIN_ADDR          (OFFSET_R2_TO_ASNDDSP + OFFSET_SE_MAIN_IN_DRAM_ADDR)
195*53ee8cc1Swenshuai.xi         //#define BUF_PCMIN_SIZE           SE_MAIN_IN_DRAM_SIZE
196*53ee8cc1Swenshuai.xi 
197*53ee8cc1Swenshuai.xi         /* post sound DDR */
198*53ee8cc1Swenshuai.xi         //#define BUF_PCMIN2_ADDR          (OFFSET_R2_TO_ASNDDSP + OFFSET_SE_MAIN_OUT_DRAM_ADDR)
199*53ee8cc1Swenshuai.xi         //#define BUF_PCMIN2_SIZE          SE_MAIN_OUT_DRAM_SIZE
200*53ee8cc1Swenshuai.xi 
201*53ee8cc1Swenshuai.xi         #define BUF_SPDIF_OFFSET        OFFSET_SPDIF_NONPCM_DRAM_BASE
202*53ee8cc1Swenshuai.xi         #define BUF_SPDIF_ADDR          (OFFSET_R2_TO_COMM_DDR+ BUF_SPDIF_OFFSET)
203*53ee8cc1Swenshuai.xi         #define BUF_SPDIF_SIZE          SPDIF_NONPCM_DRAM_SIZE
204*53ee8cc1Swenshuai.xi 
205*53ee8cc1Swenshuai.xi     /* ENCODER DDR */
206*53ee8cc1Swenshuai.xi         #define DDENC_METADATA_OFFSET   OFFSET_DDENC_METADATA_DRAM_ADDR
207*53ee8cc1Swenshuai.xi         #define DDENC_METADATA_ADDR     (OFFSET_R2_TO_ASNDDSP+ DDENC_METADATA_OFFSET)
208*53ee8cc1Swenshuai.xi         #define DDENC_METADATA_SIZE     DDENC_METADATA_DRAM_SIZE
209*53ee8cc1Swenshuai.xi 
210*53ee8cc1Swenshuai.xi     /* MISC */
211*53ee8cc1Swenshuai.xi 
212*53ee8cc1Swenshuai.xi /***********************************************************
213*53ee8cc1Swenshuai.xi *   Decoder threshold settings
214*53ee8cc1Swenshuai.xi ***********************************************************/
215*53ee8cc1Swenshuai.xi     #define R2_OUTPUT_ENC_RAW_DATA      0
216*53ee8cc1Swenshuai.xi 
217*53ee8cc1Swenshuai.xi     #define DEC_OUTPUT_BYTES_PER_SAMPLE                 2
218*53ee8cc1Swenshuai.xi     #define DEC_OUTPUT_DMX_CHANNELS                     2
219*53ee8cc1Swenshuai.xi     #define DEC_OUTPUT_BYTES_PER_DMX_SAMPLE             4
220*53ee8cc1Swenshuai.xi     #define DEC_OUTPUT_MCH_CHANNELS                     6                   //order : L / C / R / Ls / Rs / LFE
221*53ee8cc1Swenshuai.xi     #define DEC_OUTPUT_OMX_MCH_CHANNELS                 10
222*53ee8cc1Swenshuai.xi 
223*53ee8cc1Swenshuai.xi     #define AVSYNC_TD_TIMEOUT_THRESHOLD                 0x36EE8/2                                                // 2500ms         !?? Threshold?? STC ? APTS ????, ??? FreeRun
224*53ee8cc1Swenshuai.xi     #define AVSYNC_WAIT_STC_TD                          90*100/2                                                  // 100 ms          !?? Threshold?? STC ?? APTS ???, ??????STC
225*53ee8cc1Swenshuai.xi     #define AVSYNC_SKIP_FRM_TD                          90*45/2                                                  // 45 ms          !?? Threshold?? STC ?? APTS ???, ??skip frame??STC
226*53ee8cc1Swenshuai.xi     #define SYS_DEC_HDMIPLAY_PCM_LEVEL                  45*48  //(1536-64)*48  //0                              // 45 ms
227*53ee8cc1Swenshuai.xi     #define AVSYNC_11172_OVERFLOW_THRESHOLD             0x6D3A06             // 0x7FFFFFFF/300
228*53ee8cc1Swenshuai.xi                                                                              //
229*53ee8cc1Swenshuai.xi     #define SYS_DEC1_WAIT_1ST_PTS_TIMEOUT_PCM_LEVEL     700*48                              // 700ms  (should small than "SYS_DEC_STOP_DECODE_PCM_LEVEL")
230*53ee8cc1Swenshuai.xi     #define SYS_DEC1_WAIT_STC_TIMEOUT_PCM_LEVEL         700*48                              // 700ms  (should small than "SYS_DEC_STOP_DECODE_PCM_LEVEL")
231*53ee8cc1Swenshuai.xi     #define SYS_DEC1_FREEPLAY_PCM_LEVEL                 45*48                               // 45ms (should small than "SYS_DEC_STOP_DECODE_PCM_LEVEL")
232*53ee8cc1Swenshuai.xi     #define SYS_DEC1_STOP_DECODE_PCM_LEVEL              (1024-64)*48                        //(1536-64)*DEC_OUTPUT_1MS_48K_SIZE      //(1024-64)*DEC_OUTPUT_1MS_48K_SIZE      // 1024ms (should small than "SYS_DEC_STOP_DECODE_PCM_LEVEL")
233*53ee8cc1Swenshuai.xi     #define SYS_DEC1_STOP_DECODE_PCM_LEVEL_OMX          1728*48
234*53ee8cc1Swenshuai.xi     #define SYS_DEC1_STOP_DECODE_PCM_LEVEL_MM_TS        120*48
235*53ee8cc1Swenshuai.xi     #define SYS_DEC1_STOP_DECODE_PCM_LEVEL_DTV          ((PCM1_DRAM_SIZE/48000/2/10) * 1000 -64)*48
236*53ee8cc1Swenshuai.xi     #define SYS_DEC1_WAIT_STC_TIMEOUT_ES_LEVEL          0x8000
237*53ee8cc1Swenshuai.xi     #define SYS_DEC1_WAIT_1ST_PTS_TIMEOUT_ES_LEVEL      0x2000
238*53ee8cc1Swenshuai.xi 
239*53ee8cc1Swenshuai.xi     #define SYS_DEC_SLEEP_PCM_LEVEL                     60*48                                     // 60ms
240*53ee8cc1Swenshuai.xi     #define SYS_DEC_WAIT_1st_PTS_FRMCNT                 32
241*53ee8cc1Swenshuai.xi     #define SYS_AD_NOSIGNAL_THRESHOLD                   128
242*53ee8cc1Swenshuai.xi     #define SYS_DEC_DTV_FREEPLAY_PCM_LEVEL              64*48
243*53ee8cc1Swenshuai.xi 
244*53ee8cc1Swenshuai.xi     #define SYS_DEC_MM_TD_TIMEOUT_THRESHOLD_UP_LIMIT            (200*90000/2)
245*53ee8cc1Swenshuai.xi     #define SYS_DEC_MM_TD_TIMEOUT_THRESHOLD_DOWN_LIMIT        (-30*90000/2)
246*53ee8cc1Swenshuai.xi 
247*53ee8cc1Swenshuai.xi /***********************************************************
248*53ee8cc1Swenshuai.xi *   OMX nonPCM threshold settings
249*53ee8cc1Swenshuai.xi ***********************************************************/
250*53ee8cc1Swenshuai.xi     #define OMX_PCM_COMPARE_LEVEL               0x4800    //SmpPerCH = 0x1200*10/2/2
251*53ee8cc1Swenshuai.xi     #define OMX_DEFAULT_ADECID                  R2_ADEC_ID2
252*53ee8cc1Swenshuai.xi     #define OMX_THRESHOLD                       4
253*53ee8cc1Swenshuai.xi     #define OMX_NONPCM_START_EN_LEVEL           0x4000
254*53ee8cc1Swenshuai.xi     #define OMX_NONPCM_STOPSKIP_LEVEL           0x1600
255*53ee8cc1Swenshuai.xi     #define OMX_PCM_CONSTANT_DELAY              0x0
256*53ee8cc1Swenshuai.xi 
257*53ee8cc1Swenshuai.xi /***********************************************************
258*53ee8cc1Swenshuai.xi *   Sound effect Setting
259*53ee8cc1Swenshuai.xi ***********************************************************/
260*53ee8cc1Swenshuai.xi     #define ASND_PROCESS_MODE               2           // 2(adec_acmod_stereo) or 7(adec_acmod_mod32)
261*53ee8cc1Swenshuai.xi     #define ASND_PROCESS_ITF_UNIT           32
262*53ee8cc1Swenshuai.xi     #define BYTES_IN_PCM                    3
263*53ee8cc1Swenshuai.xi 
264*53ee8cc1Swenshuai.xi     /* pre sound process */
265*53ee8cc1Swenshuai.xi     #define ASND_PRE_PROCESS_BUF_UNIT           256
266*53ee8cc1Swenshuai.xi     #define ASND_PRE_INPUT_PCM_CH               8           //(RAW DMX + 5.1)
267*53ee8cc1Swenshuai.xi 
268*53ee8cc1Swenshuai.xi     #define DOWNMIX_2_CH_ORDER              0
269*53ee8cc1Swenshuai.xi     #define MULTI_5P1_CH_ORDER              2
270*53ee8cc1Swenshuai.xi     #define ENC_2_CH_ORDER                  8
271*53ee8cc1Swenshuai.xi     #define ECHO_CH_ORDER                   10
272*53ee8cc1Swenshuai.xi 
273*53ee8cc1Swenshuai.xi     /* post sound process */
274*53ee8cc1Swenshuai.xi     #define ASND_POST_INPUT_PCM_CH      8
275*53ee8cc1Swenshuai.xi     #define ASND_POST_PROCESS_BUF_UNIT  256
276*53ee8cc1Swenshuai.xi 
277*53ee8cc1Swenshuai.xi #endif      //__BUILD_FOR_R2__
278*53ee8cc1Swenshuai.xi 
279*53ee8cc1Swenshuai.xi /***********************************************************
280*53ee8cc1Swenshuai.xi *   Mbox Setting
281*53ee8cc1Swenshuai.xi ***********************************************************/
282*53ee8cc1Swenshuai.xi //---------------------------------------
283*53ee8cc1Swenshuai.xi /******************* MCU <--> DEC-R2 *******************/
284*53ee8cc1Swenshuai.xi     /* MCU -> DEC-R2 */
285*53ee8cc1Swenshuai.xi         //// MCU -> DEC-R2 : Common ////
286*53ee8cc1Swenshuai.xi         #define MBOX_WORD_MCUCMD_PARAMTYPE      MBOX_M2D_0380   //generate interrut
287*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_MCUCMD_ID_SEL         MBOX_M2D_0382
288*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_MCUCMD_Get_OR_Set     MBOX_M2D_0382+1
289*53ee8cc1Swenshuai.xi         #define MBOX_WORD_MCUCMD_PARAM1         MBOX_M2D_0384
290*53ee8cc1Swenshuai.xi         #define MBOX_WORD_MCUCMD_PARAM2         MBOX_M2D_0386
291*53ee8cc1Swenshuai.xi         #define MBOX_WORD_R2_CTRL               MBOX_M2D_0388
292*53ee8cc1Swenshuai.xi             #define STREAMING_LOW_LATENCY_LIMITER_EN    _BIT_15_
293*53ee8cc1Swenshuai.xi         #define MBOX_WORD_R2_SYSTEM_DBG         MBOX_M2D_038A
294*53ee8cc1Swenshuai.xi             /*
295*53ee8cc1Swenshuai.xi             [ 0] decoder decode frame statue
296*53ee8cc1Swenshuai.xi             [ 1] decoder output pcm status
297*53ee8cc1Swenshuai.xi             [ 3] reset measured max AD no signal counter
298*53ee8cc1Swenshuai.xi             [ 4] omx decode done print
299*53ee8cc1Swenshuai.xi             [ 8] decoder print info
300*53ee8cc1Swenshuai.xi             [ 9] measure decoder mips
301*53ee8cc1Swenshuai.xi             [10] measure miu latency
302*53ee8cc1Swenshuai.xi             [11] enable wfi mode
303*53ee8cc1Swenshuai.xi             [12] disable skip frm when doing AV sync
304*53ee8cc1Swenshuai.xi             [13] disable wait STC when doing AV sync
305*53ee8cc1Swenshuai.xi             [14] disable calculate increase cPTS in timer
306*53ee8cc1Swenshuai.xi             */
307*53ee8cc1Swenshuai.xi 
308*53ee8cc1Swenshuai.xi         #define MBOX_WORD_DBG_DUMP_DDR_ADDR_HI     MBOX_M2D_038C
309*53ee8cc1Swenshuai.xi         #define MBOX_WORD_DBG_MBOX_VALUE_HI        MBOX_M2D_038C
310*53ee8cc1Swenshuai.xi         #define MBOX_WORD_DBG_MBOX_PRINT_SIZE      MBOX_M2D_038C
311*53ee8cc1Swenshuai.xi         #define MBOX_WORD_DBG_DUMP_DDR_ADDR_LO     MBOX_M2D_038E
312*53ee8cc1Swenshuai.xi         #define MBOX_WORD_DBG_MBOX_VALUE_LO        MBOX_M2D_038E
313*53ee8cc1Swenshuai.xi         #define MBOX_WORD_DBG_DUMP_DDR_SIZE     MBOX_M2D_039C
314*53ee8cc1Swenshuai.xi         #define MBOX_WORD_DBG_MBOX_ADDR         MBOX_M2D_039C
315*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_OMX_NPCM_SYNC_DBG     MBOX_M2D_039C+1
316*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_STATUS_SELECT         MBOX_M2D_039E
317*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_STATUS_SPEED          MBOX_M2D_039E+1
318*53ee8cc1Swenshuai.xi 
319*53ee8cc1Swenshuai.xi         //// MCU -> DEC-R2 : R2 decoder ////
320*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_DEC_SPDIF_SEL         MBOX_M2D_0396
321*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_DEC1_SEL              MBOX_M2D_0398
322*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_DEC2_SEL              MBOX_M2D_039A
323*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_DEC1_CMD              MBOX_M2D_0398+1
324*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_DEC2_CMD              MBOX_M2D_039A+1
325*53ee8cc1Swenshuai.xi 
326*53ee8cc1Swenshuai.xi 
327*53ee8cc1Swenshuai.xi     /* DEC-R2 -> MCU */
328*53ee8cc1Swenshuai.xi         //// DEC-R2 -> MCU : Common ////
329*53ee8cc1Swenshuai.xi         #define MBOX_WORD_MCU_INTERRUPT         MBOX_D2M_03A0
330*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_PARAM_TOKEN           MBOX_D2M_03A2+1
331*53ee8cc1Swenshuai.xi         #define MBOX_WORD_INFO_VALUE1           MBOX_D2M_03A4
332*53ee8cc1Swenshuai.xi         #define MBOX_WORD_INFO_VALUE2           MBOX_D2M_03A6
333*53ee8cc1Swenshuai.xi         #define MBOX_WORD_R2_STATUS             MBOX_D2M_03A8
334*53ee8cc1Swenshuai.xi         #define MBOX_WORD_R2_VERSION            MBOX_D2M_03AA
335*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_R2_DBG_ACK_HI         MBOX_D2M_03AC
336*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_R2_DBG_ACK            MBOX_D2M_03AE
337*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_WHILE_1_CNTR          MBOX_D2M_03B2
338*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_TIMER_CNT             MBOX_D2M_03B2+1
339*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_R2_SPDIF              MBOX_D2M_03B4
340*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_LOADCODE_ACK          MBOX_D2M_03B6
341*53ee8cc1Swenshuai.xi         #define MBOX_BYTE_R2_WFI_CNTR           MBOX_D2M_03B8
342*53ee8cc1Swenshuai.xi 
343*53ee8cc1Swenshuai.xi     /* dec R2 -> MCU */
344*53ee8cc1Swenshuai.xi         //// dec R2 -> MCU : Common ////
345*53ee8cc1Swenshuai.xi         #define MBOX_R2_START_ADDRESS_LO        MBOX_R2Reg_82
346*53ee8cc1Swenshuai.xi         #define MBOX_R2_START_ADDRESS_HI        MBOX_R2Reg_84
347*53ee8cc1Swenshuai.xi 
348*53ee8cc1Swenshuai.xi         #if 0
349*53ee8cc1Swenshuai.xi         #define MBOX_WORD_R2_HDMI_STATUS        MBOX_D2M_03B0
350*53ee8cc1Swenshuai.xi         #endif
351*53ee8cc1Swenshuai.xi 
352*53ee8cc1Swenshuai.xi #ifdef __BUILD_FOR_R2__
353*53ee8cc1Swenshuai.xi /* dec R2 <--> snd R2 */
354*53ee8cc1Swenshuai.xi     #define MBPX_D2A_DDENC                      (MBOX_D2A_IO_1)
355*53ee8cc1Swenshuai.xi     #define MBPX_D2A_DTSENC                     (MBOX_D2A_IO_1+1)
356*53ee8cc1Swenshuai.xi     #define MBPX_D2A_MS12                       (MBOX_D2A_IO_2)
357*53ee8cc1Swenshuai.xi         #define DEC1_MS12_PCMR_ENABLE_BIT       0
358*53ee8cc1Swenshuai.xi         #define DEC2_MS12_PCMR_ENABLE_BIT       1
359*53ee8cc1Swenshuai.xi         #define DEC1_MS12_DAP_MCH_BIT           2
360*53ee8cc1Swenshuai.xi         #define DEC2_MS12_DAP_MCH_BIT           3
361*53ee8cc1Swenshuai.xi     #define MBPX_D2A_PCM_BUF_RPTR               (MBOX_D2A_IO_3)
362*53ee8cc1Swenshuai.xi 
363*53ee8cc1Swenshuai.xi     /* SND-DSP -> snd R2 */
364*53ee8cc1Swenshuai.xi         //// R2 decoder ////
365*53ee8cc1Swenshuai.xi         #define MBOX_S2D_DSP_TO_R2_COMMAND          MBOX_S2D_IO_0
366*53ee8cc1Swenshuai.xi             #define S2D_CMD_RESET_PCM1_AVSYNC  0x0001
367*53ee8cc1Swenshuai.xi             #define S2D_CMD_RESET_PCM2_AVSYNC  0x0002
368*53ee8cc1Swenshuai.xi 
369*53ee8cc1Swenshuai.xi         #define MBOX_S2D_DSP_TO_R2_PARAM            MBOX_S2D_IO_1
370*53ee8cc1Swenshuai.xi         #define MBOX_S2D_R2CMD_RECEIVE_CNT          MBOX_S2D_IO_2
371*53ee8cc1Swenshuai.xi 
372*53ee8cc1Swenshuai.xi         #define MBOX_S2D_PCM1_PLAYCNT               MBOX_S2D_IO_3
373*53ee8cc1Swenshuai.xi         #define MBOX_S2D_PCM1_FIFOCNT               MBOX_S2D_IO_4
374*53ee8cc1Swenshuai.xi         #define MBOX_S2D_PCM1_DRAM_RDPTR            MBOX_S2D_IO_5
375*53ee8cc1Swenshuai.xi 
376*53ee8cc1Swenshuai.xi         #define MBOX_SNDDSP_2_DECR2_ENC_ON_CHIP           MBOX_S2D_IO_9
377*53ee8cc1Swenshuai.xi 
378*53ee8cc1Swenshuai.xi         #define MBOX_SNDR2_2_DECR2_ENC_ON_CHIP            MBOX_A2D_IO_0
379*53ee8cc1Swenshuai.xi 
380*53ee8cc1Swenshuai.xi         #define MBOX_S2D_PCM2_PLAYCNT               MBOX_S2D_IO_A
381*53ee8cc1Swenshuai.xi         #define MBOX_S2D_PCM2_FIFOCNT               MBOX_S2D_IO_B
382*53ee8cc1Swenshuai.xi         #define MBOX_S2D_PCM2_DRAM_RDPTR            MBOX_S2D_IO_C
383*53ee8cc1Swenshuai.xi 
384*53ee8cc1Swenshuai.xi       //#define MBOX_S2D_REG_DECODER_SEL            MBOX_S2D_IO_A
385*53ee8cc1Swenshuai.xi       //#define MBOX_S2D_REG_HDMI_IN_FREQ           MBOX_S2D_IO_B
386*53ee8cc1Swenshuai.xi 
387*53ee8cc1Swenshuai.xi         #define MBOX_S2D_DSPWORD_SPDIF_RDPTR        MBOX_S2D_IO_D
388*53ee8cc1Swenshuai.xi         #define MBOX_S2D_DSPWORD_HDMI_RDPTR         MBOX_S2D_IO_6
389*53ee8cc1Swenshuai.xi 
390*53ee8cc1Swenshuai.xi         #define MBOX_S2D_DSPWORD_IP_AUTH            MBOX_S2D_IO_E
391*53ee8cc1Swenshuai.xi         #define MBOX_S2D_DSPWORD_BOUND_OPTION       MBOX_S2D_IO_F
392*53ee8cc1Swenshuai.xi 
393*53ee8cc1Swenshuai.xi     /* R2 -> SND DSP */
394*53ee8cc1Swenshuai.xi         #define MBOX_D2S_PCMISR_CTRL            MBOX_D2S_IO_1
395*53ee8cc1Swenshuai.xi             #define MBOX_R2_PCM1ISR_PLAY_START_BIT          _BIT_0_         //--> �o�U�� playSmpFlag / stop / pause �M�w
396*53ee8cc1Swenshuai.xi             #define MBOX_R2_PCM1ISR_PLAY_MUTE_BIT           _BIT_1_           //--> Mute
397*53ee8cc1Swenshuai.xi             #define MBOX_R2_PCM1ISR_USING_ASINK_ISR_BIT     _BIT_2_
398*53ee8cc1Swenshuai.xi             #define MBOX_R2_PCM2ISR_PLAY_START_BIT          _BIT_8_
399*53ee8cc1Swenshuai.xi             #define MBOX_R2_PCM2ISR_PLAY_MUTE_BIT           _BIT_9_
400*53ee8cc1Swenshuai.xi             #define MBOX_R2_PCM2ISR_USING_ASINK_ISR_BIT     _BIT_10_
401*53ee8cc1Swenshuai.xi 
402*53ee8cc1Swenshuai.xi         #define MBOX_D2S_PCM1_DRAM_WRPTR        MBOX_D2S_IO_2
403*53ee8cc1Swenshuai.xi         #define MBOX_D2S_PCM1_SYNTH_H           MBOX_D2S_IO_3
404*53ee8cc1Swenshuai.xi         #define MBOX_D2S_PCM1_SYNTH_L           MBOX_D2S_IO_4
405*53ee8cc1Swenshuai.xi 
406*53ee8cc1Swenshuai.xi         #define MBOX_D2S_PCM2_DRAM_WRPTR        MBOX_D2S_IO_5
407*53ee8cc1Swenshuai.xi         #define MBOX_D2S_PCM2_SYNTH_H           MBOX_D2S_IO_6
408*53ee8cc1Swenshuai.xi         #define MBOX_D2S_PCM2_SYNTH_L           MBOX_D2S_IO_7
409*53ee8cc1Swenshuai.xi 
410*53ee8cc1Swenshuai.xi         #define MBOX_D2S_R2_TO_DSP_COMMAND      MBOX_D2S_IO_8
411*53ee8cc1Swenshuai.xi             #define D2S_CMD_UPD_PCM1_MUTECNT        _BIT_0_
412*53ee8cc1Swenshuai.xi             #define D2S_CMD_CLR_PCM1_PLAYCNT        _BIT_1_
413*53ee8cc1Swenshuai.xi             #define D2S_CMD_UPD_PCM1_PLAYCNT        _BIT_2_
414*53ee8cc1Swenshuai.xi             #define D2S_CMD_FLUSH_PCM1_SMPS         _BIT_3_
415*53ee8cc1Swenshuai.xi             #define D2S_CMD_RESET_PCM1              _BIT_4_
416*53ee8cc1Swenshuai.xi             #define D2S_CMD_UPD_PCM2_MUTECNT        _BIT_5_
417*53ee8cc1Swenshuai.xi             #define D2S_CMD_CLR_PCM2_PLAYCNT        _BIT_6_
418*53ee8cc1Swenshuai.xi             #define D2S_CMD_UPD_PCM2_PLAYCNT        _BIT_7_
419*53ee8cc1Swenshuai.xi             #define D2S_CMD_FLUSH_PCM2_SMPS         _BIT_8_
420*53ee8cc1Swenshuai.xi             #define D2S_CMD_RESET_PCM2              _BIT_9_
421*53ee8cc1Swenshuai.xi 
422*53ee8cc1Swenshuai.xi         #define MBOX_D2S_R2_TO_DSP_PARAM        MBOX_D2S_IO_9
423*53ee8cc1Swenshuai.xi         #define MBOX_D2S_DSPWORD_SPDIF_WRPTR    MBOX_D2S_IO_A
424*53ee8cc1Swenshuai.xi         #define MBOX_D2S_DSPWORD_HDMI_WRPTR     MBOX_D2S_IO_B
425*53ee8cc1Swenshuai.xi 
426*53ee8cc1Swenshuai.xi         #define MBOX_D2S_DSPWORD_SPDIF_CTRL     MBOX_D2S_IO_C
427*53ee8cc1Swenshuai.xi         #define MBOX_D2S_DSPWORD_HDMI_CTRL      MBOX_D2S_IO_C
428*53ee8cc1Swenshuai.xi             #define MBOX_HDMI_CTRL_START_BIT      _BIT_23_
429*53ee8cc1Swenshuai.xi             #define MBOX_HDMI_HBR_MODE_BIT        _BIT_20_
430*53ee8cc1Swenshuai.xi             #define MBOX_HDMI_CTRL_EN_BIT         _BIT_21_
431*53ee8cc1Swenshuai.xi             #define MBOX_SPDIF_CTRL_EN_BIT           _BIT_17_
432*53ee8cc1Swenshuai.xi             #define MBOX_SPDIF_CTRL_START_BIT        _BIT_19_
433*53ee8cc1Swenshuai.xi             #define MBOX_HDMI_PCM_NONPCM            _BIT_7_
434*53ee8cc1Swenshuai.xi             #define MBOX_SPDIF_PCM_NONPCM           _BIT_6_
435*53ee8cc1Swenshuai.xi             #define MBOX_HDMI_NONPCM_OWNER         _BIT_4_
436*53ee8cc1Swenshuai.xi             #define MBOX_SPDIF_NONPCM_OWNER         _BIT_2_
437*53ee8cc1Swenshuai.xi /*
438*53ee8cc1Swenshuai.xi                 [23]    HDMI nonPcm Start
439*53ee8cc1Swenshuai.xi                 [22]
440*53ee8cc1Swenshuai.xi                 [21]    HDMI nonPcm PlayEnable
441*53ee8cc1Swenshuai.xi                 [20]    HDMI HBR mode
442*53ee8cc1Swenshuai.xi                 [19]    SPDIF nonPcm Start
443*53ee8cc1Swenshuai.xi                 [18]    inform DDEncode to attenuate 4.75dB
444*53ee8cc1Swenshuai.xi                 [17]    SPDIF nonPcm PlayEnable
445*53ee8cc1Swenshuai.xi                 [16]
446*53ee8cc1Swenshuai.xi                 [15:12] SPDIF nonPcm sampleRate index
447*53ee8cc1Swenshuai.xi                     // 0: 96K, 1: 88K, 2: 64K
448*53ee8cc1Swenshuai.xi                     // 3: 48K, 4: 44K, 5: 32K
449*53ee8cc1Swenshuai.xi                     // 6: 24K, 7: 22K, 8: 16K
450*53ee8cc1Swenshuai.xi                     // 9: 12K, a: 11K, b:  8K
451*53ee8cc1Swenshuai.xi 
452*53ee8cc1Swenshuai.xi                 [11:8]  HDMI  nonPcm sampleRate index
453*53ee8cc1Swenshuai.xi                     // 0: 96K, 1: 88K, 2: 64K
454*53ee8cc1Swenshuai.xi                     // 3: 48K, 4: 44K, 5: 32K
455*53ee8cc1Swenshuai.xi                     // 6: 24K, 7: 22K, 8: 16K
456*53ee8cc1Swenshuai.xi                     // 9: 12K, a: 11K, b:  8K
457*53ee8cc1Swenshuai.xi                     // c:192K, d: 176K e: 128K
458*53ee8cc1Swenshuai.xi 
459*53ee8cc1Swenshuai.xi                 [7]     HDMI is Pcm or nonPcm
460*53ee8cc1Swenshuai.xi                 [6]     SPDIF is Pcm or nonPcm
461*53ee8cc1Swenshuai.xi                 [5:4]   hdmi  nonPcm owner
462*53ee8cc1Swenshuai.xi                 [3:2]   spdif nonPcm owner
463*53ee8cc1Swenshuai.xi                 [0:1]   spdif/hdmi PCM attenuator index
464*53ee8cc1Swenshuai.xi */
465*53ee8cc1Swenshuai.xi 
466*53ee8cc1Swenshuai.xi 
467*53ee8cc1Swenshuai.xi         #define MBOX_D2S_R2_DOLBY_META_DATA     MBOX_D2S_IO_D
468*53ee8cc1Swenshuai.xi 
469*53ee8cc1Swenshuai.xi         #define MBOX_D2S_R2_TO_DSP_ENCODE        MBOX_D2S_IO_E
470*53ee8cc1Swenshuai.xi             #define D2S_CMD_DDENC_ENABLE            _BIT_6_
471*53ee8cc1Swenshuai.xi             #define D2S_CMD_DTSENC_ENABLE           _BIT_5_
472*53ee8cc1Swenshuai.xi             #define D2S_LFE_MODE                    _BIT_4_
473*53ee8cc1Swenshuai.xi             #define D2S_AC_MODE                     _BIT_0_
474*53ee8cc1Swenshuai.xi 
475*53ee8cc1Swenshuai.xi         //#define MBOX_D2S_R2_TO_DSP_MISC        MBOX_D2S_IO_F
476*53ee8cc1Swenshuai.xi         //    #define D2S_CMD_SOUND_MIXER_DISABLE   _BIT_0_
477*53ee8cc1Swenshuai.xi 
478*53ee8cc1Swenshuai.xi /***********************************************************
479*53ee8cc1Swenshuai.xi *   SE R2 mailbox
480*53ee8cc1Swenshuai.xi ***********************************************************/
481*53ee8cc1Swenshuai.xi         #define SNDR2_MBOX_BYTE_R2_DBG_ACK            MBOX_A2M_2EAE
482*53ee8cc1Swenshuai.xi         #define SNDR2_MBOX_BYTE_STATUS_SELECT         MBOX_M2A_2E9E
483*53ee8cc1Swenshuai.xi         #define MBOX_S2A_DSPWORD_PCMIN_WRPTR    MBOX_S2A_IO_1
484*53ee8cc1Swenshuai.xi         #define MBOX_A2S_DSPWORD_PCMOUT_WRPTR   MBOX_A2S_IO_1
485*53ee8cc1Swenshuai.xi 
486*53ee8cc1Swenshuai.xi         #define MBOX_A2S_DSPWORD_HDMI_WRPTR   MBOX_A2S_IO_4
487*53ee8cc1Swenshuai.xi         #define MBOX_A2S_DSPWORD_SPDIF_WRPTR    MBOX_A2S_IO_3
488*53ee8cc1Swenshuai.xi 
489*53ee8cc1Swenshuai.xi         #define MBOX_S2A_DSPWORD_SPDIF_RDPTR    MBOX_S2A_IO_3
490*53ee8cc1Swenshuai.xi         #define MBOX_S2A_DSPWORD_HDMI_RDPTR     MBOX_S2A_IO_4
491*53ee8cc1Swenshuai.xi         #define MBOX_S2A_DSPWORD_IP_AUTH         MBOX_S2A_IO_E
492*53ee8cc1Swenshuai.xi         #define MBOX_S2A_DSPWORD_BOUND_OPTION    MBOX_S2A_IO_F
493*53ee8cc1Swenshuai.xi /***********************************************************
494*53ee8cc1Swenshuai.xi *   DEBUG
495*53ee8cc1Swenshuai.xi ***********************************************************/
496*53ee8cc1Swenshuai.xi     #define dbg_print(x)                                x
497*53ee8cc1Swenshuai.xi //  #define MMTS_REPORT_SCR_INSTEAD
498*53ee8cc1Swenshuai.xi 
499*53ee8cc1Swenshuai.xi /***********************************************************
500*53ee8cc1Swenshuai.xi *   Hardware patch
501*53ee8cc1Swenshuai.xi ***********************************************************/
502*53ee8cc1Swenshuai.xi     #define PATCH_0001      0           //Pacth for R2 MAU problem (T8 U01)
503*53ee8cc1Swenshuai.xi 
504*53ee8cc1Swenshuai.xi #endif  //__BUILD_FOR_R2__
505*53ee8cc1Swenshuai.xi #endif  //__PLATFORM_PROJ_INCLUDE_FILE__