예제 #1
0
int init_tuner_fj2207(struct aml_demod_sta *demod_sta, 
		     struct aml_demod_i2c *adap)
{
   tmErrorCode_t err = TM_OK;
   tmbslFrontEndDependency_t sSrvTunerFunc;
   
   I2C_adap = adap;

/* Low layer struct set-up to link with user written functions */
   sSrvTunerFunc.sIo.Write             = UserWrittenI2CWrite;
   sSrvTunerFunc.sIo.Read              = UserWrittenI2CRead;
   sSrvTunerFunc.sTime.Get             = Null;
   sSrvTunerFunc.sTime.Wait            = UserWrittenWait;
   sSrvTunerFunc.sDebug.Print          = UserWrittenPrint;
   sSrvTunerFunc.sMutex.Init           = UserWrittenMutexInit;
   sSrvTunerFunc.sMutex.DeInit         = UserWrittenMutexDeInit;
   sSrvTunerFunc.sMutex.Acquire        = UserWrittenMutexAcquire;
   sSrvTunerFunc.sMutex.Release        = UserWrittenMutexRelease;
   sSrvTunerFunc.dwAdditionalDataSize  = 0;
   sSrvTunerFunc.pAdditionalData       = Null;
   
    err = tmbslNT220xInit(0, &sSrvTunerFunc);
   if(err != TM_OK)
       return err;
    
    err = tmbslNT220xReset(0);
   if(err != TM_OK)
       return err;

       return err;
}
예제 #2
0
INT32 tun_nt220x_control(UINT32 tuner_id, UINT32 freq, UINT32 sym, UINT8 AGC_Time_Const, UINT8 _i2c_cmd)	
{	

	INT32   result;
	tmErrorCode_t err = TM_OK;
	static INT8 tun_status=0;
	tmNT220xStandardMode_t stdModeMaster;

	UInt32 uRFMaster = freq*1000;
	UInt32 uIFMaster = 0;

	if (0==tun_status)
	{
	   /* Variable declarations */
	   tmbslFrontEndDependency_t sSrvTunerFunc;
	/* Low layer struct set-up to link with user written functions */
	   sSrvTunerFunc.sIo.Write             = UserWrittenI2CWrite;
	   sSrvTunerFunc.sIo.Read              = UserWrittenI2CRead;
	   sSrvTunerFunc.sTime.Get             = Null;
	   sSrvTunerFunc.sTime.Wait            = UserWrittenWait;
	   sSrvTunerFunc.sDebug.Print          = UserWrittenPrint;
	   sSrvTunerFunc.sMutex.Init           = UserWrittenMutexInit;
	   sSrvTunerFunc.sMutex.DeInit         = UserWrittenMutexDeInit;
	   sSrvTunerFunc.sMutex.Acquire        = UserWrittenMutexAcquire;
	   sSrvTunerFunc.sMutex.Release        = UserWrittenMutexRelease;
	   sSrvTunerFunc.dwAdditionalDataSize  = 0;
	   sSrvTunerFunc.pAdditionalData       = Null;
	   
	   /* NT220X Master Driver low layer setup */
	   err = tmbslNT220xInit(0, &sSrvTunerFunc);
	   if(err != TM_OK)
	   {
	   		NT220X_PRINTF("tmNT220x init failed\n");
	       return err;
	   }
	   /* NT220X Master Hardware initialization */
	   do
	   {
	   err = tmbslNT220xReset(0);
	   if(err != TM_OK)
	   		{
	   			NT220X_PRINTF("tmNT220x reset again\n");
				osal_task_sleep(100);
	   		}
	   }while(err != TM_OK);
	   
	   if(err != TM_OK)
	   {
	   		NT220X_PRINTF("tmNT220x reset failed\n");
	       return err;
	   }
	   
	   /* NT220X Master Hardware power state */
	   
	   err = tmbslNT220xSetPowerState(0, tmNT220x_PowerNormalMode);

	   if(err != TM_OK)
	    {
	    
		NT220X_PRINTF("tmNT220x_error 1\n");
	       return err;
	    }

	#if (1)		
	   /* NT220X Master standard mode */
	#ifdef NT220x_IF5M_BW8M
	   stdModeMaster = tmNT220x_QAM_8MHz;
	#else
	  stdModeMaster = tmNT220x_QAM_6MHz;		
	#endif
	   err = tmbslNT220xSetStandardMode(0, stdModeMaster);

	   if(err != TM_OK)
	   {
	   	NT220X_PRINTF("tmNT220x_error 2\n");
	       return err;
	   }
	#endif
		tun_status = 1;
	}
#if (0)
/*
   if(sym<= 4500)
   {
		stdModeMaster = tmNT220x_QAM_6MHz;	
		NT220X_PRINTF("tmNT220x_QAM_6MHz\n");
			
   }
   else
   {	
   		stdModeMaster = tmNT220x_QAM_8MHz;
		NT220X_PRINTF("tmNT220x_QAM_8MHz\n");
   }
*/   
   stdModeMaster = tmNT220x_QAM_6MHz;	
	NT220X_PRINTF("tmNT220x_QAM_6MHz\n");
	
   /* NT220X Master standard mode */
   err = tmbslNT220xSetStandardMode(0, stdModeMaster);
   NT220X_PRINTF("tmNT220x_QAM,stdModeMaster=%d\n",stdModeMaster);	

   if(err != TM_OK)
   {
   		NT220X_PRINTF("set tmNT220x_QAM failed\n");
       return err;
	}
#endif
	
   /* NT220X Master RF frequency */
   err = tmbslNT220xSetRf(0, uRFMaster);// tUnit-> 0: master 1:slaver,uRF(hz)

   if(err != TM_OK)
   {
   		NT220X_PRINTF("tmbslNT220xSetRf failed! uRFMaster=%d\n",uRFMaster);
       return err;
   }

	osal_task_sleep(100); // we don't know wait how long, just give a norminal value.   
   /* Get NT220X Master IF */
/*
   err = tmbslNT220xGetIF(0, &uIFMaster);
   if(err != TM_OK)
       return err;
*/
	if (err !=TM_OK) 
	{
		result= ERR_FAILED;
	}
	else
	{
		result = SUCCESS;
	}
	return result;

}