Ejemplo n.º 1
0
void MstarSysInit(void)
{
    uint u32Tmp;
    extern MS_BOOL MDrv_MIU_SetIOMapBase(void);
    extern MS_BOOL MDrv_SEM_Init(void);

    MsOS_Init();
    MDrv_MMIO_Init();
    MDrv_MMIO_GetBASE((MS_U32 *)&MS_RIU_MAP, (MS_U32 *)&u32Tmp, MS_MODULE_PM);
    MDrv_SEM_Init();
    MDrv_MIU_SetIOMapBase();
    MsOS_CPU_EnableInterrupt();
#if (ENABLE_MODULE_ENV_IN_SERIAL==1)
    puts ("SPI:  ");
    {
        extern int spi_init (void);
        spi_init();		/* go init the SPI */
    }
    #if (CONFIG_MSTAR_BD_MST028B_10AFX_EAGLE||CONFIG_MSTAR_BD_MST038B_10AHT_EAGLE)
        MDrv_SERFLASH_SetWPInfo(TRUE);
    #else
    ms_Flash_SetHWWP_CB pCB = msFlash_ActiveFlash_Set_HW_WP;
    MDrv_SERFLASH_SetFlashWPCallBack(pCB);
    #endif
#else
    #if(ENABLE_BOOTING_FROM_EXT_EMMC_WITH_CPU==0)
        MDrv_SERFLASH_Init();
    #endif
#endif
    mdrv_gpio_init();
    run_command("init_raw_io" , 0);
    run_command("config_raw_io" , 0);

}
Ejemplo n.º 2
0
void MstarSysInit(void)
{
    uint u32Tmp;
    /*set up Mstar IRQ handler*/
    extern void mhal_fiq_merge(void);
    extern void MAsm_CPU_TimerStart(void);
    extern void dcache_init(void);
    extern void l2_cache_init(void);
    mhal_fiq_merge();
    MsOS_Init();
#ifdef CONFIG_SYS_DCACHE
    dcache_init();
#endif

#ifndef CONFIG_L2_OFF
    l2_cache_init();
#endif
#if defined(CONFIG_TIMER_TEST)
    MDrv_Timer_ISR_Register();
#endif
    MsOS_CPU_EnableInterrupt();
    MAsm_CPU_TimerStart();


    MDrv_MMIO_Init();
    MDrv_MMIO_GetBASE((MS_U32 *)&MS_RIU_MAP, (MS_U32 *)&u32Tmp, MS_MODULE_PM);
#if (ENABLE_MODULE_ENV_IN_SERIAL==1)
    puts ("SPI:  ");
    {
        extern int spi_init (void);
        spi_init();		/* go init the SPI */
    }

    #if (CONFIG_MSTAR_BD_MST028B_10AFX_EAGLE||CONFIG_MSTAR_BD_MST038B_10AHT_EAGLE)
    MDrv_SERFLASH_SetWPInfo(TRUE);
    #else
    ms_Flash_SetHWWP_CB pCB = msFlash_ActiveFlash_Set_HW_WP;
    MDrv_SERFLASH_SetFlashWPCallBack(pCB);
    FlashSetHWWPCB = FlashSetHWWPCB;
    McuChipSelectCB = McuChipSelectCB;
    #endif
#else
    #if(ENABLE_BOOTING_FROM_EXT_EMMC_WITH_CPU==0)
        MDrv_SERFLASH_Init();
    #endif
#endif

    mdrv_gpio_init();
    MDrv_BDMA_Init(MIU_INTERVAL);

    run_command("init_raw_io" , 0);
    run_command("config_raw_io" , 0);
}
Ejemplo n.º 3
0
void iic_init()
{
	//global init
	MDrv_SYS_GlobalInit();
	
	//gpio init
	mdrv_gpio_init();
	
	//software i2c init
	SWI2C_BusCfg swBusCfg = {SCL_GPIO_PORT,
				SDA_GPIO_PORT,
				75};			
	MApi_SWI2C_Init(&swBusCfg, 1);
	
	mdrv_gpio_set_input(KEY_FLAG_SAR_PORT);
}
Ejemplo n.º 4
0
int nmi_tuner_os_chip_enable(void)
{
	
#if 0
	//hardware reset		sar3 high 
	extern void Enable_SAR_GPIO(MS_U8 u8SarNo,MS_BOOL bEnable);
	extern void mdrv_gpio_set_high(int gpio);
	extern void mdrv_gpio_init(void);
	
	mdrv_gpio_init();
	Enable_SAR_GPIO(3,SAR3_GPIO_ENABLE);
	mdrv_gpio_set_high(20);
	MsOS_DelayTask(100);
	
#endif

	return TRUE;
}
Ejemplo n.º 5
0
void drvTAS5707_SW_Init(void)
{
#if (MS_BOARD_TYPE_SEL == BD_MST119A_D01A_S_HISENSE)
    U8 * Pstr = NULL;
    U8 DataLength = 0;
    U8 g_ucTas5707RegAddr = 0;
    U8 AmpInitTbl[] =
    {
        //DataLength        Address     DataN       DataN+1...
        // I2C Configuration file for TAS5700x
        1, 0x1B, 0x00,
        // Biquads
        4, 0x50, 0x0F, 0x70, 0x80, 0x00,
        4, 0x20, 0x00, 0x89, 0x77, 0x72,
        4, 0x25, 0x01, 0x13, 0x20, 0x45,

 		20, 0x29, 0x00, 0x7E, 0x82, 0x70, 0x0F, 0x81, 0x7D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x04, 0xE0, 0x00, 0x00, 0x00, 0x00,
		20, 0x2A, 0x00, 0x7E, 0x39, 0xA9, 0x0F, 0x05, 0x88, 0xEA, 0x00, 0x7C, 0x95, 0x6B, 0x00, 0xFA, 0x77, 0x16, 0x0F, 0x85, 0x30, 0xEB,
 		20, 0x2B, 0x00, 0x92, 0x0D, 0x64, 0x0F, 0x51, 0xAE, 0x7F, 0x00, 0x49, 0xAB, 0xD2, 0x00, 0xAE, 0x51, 0x81, 0x0F, 0xA4, 0x46, 0xC9,
 		20, 0x2C, 0x00, 0xBA, 0x7D, 0x1C, 0x0F, 0xB2, 0xBC, 0x64, 0x00, 0x0F, 0x69, 0x81, 0x00, 0x4D, 0x43, 0x9C, 0x0F, 0xB6, 0x19, 0x63,
        20, 0x2D, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        20, 0x2E, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        20, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        20, 0x30, 0x00, 0x7E, 0x82, 0x70, 0x0F, 0x81, 0x7D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x04, 0xE0, 0x00, 0x00, 0x00, 0x00,
		20, 0x31, 0x00, 0x7E, 0x39, 0xA9, 0x0F, 0x05, 0x88, 0xEA, 0x00, 0x7C, 0x95, 0x6B, 0x00, 0xFA, 0x77, 0x16, 0x0F, 0x85, 0x30, 0xEB,
		20, 0x32, 0x00, 0x92, 0x0D, 0x64, 0x0F, 0x51, 0xAE, 0x7F, 0x00, 0x49, 0xAB, 0xD2, 0x00, 0xAE, 0x51, 0x81, 0x0F, 0xA4, 0x46, 0xC9,
		20, 0x33, 0x00, 0xBA, 0x7D, 0x1C, 0x0F, 0xB2, 0xBC, 0x64, 0x00, 0x0F, 0x69, 0x81, 0x00, 0x4D, 0x43, 0x9C, 0x0F, 0xB6, 0x19, 0x63,

        20, 0x34, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        20, 0x35, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        20, 0x36, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        // DRCs
        8, 0x3A, 0x00, 0x00, 0x06, 0xD3, 0x00, 0x7F, 0xF9, 0x2B,
        8, 0x3B, 0x00, 0x02, 0xA3, 0x9A, 0x00, 0x7D, 0x2F, 0xD2,
        8, 0x3C, 0x00, 0x00, 0x06, 0xd3, 0x00, 0x7f, 0xf9, 0x2B,
        4, 0x40, 0xFD, 0x97, 0x73, 0x3D,
		4, 0x41, 0x03, 0x81, 0x47, 0xAF,
		4, 0x42, 0x00, 0x08, 0x42, 0x10,
		4, 0x46, 0x00, 0x00, 0x00, 0x01,
        1, 0x07, 0x10,
        1, 0x05, 0x00,
		1, 0x08, 0x30,	//Channel 1 Volume
		1, 0x09, 0x30,	//Channel 2 Volume
		1, 0x06, 0x00,	//Soft Mute Register (mute off)
		1, 0x03, 0xA0,	//System Control Register 1(opt.)
		1, 0x04, 0x05,	//Serial Data Interface Register
		1, 0x0E, 0x91,	//Micro Register(opt.)
		1, 0x10, 0x02,	//Modulation Limit(opt.)
		1, 0x1A, 0x0A,	//Split Capacitor Charge Period(opt.)
		1, 0x1C, 0x02,	//Back-end Error Register(opt.)
		1, 0x11, 0xB8,	//Inter-Channel Delay Channel 1
		1, 0x12, 0x60,	//Inter-Channel Delay Channel 2
		1, 0x13, 0xA0,	//Inter-Channel Delay Channel 3
		1, 0x14, 0x48,	//Inter-Channel Delay Channel 4
        0x00,
    };


    printf("********Amplifier_Init\n");
    //===========================================
    mdrv_gpio_init();

    mdrv_gpio_set_low(BALL_W20);
    udelay(1000);

    mdrv_gpio_set_low(BALL_Y20);
    udelay(1000);

    mdrv_gpio_set_high(BALL_W20);
    udelay(20*1000);

    Pstr = AmpInitTbl;
    do
    {
        DataLength = *Pstr;
        if (DataLength > 20)
        {
            printf("5707 set command error!!\n");
            break;
        }
        g_ucTas5707RegAddr = *(++Pstr);
        Pstr++;
        if (MApi_SWI2C_WriteBytes(((U16)((E_I2C_BUS_SYS << 8) | 0x36)), 1,&g_ucTas5707RegAddr, DataLength, Pstr) == FALSE)
            printf("5707write fail = %d\n", g_ucTas5707RegAddr);
        if (g_ucTas5707RegAddr == 0x1B)
        {
            udelay(50*1000);
        }
        else// if (i<=5)
        {
            udelay(1*1000);
        }
        Pstr = Pstr + DataLength;
    } while (*Pstr != 0);
#elif (ENABLE_MSTAR_TITANIA_BD_MSTCUS23_6A801_A3)
{
    U8 * Pstr = NULL;
    U8 DataLength = 0;
    U8 g_ucTas5707RegAddr = 0;

    U8 AmpInitTbl[] =
    {
        //DataLength        Address     DataN       DataN+1...
        // I2C Configuration file for TAS5700x
        //i2c writes
        0x01, 0x1B, 0x00,//Os`cillator Trim(place a 50ms delay after writing this register)

        //(Below)      DRC energy time(100ms)
        0x08, 0x3A, 0x00, 0x00, 0x06, 0xD3, 0x00, 0x7F, 0xF9, 0x2B,

        //(Below)      DRC attack time(1ms)
        0x08, 0x3B, 0x00, 0x02, 0xA3, 0x9A, 0x00, 0x7D, 0x2F, 0xD2,

        //(Below)      DRC decay time(100ms)
        0x08, 0x3C, 0x00, 0x00, 0x06, 0xD3, 0x00, 0x7F, 0xF9, 0x2B,


        0x04, 0x40, 0xFD, 0xAC, 0xB5, 0xE3,//0xFD, 0x9F, 0xF4, 0x4C,

        //(Below)      DRC compression ratio(100)
        0x04, 0x41, 0x03, 0x81, 0x47, 0xAF,

        //(Below)      DRC offset(0)
        0x04, 0x42, 0x00, 0x08, 0x42, 0x10,

        //(Below)      DRC control(DRC enable)
        0x04, 0x46, 0x00, 0x00, 0x00, 0x01,

        //(Below)      Bank switch control (no automatic bank switching)
        0x04, 0x50, 0x0F, 0x70, 0x80, 0x00,


        0x04, 0x20, 0x00, 0x98, 0x77, 0x72,    //
        //0x04, 0x20, 0x00, 0x89, 0x77, 0x72,  //change vol balance lmy 110714
        //(Below)       PWM Output MUX Register (Note: Writes to this register affect Inter-Channel Delay,R:A+,B-,L:C+,D-)
        0x04, 0x25, 0x01, 0x02, 0x13, 0x45,

        0x01, 0x07, 0x15,//0x16, //Master Volume Register (0xFF = Mute,16dB)
        0x01, 0x08, 0x30, //Channel 1 Volume
        0x01, 0x09, 0x30, //Channel 2 Volume
        0x01, 0x06, 0x00, //Soft Mute Register (mute off)
        0x01, 0x03, 0xA0, //System Control Register 1(opt.)
        0x01, 0x04, 0x05, //Serial Data Interface Register
        0x01, 0x05, 0x00, //System Control Register 2(exit hard mute)
        0x01, 0x0E, 0x91, //Micro Register(opt.)
        0x01, 0x10, 0x02, //Modulation Limit(opt.)
        0x01, 0x1A, 0x0A, //Split Capacitor Charge Period(opt.)
        0x01, 0x1C, 0x02, //Back-end Error Register(opt.)
        0x01, 0x11, 0xB8, //Inter-Channel Delay Channel 1
        0x01, 0x12, 0x60, //Inter-Channel Delay Channel 2
        0x01, 0x13, 0xA0, //Inter-Channel Delay Channel 3
        0x01, 0x14, 0x48, //Inter-Channel Delay Channel 4
        0x00
    };


     U8 Amp5707A_InitTbl[] =
     {
     //i2c writes
     0x01, 0x1B, 0x00,//Os`cillator Trim(place a 50ms delay after writing this register)

     //(Below)      DRC energy time(100ms)
     0x08, 0x3A, 0x00, 0x00, 0x06, 0xD3, 0x00, 0x7F, 0xF9, 0x2B,

     //(Below)      DRC attack time(1ms)
     0x08, 0x3B, 0x00, 0x02, 0xA3, 0x9A, 0x00, 0x7D, 0x2F, 0xD2,

     //(Below)      DRC decay time(100ms)
     0x08, 0x3C, 0x00, 0x00, 0x06, 0xD3, 0x00, 0x7F, 0xF9, 0x2B,

     //(Below)      DRC thresh
     0x04, 0x40, 0xFD, 0x9F, 0xF4, 0x4C, //same as 5707

     //(Below)      DRC compression ratio(100)
     0x04, 0x41, 0x03, 0x81, 0x47, 0xAF,

     //(Below)      DRC offset(0)
     0x04, 0x42, 0x00, 0x08, 0x42, 0x10,

     //(Below)      DRC control(DRC enable)
     0x04, 0x46, 0x00, 0x00, 0x00, 0x01,

     0x14, 0x29, 0x00, 0x00, 0x40, 0x8D, 0x00, 0x00, 0x81, 0x1B, 0x00, 0x00, 0x40, 0x8D, 0x00, 0xEF, 0x6E, 0x9F, 0x0F, 0x8F, 0x8F, 0x29,//45Hz
     0x14, 0x30, 0x00, 0x00, 0x40, 0x8D, 0x00, 0x00, 0x81, 0x1B, 0x00, 0x00, 0x40, 0x8D, 0x00, 0xEF, 0x6E, 0x9F, 0x0F, 0x8F, 0x8F, 0x29,//45Hz

     0x14, 0x2A, 0x00, 0x82, 0x80, 0x27, 0x0F, 0x03, 0x5D, 0x04, 0x00, 0x7A, 0x31, 0x04, 0x00, 0xFC, 0xA2, 0xFC, 0x0F, 0x83, 0x4E, 0xD4,//700MHz
     0x14, 0x31, 0x00, 0x82, 0x80, 0x27, 0x0F, 0x03, 0x5D, 0x04, 0x00, 0x7A, 0x31, 0x04, 0x00, 0xFC, 0xA2, 0xFC, 0x0F, 0x83, 0x4E, 0xD4,//700MHz


     0x14, 0x2B, 0x00, 0x7F, 0x2C, 0x58, 0x0F, 0x01, 0xA7, 0x50, 0x00, 0x7F, 0x2C, 0x58, 0x00, 0xFE, 0x57, 0x52, 0x0F, 0x81, 0xA5, 0xF2,//45Hz
     0x14, 0x32, 0x00, 0x7F, 0x2C, 0x58, 0x0F, 0x01, 0xA7, 0x50, 0x00, 0x7F, 0x2C, 0x58, 0x00, 0xFE, 0x57, 0x52, 0x0F, 0x81, 0xA5, 0xF2,//45Hz

     0x14, 0x2C, 0x00, 0x75, 0x76, 0x29, 0x0F, 0x19, 0x61, 0xFB, 0x00, 0x72, 0x6D, 0x0E, 0x00, 0xE6, 0x9E, 0x05, 0x0F, 0x98, 0x1C, 0xC8,//700MHz
     0x14, 0x33, 0x00, 0x75, 0x76, 0x29, 0x0F, 0x19, 0x61, 0xFB, 0x00, 0x72, 0x6D, 0x0E, 0x00, 0xE6, 0x9E, 0x05, 0x0F, 0x98, 0x1C, 0xC8,//700MHz

     0x14, 0x2D, 0x00, 0x80, 0x6A, 0x60, 0x0F, 0x00, 0xDB, 0x5E, 0x00, 0x7E, 0xBF, 0xDB, 0x00, 0xFF, 0x24, 0xA2, 0x0F, 0x80, 0xD5, 0xC5,//700MHz
     0x14, 0x34, 0x00, 0x80, 0x6A, 0x60, 0x0F, 0x00, 0xDB, 0x5E, 0x00, 0x7E, 0xBF, 0xDB, 0x00, 0xFF, 0x24, 0xA2, 0x0F, 0x80, 0xD5, 0xC5,//700MHz
     //(Below)   ch1 Biquad1 Coeff(low pass butterworth 2 200Hz)
    // 0x14, 0x2B, 0x00, 0x81, 0x49, 0x88, 0x0F, 0x03, 0x92, 0xB6, 0x00, 0x7B, 0x67, 0xA3, 0x00, 0xFC, 0x6D, 0x4A, 0x0F, 0x83, 0x4E, 0xD4,
     //00, 0x80, 0x52, 0x7D, 0x0F, 0x02, 0xC1, 0x44, 0x00, 0x7D, 0x30, 0x59, 0x00, 0xFD, 0x3E, 0xBC, 0x0F, 0x82, 0x7D, 0x2A,
         //00,0x80,0x52,0x7D,0x0F,0x02,0xC1,0x44,0x00,0x7D,0x30,0x59,0x00,0xFD,0x3E,0xBC,0x0F,0x82,0x7D,0x2A,
    // 00, 0x00, 0x05, 0x83, 0x00, 0x00, 0x0B, 0x06, 0x00, 0x00, 0x05, 0x83, 0x00, 0xFB, 0x42, 0xC1, 0x0F, 0x84, 0xA7, 0x33,

     //(Below)   ch1 Biquad2 Coeff(high pass butterworth 2 45Hz)
     //0x14, 0x2C, 0x00, 0x7F, 0x77, 0xC7, 0x0F, 0x01, 0x10, 0x72, 0x00, 0x7F, 0x77, 0xC7, 0x00, 0xFE, 0xEE, 0xFD, 0x0F, 0x81, 0x0F, 0xE1,



     //(Below)   ch2 Biquad1 Coeff(low pass butterworth 2 200Hz)
     //0x14, 0x32, 0x00, 0x81, 0x49, 0x88, 0x0F, 0x03, 0x92, 0xB6, 0x00, 0x7B, 0x67, 0xA3, 0x00, 0xFC, 0x6D, 0x4A, 0x0F, 0x83, 0x4E, 0xD4,
     //00, 0x80, 0x52, 0x7D, 0x0F, 0x02, 0xC1, 0x44, 0x00, 0x7D, 0x30, 0x59, 0x00, 0xFD, 0x3E, 0xBC, 0x0F, 0x82, 0x7D, 0x2A,//350hZ
     //00, 0x00, 0x05, 0x83, 0x00, 0x00, 0x0B, 0x06, 0x00, 0x00, 0x05, 0x83, 0x00, 0xFB, 0x42, 0xC1, 0x0F, 0x84, 0xA7, 0x33,

     //(Below)   ch2 Biquad2 Coeff(high pass butterworth 2 45Hz)
     //0x14, 0x33, 0x00, 0x7F, 0x77, 0xC7, 0x0F, 0x01, 0x10, 0x72, 0x00, 0x7F, 0x77, 0xC7, 0x00, 0xFE, 0xEE, 0xFD, 0x0F, 0x81, 0x0F, 0xE1,

     //(Below)      Bank switch control (no automatic bank switching)
     0x04, 0x50, 0x0F, 0x70, 0x80, 0x00,


     0x04, 0x20, 0x00, 0x80, 0x77, 0x72,
     //0x04, 0x20, 0x00, 0x89, 0x77, 0x72,
     //(Below)       PWM Output MUX Register (Note: Writes to this register affect Inter-Channel Delay,R:A+,B-,L:C+,D-)
     0x04, 0x25, 0x01, 0x20, 0x31, 0x45,

     0x01, 0x07, 0x16, //Master Volume Register (0xFF = Mute,16dB)   //same as 5707
     0x01, 0x08, 0x30, //Channel 1 Volume
     0x01, 0x09, 0x30, //Channel 2 Volume
     0x01, 0x06, 0x00, //Soft Mute Register (mute off)
     0x01, 0x03, 0xA0, //System Control Register 1(opt.)
     0x01, 0x04, 0x05, //Serial Data Interface Register
     0x01, 0x05, 0x00, //System Control Register 2(exit hard mute)
     0x01, 0x0E, 0x91, //Micro Register(opt.)
     0x01, 0x10, 0x02, //Modulation Limit(opt.)
     0x01, 0x1A, 0x0A, //Split Capacitor Charge Period(opt.)
     0x01, 0x1C, 0x02, //Back-end Error Register(opt.)
     0x01, 0x11, 0xB8, //Inter-Channel Delay Channel 1
     0x01, 0x12, 0x60, //Inter-Channel Delay Channel 2
     0x01, 0x13, 0xA0, //Inter-Channel Delay Channel 3
     0x01, 0x14, 0x48, //Inter-Channel Delay Channel 4
     0x00
     };


    printf("********Amplifier_Init\n");
    //===========================================
    mdrv_gpio_init();
    Audio_Amplifier_OFF();
    msAPI_Timer_Delayms(1);
    Audio_Amplifier_ON();
    msAPI_Timer_Delayms(20);//must added

    Pstr = AmpInitTbl;
    do
    {
        DataLength = *Pstr;
        if (DataLength > 20)
        {
            printf("5707 set command error!!\n");
            break;
        }
        g_ucTas5707RegAddr = *(++Pstr);
        Pstr++;
        if (MApi_SWI2C_WriteBytes(((U16)((E_I2C_BUS_SYS << 8) | 0x36)), 1,&g_ucTas5707RegAddr, DataLength, Pstr) == FALSE)
            printf("5707write fail = 0x%x\n", g_ucTas5707RegAddr);

        if (g_ucTas5707RegAddr == 0x1B)
        {
            msAPI_Timer_Delayms(50);
        }
        else// if (i<=5)
        {
            msAPI_Timer_Delayms(1);
        }
        Pstr = Pstr + DataLength;
    } while (*Pstr != 0);


    Pstr = Amp5707A_InitTbl;
    do
    {
        DataLength = *Pstr;
        if (DataLength > 20)
        {
            printf("5707A set command error!!\n");
            break;
        }
        g_ucTas5707RegAddr = *(++Pstr);
        Pstr++;
        if (MApi_SWI2C_WriteBytes(((U16)((E_I2C_BUS_SYS << 8) | 0x3A)), 1,&g_ucTas5707RegAddr, DataLength, Pstr) == FALSE)
            printf("5707Awrite fail = %d\n", g_ucTas5707RegAddr);

        if (g_ucTas5707RegAddr == 0x1B)
        {
            msAPI_Timer_Delayms(50);
        }
        else// if (i<=5)
        {
            msAPI_Timer_Delayms(1);
        }
        Pstr = Pstr + DataLength;
    } while (*Pstr != 0);
}
#else
    drvTAS5707_Shutdown();
    drvTAS5707_HWInit();
    msAPI_Timer_Delayms(50);
    drvTAS5707_RegInit();
#endif
}