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

📄 reg0297j.c

📁 st7710的tuner标准驱动
💻 C
📖 第 1 页 / 共 2 页
字号:
/* ----------------------------------------------------------------------------
File Name: reg0297J.c (was reg0297.c)

Description:

Copyright (C) 1999-2001 STMicroelectronics

   date: 15-May-2002
version: 3.5.0
 author: from STV0297 and MB validation drivers.
comment: Write for multi-instance/multi-FrontEnd.

Reference:
    ST API Definition "TUNER Driver API" DVD-API-06
---------------------------------------------------------------------------- */


/* Includes ---------------------------------------------------------------- */

/* C libs */
#include <string.h>

/* Standard includes */
#include "stlite.h"

/* STAPI */
#include "sttbx.h"
#include "sttuner.h"

/* local to sttuner */
#include "util.h"       /* generic utility functions for sttuner */
#include "dbtypes.h"    /* data types for databases */
#include "sysdbase.h"   /* functions to accesss system data */

#include "ioarch.h"     /* IO access layer */
#include "ioreg.h"      /* register mapping */

#include "d0297j.h"     /* top level driver header */
#include "reg0297j.h"   /* header for this file */





/* functions --------------------------------------------------------------- */


/* ----------------------------------------------------------------------------
Name: Reg0297J_Install()

Description:
    install driver register table

Parameters:

Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t Reg0297J_Install(STTUNER_IOREG_DeviceMap_t *DeviceMap)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297J.c Reg0297J_Install()";
#endif
   ST_ErrorCode_t Error = ST_NO_ERROR;


    if (Error != ST_NO_ERROR)
    {
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
        STTBX_Print(("%s fail error=%d\n", identity, Error));
#endif
    }
    else
    {
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
        STTBX_Print(("%s installed ok\n", identity));
#endif
    }

    return (Error);
}



/* ----------------------------------------------------------------------------
Name: Reg0297J_Open()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t Reg0297J_Open(STTUNER_IOREG_DeviceMap_t *DeviceMap, U32 ExternalClock)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297J.c Reg0297J_Open()";
#endif
    ST_ErrorCode_t Error = ST_NO_ERROR;

    DeviceMap->RegExtClk = ExternalClock * 2L;

#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    STTBX_Print(("%s External clock=%u KHz\n", identity, ExternalClock));
#endif
    return(Error);
}


/* ----------------------------------------------------------------------------
Name: Reg0297J_Close()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t Reg0297J_Close(STTUNER_IOREG_DeviceMap_t *DeviceMap)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297J.c Reg0297J_Close()";
#endif
    ST_ErrorCode_t Error = ST_NO_ERROR;

#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    STTBX_Print(("%s\n", identity));
#endif
    return(Error);
}

/* ----------------------------------------------------------------------------
Name: Reg0297J_UnInstall()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
ST_ErrorCode_t Reg0297J_UnInstall(STTUNER_IOREG_DeviceMap_t *DeviceMap)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297J.c Reg0297J_UnInstall()";
#endif
    ST_ErrorCode_t Error = ST_NO_ERROR;

#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    STTBX_Print(("%s\n", identity));
#endif
    return(Error);
}


/* ----------------------------------------------------------------------------
Name: Reg0297J_SetQAMSize()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
void Reg0297J_SetQAMSize(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, STTUNER_Modulation_t Value)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297J.c Reg0297J_SetQAMSize()";
#endif

    switch(Value)
    {
        case STTUNER_MOD_16QAM:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM16\n", identity));
#endif
            STTUNER_IOREG_SetField(DeviceMap, IOHandle, F0297J_MODE_SELECT, QAM16);
            break;
        case STTUNER_MOD_32QAM:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM32\n", identity));
#endif
            STTUNER_IOREG_SetField(DeviceMap, IOHandle, F0297J_MODE_SELECT, QAM32);
            break;
        case STTUNER_MOD_64QAM:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM64\n", identity));
#endif
            STTUNER_IOREG_SetField(DeviceMap, IOHandle, F0297J_MODE_SELECT, QAM64);
            break;
        case STTUNER_MOD_128QAM:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM128\n", identity));
#endif
            STTUNER_IOREG_SetField(DeviceMap, IOHandle, F0297J_MODE_SELECT, QAM128);
            break;
        case STTUNER_MOD_256QAM:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM256\n", identity));
#endif
            STTUNER_IOREG_SetField(DeviceMap, IOHandle, F0297J_MODE_SELECT, QAM256);
            break;
        default:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s fail Bad Parameter\n", identity));
#endif
            break;
    }
}

/* ----------------------------------------------------------------------------
Name: Reg0297J_GetQAMSize()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
STTUNER_Modulation_t Reg0297J_GetQAMSize(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297J.c Reg0297J_GetQAMSize()";
#endif
    STTUNER_Modulation_t Value;

    Value = STTUNER_IOREG_GetField(DeviceMap, IOHandle, F0297J_MODE_SELECT);

    switch(Value)
    {
        case QAM16:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM16\n", identity));
#endif
            return STTUNER_MOD_16QAM;
        case QAM32:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM32\n", identity));
#endif
            return STTUNER_MOD_32QAM;
        case QAM64:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM64\n", identity));
#endif
            return STTUNER_MOD_64QAM;
        case QAM128:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM128\n", identity));
#endif
            return STTUNER_MOD_128QAM;
        case QAM256:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s QAM256\n", identity));
#endif
            return STTUNER_MOD_256QAM;
        default:
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
            STTBX_Print(("%s fail Bad Parameter\n", identity));
#endif
            return STTUNER_MOD_ALL;
            break;
    }
}

/* ----------------------------------------------------------------------------
Name: Reg0297J_SetAGC()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
void Reg0297J_SetAGC(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, U16 Value)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297j.c Reg0297J_SetAGC()";
#endif

#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    STTBX_Print(("%s ==> AGC2 %u\n", identity, Value));
#endif
    U8 temp[1],try1;
   
    temp[0]=(int)(MAC0297J_B0(Value));
    try1=STTUNER_IOREG_GetRegister(DeviceMap,IOHandle,R0297J_WBAGC_0);
    temp[1]=try1&0xFC;
    temp[1]=temp[1]|((int)(MAC0297J_B1(Value)));
    STTUNER_IOREG_SetContigousRegisters(DeviceMap, IOHandle, R0297J_WBAGC_0, temp, 2);

}

/* ----------------------------------------------------------------------------
Name: Reg0297J_GetAGC()

Description:

Parameters:

Return Value:
---------------------------------------------------------------------------- */
U16 Reg0297J_GetAGC(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297.c Reg0297J_GetAGC()";
#endif
    U16 Value;
    U8 temp[1];

    STTUNER_IOREG_GetContigousRegisters(DeviceMap, IOHandle, R0297J_WBAGC_0, 2, temp);
    temp[1]=temp[1]&0x03;
    Value = MAC0297J_MAKEWORD(temp[1],temp[0]);
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    STTBX_Print(("%s ==> AGC2 %u\n", identity, Value));
#endif

    return (Value);
}

