/*   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 Uint32 com_rec[];

extern far Uint32 com_tra[];

/*  Config Structures */
EDMA_Config edmaCfg_TRA = {
    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 edmaCfg_REC = {
    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_COM_1 = {
    0x022000A0,        /*  Serial Port Control Reg. (SPCR)   */
    0x00010FA0,        /*  Receiver Control Reg. (RCR)   */
    0x00010FA0,        /*  Transmitter Control Reg. (XCR)   */
    0x32251F19,        /*  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 timerCfg1 = {
    0x000002C0,        /*  Control Register (CTL)   */
    0xFFFFFFFF,        /*  Period Register (PRD)   */
    0x00000000         /*  Counter Register (CNT)   */
};

/*  Handles  */
EDMA_Handle hEdmaCha14;
EDMA_Handle hEdmaCha15;
EDMA_Handle hEdmaTbl_REC;
EDMA_Handle hEdmaTbl_TRA;
MCBSP_Handle hMcbsp1;
TIMER_Handle hTimer1;





#ifdef __cplusplus
#pragma CODE_SECTION(".text:CSL_cfgInit")
#else
#pragma CODE_SECTION(CSL_cfgInit,".text:CSL_cfgInit")
#endif


#ifdef __cplusplus
#pragma FUNC_EXT_CALLED()
#else
#pragma FUNC_EXT_CALLED(CSL_cfgInit)
#endif



/*
 *  ======== CSL_cfgInit() ========  
 */
void CSL_cfgInit()
{
    hEdmaCha14 = EDMA_open(EDMA_CHA_XEVT1, EDMA_OPEN_RESET);
    hEdmaCha15 = EDMA_open(EDMA_CHA_REVT1, EDMA_OPEN_RESET);
    hEdmaTbl_REC = EDMA_allocTable(-1);
    hEdmaTbl_TRA = EDMA_allocTable(-1);
    hMcbsp1 = MCBSP_open(MCBSP_DEV1, MCBSP_OPEN_RESET);
    hTimer1 = TIMER_open(TIMER_DEV1, TIMER_OPEN_RESET);
    edmaCfg_TRA.rld = (edmaCfg_TRA.rld & 0xFFFF0000) | (EDMA_RLD_RMK(0,hEdmaTbl_TRA));
    edmaCfg_TRA.cnt = EDMA_CNT_RMK(0,TRA_BUF_SZ);
    edmaCfg_TRA.dst = EDMA_DST_RMK(hMcbsp1->dxrAddr);
    edmaCfg_REC.rld = (edmaCfg_REC.rld & 0xFFFF0000) | (EDMA_RLD_RMK(0,hEdmaTbl_REC));
    edmaCfg_REC.cnt = EDMA_CNT_RMK(0,REC_BUF_SZ);
    edmaCfg_REC.src = EDMA_SRC_RMK(hMcbsp1->drrAddr);
    EDMA_config(hEdmaCha14, &edmaCfg_TRA);
    EDMA_enableChannel(hEdmaCha14);
    EDMA_config(hEdmaCha15, &edmaCfg_REC);
    EDMA_enableChannel(hEdmaCha15);
    EDMA_config(hEdmaTbl_REC, &edmaCfg_REC);
    EDMA_config(hEdmaTbl_TRA, &edmaCfg_TRA);
    MCBSP_config(hMcbsp1, &mcbsp_COM_1);
    TIMER_config(hTimer1, &timerCfg1);
}
