/*   Do *not* directly modify this file.  It was    */
/*   generated by the Configuration Tool; any  */
/*   changes risk being overwritten.                */

/* INPUT mmac.cdb */

/*  Include Header File  */
#include "mmaccfg.h"

#include "global_var.h"

extern far unsigned int ad_buffer[];

extern far unsigned int da_buffer[];

extern far Uint32 com_rec[];

extern far Uint32 com_tra[];

/*  Config Structures */
EDMA_Config edmaCfg0_CH1 = {
    0x21200003,        /*  Option  */
    (Uint32) da_buffer,        /*  Source Address - Extern Decl.Obj  */
    0x00000000,        /*  Transfer Counter - Numeric  */
    0xA0000030,        /*  Destination Address - Numeric   */
    0x00000000,        /*  Index register - Numeric  */
    0x00000000         /*  Element Count Reload and Link Address  */
};

EDMA_Config edmaCfg1_CH4 = {
    0x25360002,        /*  Option  */
    0xA0000010,        /*  Source Address - Numeric   */
    0x00000000,        /*  Transfer Counter - Numeric  */
    (Uint32) ad_buffer,        /*  Destination Address - Extern Decl. Obj  */
    0x00000000,        /*  Index register - Numeric  */
    0x00000000         /*  Element Count Reload and Link Address  */
};

EDMA_Config edma_McBsp1T = {
    0x21000002,        /*  Option  */
    (Uint32) com_tra,        /*  Source Address - Extern Decl.Obj  */
    0x00000000,        /*  Transfer Counter - Numeric  */
    0x00000000,        /*  Destination Address - Numeric   */
    0x00000000,        /*  Index register - Numeric  */
    0x00000000         /*  Element Count Reload and Link Address  */
};

EDMA_Config edma_McBsp1R = {
    0x20200002,        /*  Option  */
    0x00000000,        /*  Source Address - Numeric   */
    0x00000000,        /*  Transfer Counter - Numeric  */
    (Uint32) com_rec,        /*  Destination Address - Extern Decl. Obj  */
    0x00000000,        /*  Index register - Numeric  */
    0x00000000         /*  Element Count Reload and Link Address  */
};

MCBSP_Config McBSP_CFG_1_A = {
    0x02000020,        /*  Serial Port Control Reg. (SPCR)   */
    0x00010FA0,        /*  Receiver Control Reg. (RCR)   */
    0x00010FA0,        /*  Transmitter Control Reg. (XCR)   */
    0x32401F0E,        /*  Sample-Rate Generator Reg. (SRGR)   */
    0x00000000,        /*  Multichannel Control Reg. (MCR)   */
    0x00000000,        /*  Receiver Channel Enable(RCER)   */
    0x00000000,        /*  Transmitter Channel Enable(XCER)   */
    0x00000A00         /*  Pin Control Reg. (PCR)   */
};

TIMER_Config timerCfg0 = {
    0x00000293,        /*  Control Register (CTL)   */
    0x000002EE,        /*  Period Register (PRD)   */
    0x00000000         /*  Counter Register (CNT)   */
};

/*  Handles  */
EDMA_Handle hEdmaCha1;
EDMA_Handle hEdmaCha4;
EDMA_Handle hEdmaCha14;
EDMA_Handle hEdmaCha15;
EDMA_Handle hTbl0_A2D_CH4;
EDMA_Handle hTbl1_D2A_CH1;
EDMA_Handle hMcBsp1T;
EDMA_Handle hMcBsp1R;
MCBSP_Handle hMcbsp1;
TIMER_Handle hTimer0;

/*
 *  ======== CSL_cfgInit() ========  
 */
void CSL_cfgInit()
{
    hEdmaCha1 = EDMA_open(EDMA_CHA_TINT0, EDMA_OPEN_RESET);
    hEdmaCha4 = EDMA_open(EDMA_CHA_EXTINT4, EDMA_OPEN_RESET);
    hEdmaCha14 = EDMA_open(EDMA_CHA_XEVT1, EDMA_OPEN_RESET);
    hEdmaCha15 = EDMA_open(EDMA_CHA_REVT1, EDMA_OPEN_RESET);
    hTbl0_A2D_CH4 = EDMA_allocTable(-1);
    hTbl1_D2A_CH1 = EDMA_allocTable(-1);
    hMcBsp1T = EDMA_allocTable(-1);
    hMcBsp1R = EDMA_allocTable(-1);
    hMcbsp1 = MCBSP_open(MCBSP_DEV1, MCBSP_OPEN_RESET);
    hTimer0 = TIMER_open(TIMER_DEV0, TIMER_OPEN_RESET);
    edmaCfg0_CH1.rld = (edmaCfg0_CH1.rld & 0xFFFF0000) | (EDMA_RLD_RMK(0,hTbl1_D2A_CH1));
    edmaCfg0_CH1.cnt = EDMA_CNT_RMK(0,DA_BLOCK_SZ);
    edmaCfg1_CH4.rld = (edmaCfg1_CH4.rld & 0xFFFF0000) | (EDMA_RLD_RMK(0,hTbl0_A2D_CH4));
    edmaCfg1_CH4.cnt = EDMA_CNT_RMK(AD_FAME_NO,AD_BLOCK_SZ);
    edma_McBsp1T.rld = (edma_McBsp1T.rld & 0xFFFF0000) | (EDMA_RLD_RMK(0,hMcBsp1T));
    edma_McBsp1T.cnt = EDMA_CNT_RMK(0,SCT_BLOCK_SZ);
    edma_McBsp1T.dst = EDMA_DST_RMK(hMcbsp1->dxrAddr);
    edma_McBsp1R.rld = (edma_McBsp1R.rld & 0xFFFF0000) | (EDMA_RLD_RMK(0,hMcBsp1R));
    edma_McBsp1R.cnt = EDMA_CNT_RMK(0,SCR_BLOCK_SZ);
    edma_McBsp1R.src = EDMA_SRC_RMK(hMcbsp1->drrAddr);
    EDMA_config(hEdmaCha1, &edmaCfg0_CH1);
    EDMA_enableChannel(hEdmaCha1);
    EDMA_config(hEdmaCha4, &edmaCfg1_CH4);
    EDMA_enableChannel(hEdmaCha4);
    EDMA_config(hEdmaCha14, &edma_McBsp1T);
    EDMA_enableChannel(hEdmaCha14);
    EDMA_config(hEdmaCha15, &edma_McBsp1R);
    EDMA_enableChannel(hEdmaCha15);
    EDMA_config(hTbl0_A2D_CH4, &edmaCfg1_CH4);
    EDMA_config(hTbl1_D2A_CH1, &edmaCfg0_CH1);
    EDMA_config(hMcBsp1T, &edma_McBsp1T);
    EDMA_config(hMcBsp1R, &edma_McBsp1R);
    MCBSP_config(hMcbsp1, &McBSP_CFG_1_A);
    TIMER_config(hTimer0, &timerCfg0);
}