/****** SetWBAGCLoop *********************************************************/
/* Set the Roll value of the WBAGC loop                                      */
/*****************************************************************************/
void Reg0297J_SetWBAGCloop(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle, unsigned short loop)
{
    U8 temp[1];	
    /*STTUNER_IOREG_FieldSetVal(DeviceMap, F0297J_ROLL_LO, (int)(MAC0297J_B0(loop)));
    STTUNER_IOREG_FieldSetVal(DeviceMap, F0297J_ROLL_HI, (int)(MAC0297J_B1(loop)));*/
    temp[0]=(int)(MAC0297J_B0(loop));
    temp[1]=(int)(MAC0297J_B1(loop));
    STTUNER_IOREG_SetContigousRegisters(DeviceMap, IOHandle, R0297J_WBAGC_6, temp, 2);
    return;
}

/****** GetWBAGCloop *********************************************************/
/* Get the Roll value of the WBAGC loop                                      */
/*****************************************************************************/
U16 Reg0297J_GetWBAGCloop(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle)
{
    U16 Value;
    U8 temp[1];
    STTUNER_IOREG_GetContigousRegisters(DeviceMap, IOHandle, R0297J_WBAGC_6, 2, temp);

    Value = MAC0297J_MAKEWORD(temp[1],temp[0]);

    return (Value);
}

/***************************** STV0297Jreset ***************************************/
/*  STV0297J Software reset                                                       */
/*  Set bit 0 @reg0x80 to 1 then 0												  */
/**********************************************************************************/
void Reg0297J_STV0297Jreset(STTUNER_IOREG_DeviceMap_t *DeviceMap, IOARCH_Handle_t IOHandle)
{
#ifdef STTUNER_DEBUG_MODULE_CABDRV_REG0297J
    const char *identity = "STTUNER reg0297J.c Reg0297J_STV0297Jreset()";
#endif
    STTUNER_IOREG_SetField(DeviceMap, IOHandle, F0297J_SOFT_RESET,1);

⌨️ 快捷键说明

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