コード例 #1
0
// This function opens the drivers and initializes the components for one path
tmErrorCode_t Init(tmUnitSelect_t path)
{
    tmUnitSelect_t tunerUnit;

    tmbslFrontEndDependency_t  sSrvFunc;
    TDA18250A_AdditionnalData_t sTDA18250AAdditionnalData;
    tmErrorCode_t err = TM_ERR_NOT_INITIALIZED;

    if (path == 0)
    {
        tunerUnit = TunerUnit0;
    }
    else
    {
        tunerUnit = TunerUnit1;
    }

    sSrvFunc.sIo.Write = UserWrittenI2CWrite;
    sSrvFunc.sIo.Read = UserWrittenI2CRead;
    sSrvFunc.sTime.Wait = UserWrittenWait;
	sSrvFunc.sDebug.Print = NULL;
    sSrvFunc.sMutex.Init = NULL;
    sSrvFunc.sMutex.DeInit = NULL;
    sSrvFunc.sMutex.Acquire = NULL;
    sSrvFunc.sMutex.Release = NULL;

    /* Tuner init */
    if (path == 0)
    {
        sTDA18250AAdditionnalData.tOtherUnit = TunerUnit1;
    }
    else
    {
        sTDA18250AAdditionnalData.tOtherUnit = TunerUnit0;
    }
    sSrvFunc.dwAdditionalDataSize = sizeof(TDA18250A_AdditionnalData_t);
    sSrvFunc.pAdditionalData = &sTDA18250AAdditionnalData;
    err = tmbslTDA18250A_Open(tunerUnit, &sSrvFunc);
    if (err == TM_OK)
    {
	    err = tmbslTDA18250A_HwInit(tunerUnit);
    }
    if (err == TM_OK)
    {
	    err = tmbslTDA18250A_SetPowerState(tunerUnit, tmPowerOn);
    }

    return err;
}
コード例 #2
0
ファイル: tun_tda18250ab.c プロジェクト: qttest1/PDK_GoBian
INT32 tun_tda18250ab_control(UINT32 tuner_id, UINT32 freq, UINT32 sym)	
{	

	INT32   result;
	tmErrorCode_t err;
	static INT8 tun_status=0;
    struct QAM_TUNER_CONFIG_EXT * tuner_dev_ptr = NULL;

	UInt32 uRF_Hz = freq*1000;

	tuner_dev_ptr = tda18250ab_dev_id[tuner_id];
TDA18250AStandardMode_t stdmodemaster = TDA18250A_QAM_8MHz;

	if(tuner_dev_ptr->c_tuner_freq_param !=0x00)
	{
		if(t_val!=tuner_dev_ptr->c_tuner_freq_param)
		{
			t_val=tuner_dev_ptr->c_tuner_freq_param;
			tun_status=0x00;
		}
	}

	if (0==tun_status)
	{
	   /* Variable declarations */
		tmbslFrontEndDependency_t  sSrvFunc;
		tmErrorCode_t err = TM_OK;


	   switch(tuner_dev_ptr->c_tuner_freq_param)
	   	{
	   		case 0x09:
				stdmodemaster=TDA18250A_QAM_8MHz;
				break;
			case 0x0C:
				stdmodemaster=TDA18250A_QAM_6MHz;
				break;
			default:
				stdmodemaster = TDA18250A_QAM_8MHz;
				break;
	   	}
	  	 tuner_dev_ptr->c_tuner_freq_param =0x00;
       	memset(&sSrvFunc, 0, sizeof(sSrvFunc));
		sSrvFunc.sIo.Write = UserWrittenWrite_18250ab;
		sSrvFunc.sIo.Read = UserWrittenRead_18250ab;
		sSrvFunc.sTime.Wait = UserWrittenWait_18250ab;
		sSrvFunc.sDebug.Print = UserWrittenPrint_18250ab;
		sSrvFunc.sMutex.Init = Null;
		sSrvFunc.sMutex.DeInit = Null;
		sSrvFunc.sMutex.Acquire = Null;
		sSrvFunc.sMutex.Release = Null;

		/* Tuner init */
		sSrvFunc.dwAdditionalDataSize = 0;
		sSrvFunc.pAdditionalData = Null;
		err = tmbslTDA18250A_Open(tuner_id, &sSrvFunc);

		//joey, 20130415, for 27M crystal support, in future, should be from the top setting.
/*		
		if (err == TM_OK)
		{
			TDA18250AXtalFreq_t tmp_crystal = TDA18250A_XtalFreq_Unknown;
			
			struct QAM_TUNER_CONFIG_EXT * tuner_dev_ptr = NULL;

			if ((tuner_id>=tda18250ab_tuner_cnt) || (tuner_id>=MAX_TUNER_SUPPORT_NUM))
				return ERR_FAILUE;
			tuner_dev_ptr = tda18250ab_dev_id[tuner_id];
			
			if (16 == tuner_dev_ptr->cTuner_Crystal) // tuner crystal selection.
			{
				tmp_crystal = TDA18250A_XtalFreq_16000000;
			}
			else if (24 == tuner_dev_ptr->cTuner_Crystal)
			{
				tmp_crystal = TDA18250A_XtalFreq_24000000;
			}
			else if (25 == tuner_dev_ptr->cTuner_Crystal)
			{
				tmp_crystal = TDA18250A_XtalFreq_25000000;
			}
			else if (27 == tuner_dev_ptr->cTuner_Crystal)
			{
				tmp_crystal = TDA18250A_XtalFreq_27000000;
			}
			else if (30 == tuner_dev_ptr->cTuner_Crystal)
			{
				tmp_crystal = TDA18250A_XtalFreq_30000000;
			}
			else
			{
				tmp_crystal = TDA18250A_XtalFreq_16000000;
			}
		
			err = tmbslTDA18250A_SetXtal(tuner_id, tmp_crystal);
		}
*/
		if (err == TM_OK)
		{
			err = tmbslTDA18250A_HwInit(tuner_id);
		}
		if (err == TM_OK)
		{
			err = tmbslTDA18250A_SetPowerState(tuner_id, tmPowerOn);
		}
		
		if(err != TM_OK)
			return err;

		tun_status = 1;
	
	
	err = tmbslTDA18250A_SetStandardMode(tuner_id, stdmodemaster);
	TDA18250AB_PRINTF("2---the err is %d\n",err);

	}
	
	
	if (err == TM_OK)
	{
		err = tmbslTDA18250A_SetRF(tuner_id, uRF_Hz);
	}


	if (err !=TM_OK) 
	{
		result= ERR_FAILED;
	}
	else
	{
		result = SUCCESS;
	}

	return result;
}