⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlgcustomize.c

📁 泰景的模拟电视全部驱动及MTK平台界面代码
💻 C
字号:
#include "tlgConfig.h"
#if TLG_CHIP_TYPE == TLG_CHIP_TYPE_TLG1100_1
    #include "tlg1100Hal.h"
    #include "tlg1100Api.h"
    #include "tlg1100App.h"
    #include "tlgi2c.h"
#elif TLG_CHIP_TYPE == TLG_CHIP_TYPE_TLG1150_1
    #include "tlg1150Hal.h"
    #include "tlg1150Api.h"
    #include "tlg1150App.h"
    #include "tlgi2c.h"
#elif TLG_CHIP_TYPE == TLG_CHIP_TYPE_TLG1155_1
    #include "tlg1155Hal.h"
    #include "tlg1155Api.h"
    #include "tlg1155App.h"
    #include "tlgi2c.h"
#endif

/*****************************************************************************
* TLGAPP_ScanChanFound
* BEGIN CUSTOM SECTION: This procedure is called when TLGAPP_ScanChannels()
*                       has found a new channel.
* It may be customized for a given build.
*****************************************************************************/

TLGDLL_API void TLGAPP_ScanChanFound(int chn)
{
    /** BEGIN CUSTOM SECTION: Provide actions to be performed when a channel
     **                       has been found.                              **/
}

/*****************************************************************************
* TLG_ClearRegShadow
*
* 
*
*
*****************************************************************************/
TLGDLL_API int TLG_ClearRegShadow(uint32 base_addr)
{
#ifdef TLG_USE_SHADOW_REGISTERS
    int i;
    for (i=0; i < TLG_MAX_REG_ADDR; i++)
        _TLG_shadow_reg_use[i] = TLG_OFF;
#endif /* TLG_USE_SHADOW_REGISTERS */
    return TLG_ERR_SUCCESS;
}
        
/*****************************************************************************
* TLG_ReadReg
*
* 
*
*
*****************************************************************************/
TLGDLL_API int TLG_ReadReg(uint32 base_addr, uint32 reg_addr, uint16 *val)
{
    TLG_NULLPTR_CHECK(val);
    TLG_BOUNDS_CHECK(reg_addr, TLG_MAX_REG_ADDR);

#ifdef TLG_USE_SHADOW_REGISTERS
    if (_TLG_shadow_reg_use[reg_addr] == TLG_ON)
    {
        *val = _TLG_shadow_reg[reg_addr];
        TLG_REG_LOG((b, "READ(Cache) 0x%04x = 0x%04x\n", reg_addr, *val));
    } else
#endif /* TLG_USE_SHADOW_REGISTERS */
    TLG_ReadRegNS(base_addr, reg_addr, val);

    return(TLG_ERR_SUCCESS);
}

/*****************************************************************************
* TLG_ReadRegNS
*
* 
*
*
*****************************************************************************/
TLGDLL_API int TLG_ReadRegNS(uint32 base_addr, uint32 reg_addr, uint16 *val)
{
    TLG_NULLPTR_CHECK(val);
    TLG_BOUNDS_CHECK(reg_addr, TLG_MAX_REG_ADDR);

    TLGI2C_ReadReg(base_addr, reg_addr, val);

#ifdef TLG_USE_SHADOW_REGISTERS
    _TLG_shadow_reg[reg_addr]     = *val;
    _TLG_shadow_reg_use[reg_addr] = TLG_ON;
#endif /* TLG_USE_SHADOW_REGISTERS */

    TLG_REG_LOG((b, "READ  0x%04x = 0x%04x\n", reg_addr, *val));

    return(TLG_ERR_SUCCESS);
}

/*****************************************************************************
* TLG_WriteReg
*
* 
*
*
*****************************************************************************/
TLGDLL_API int TLG_WriteReg(uint32 base_addr, uint32 reg_addr, uint16 val)
{
    TLG_BOUNDS_CHECK(reg_addr, TLG_MAX_REG_ADDR);

    TLGI2C_WriteReg(base_addr, reg_addr, val);

#ifdef TLG_USE_SHADOW_REGISTERS
    _TLG_shadow_reg[reg_addr]     = val;
    _TLG_shadow_reg_use[reg_addr] = TLG_ON;
#endif /* TLG_USE_SHADOW_REGISTERS */

    TLG_REG_LOG((b, "WRITE 0x%04x = 0x%04x\n", reg_addr, val));

    return(TLG_ERR_SUCCESS);
}


/*****************************************************************************
* TLG_BurstWrite
*
* 
*
*
*****************************************************************************/
TLGDLL_API int TLG_BurstWrite(uint32 base_addr, uint32 start_addr, int len, uint16 *val)
{
    TLG_NULLPTR_CHECK(val);
    TLG_BOUNDS_CHECK(start_addr, TLG_MAX_REG_ADDR);
    TLG_BOUNDS_CHECK(start_addr+len-1, TLG_MAX_REG_ADDR);

    TLGI2C_WriteBurst(base_addr, start_addr, len, val);

#ifdef TLG_USE_SHADOW_REGISTERS
    {   
        int i;
        for (i = 0; i < len; i++)
        {
            _TLG_shadow_reg[start_addr+i]     = val[i];
            _TLG_shadow_reg_use[start_addr+i] = TLG_ON;
        }
    }
#endif /* TLG_USE_SHADOW_REGISTERS */
#ifdef TLG_DO_REG_LOGGING
    {   
        int i;
        for (i = 0; i < len; i++)
        {
            TLG_REG_LOG((b, "WRITE 0x%04x = 0x%04x\n", start_addr+i, val[i]));
        }
    }
#endif /* TLG_DO_REG_LOGGING */
            
    return(TLG_ERR_SUCCESS);
}

/*****************************************************************************
* TLG_BurstRead
*
* 
*
*
*****************************************************************************/
TLGDLL_API int TLG_BurstRead(uint32 base_addr, uint32 start_addr, int len, uint16 *val)
{
    TLG_NULLPTR_CHECK(val);
    TLG_BOUNDS_CHECK(start_addr, TLG_MAX_REG_ADDR);
    TLG_BOUNDS_CHECK(start_addr+len-1, TLG_MAX_REG_ADDR);

    TLGI2C_ReadBurst(base_addr, start_addr, len, val);

#ifdef TLG_USE_SHADOW_REGISTERS
    {   
        int i;
        for (i = 0; i < len; i++)
        {
            _TLG_shadow_reg[start_addr+i]     = val[i];
            _TLG_shadow_reg_use[start_addr+i] = TLG_ON;
        }
    }
#endif /* TLG_USE_SHADOW_REGISTERS */
#ifdef TLG_DO_REG_LOGGING
    {   
        int i;
        for (i = 0; i < len; i++)
        {
            TLG_REG_LOG((b, "READ  0x%04x = 0x%04x\n", start_addr+i, val[i]));
        }
    }
#endif /* TLG_DO_REG_LOGGING */

    return(TLG_ERR_SUCCESS);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -