Пример #1
0
/**

@see   TUNER_FP_INITIALIZE

*/
int
mxl5007t_Initialize(
	TUNER_MODULE *pTuner
	)
{
	MXL5007T_EXTRA_MODULE *pExtra;
	MxL5007_TunerConfigS *pTunerConfigS;



	// Get tuner extra module.
	pExtra = (MXL5007T_EXTRA_MODULE *)pTuner->pExtra;

	// Get MaxLinear-defined MxL5007T structure.
	pTunerConfigS = pExtra->pTunerConfigS;


	// Initialize tuner.
	if(MxL_Tuner_Init(pTunerConfigS) != MxL_OK)
		goto error_status_initialize_tuner;


	return FUNCTION_SUCCESS;


error_status_initialize_tuner:
	return FUNCTION_ERROR;
}
/**

@see   TUNER_FP_INITIALIZE

*/
int
mxl5007t_Initialize(
	TUNER_MODULE *pTuner
	)
{
	MXL5007T_EXTRA_MODULE *pExtra;
	MxL5007_TunerConfigS *pTunerConfigS;



	// Get tuner extra module.
	pExtra = &(pTuner->Extra.Mxl5007t);

	// Get MaxLinear-defined MxL5007T structure.
	pTunerConfigS = pExtra->pTunerConfigS;


	// Initialize tuner.
	if(MxL_Tuner_Init(pTunerConfigS) != MxL_OK)
		goto error_status_initialize_tuner;

	// Set tuner loop-through mode.
	if(MxL_Loop_Through_On(pTunerConfigS, pExtra->LoopThroughMode) != MxL_OK)
		goto error_status_initialize_tuner;


	return FUNCTION_SUCCESS;


error_status_initialize_tuner:
	return FUNCTION_ERROR;
}
Пример #3
0
int Maxlinear5007_KHz(int frequency_KHz)
{
	uint8 RFSynthLock, REFSynthLock;
	unsigned int freq_MHz;
	MxL5007_TunerConfigS myTuner;
	myTuner.I2C_Addr = MxL_I2C_ADDR_96;//I2C address 0xC0>>1, 0x60==96
	myTuner.Mode = MxL_MODE_DVBT;
	//Setting for Cable mode only
	//myTuner.IF_Diff_Out_Level = -8;
	//Set Tuner's XTAL freq
	myTuner.Xtal_Freq = MxL_XTAL_24_MHZ;//MxL_XTAL_24_MHZ;
	//Set Tuner's IF Freq
	myTuner.IF_Freq = MxL_IF_36_15_MHZ;//MxL_IF_36_15_MHZ; 
	//Set Tuner's Clock out setting
	myTuner.ClkOut_Setting = MxL_CLKOUT_ENABLE;
	myTuner.ClkOut_Amp = MxL_CLKOUT_AMP_0;
	MxL_Check_ChipVersion(&myTuner);
	MxL_Tuner_Init(&myTuner);
	freq_MHz = frequency_KHz/1000;
	MxL_Tuner_RFTune(&myTuner, (uint32)(freq_MHz*1000000), MxL_BW_8MHz);
	
	//myTuner.I2C_Addr = MxL_I2C_ADDR_99;
	MxL_RFSynth_Lock_Status(&myTuner, &RFSynthLock);
	MxL_REFSynth_Lock_Status(&myTuner, &REFSynthLock);
	if(RFSynthLock & REFSynthLock)
	{
      printf("Maxlinear Tuner locked\n");
	}
	return 1;
	//getchar();
}
Пример #4
0
/*****************************************************************************
 * INT32 nim_mxl203rf_control(UINT32 freq, UINT8 bandwidth,UINT8 AGC_Time_Const,UINT8 *data,UINT8 _i2c_cmd)
 *
 * Tuner write operation
 *
 * Arguments:
 *  Parameter1: UINT32 freq		: Synthesiser programmable divider
 *  Parameter2: UINT8 bandwidth		: channel bandwidth
 *  Parameter3: UINT8 AGC_Time_Const	: AGC time constant
 *  Parameter4: UINT8 *data		: 
 *
 * Return Value: INT32			: Result
 *****************************************************************************/
INT32 tun_mxl203rf_control(UINT32 tuner_id, UINT32 freq, UINT32 sym, UINT8 AGC_Time_Const, UINT8 _i2c_cmd)
{
	unsigned long dwRF_Freq_KHz;
	MxL203RF_BW_MHz mxl_BW;
	MxL_ERR_MSG Status;

	NIM_MXL203RF_PRINTF("%s:tuner_id %d,freq %ld, sym %ld,AGC_Time_Const %d,_i2c_cmd %d\n",__FUNCTION__,tuner_id,freq,sym,AGC_Time_Const,_i2c_cmd);

	if(tuner_id >= MAX_TUNER_SUPPORT_NUM)
		return ERR_FAILUE;

	if ( bMxl_Tuner_Inited[tuner_id] == FALSE )
	{
		NIM_MXL203RF_PRINTF("MXL203RF CTL_INIT,ADDR=%x\n",mxl203rf_dev_id[tuner_id]->c_tuner_base_addr);
		mxl203rf_TunerConfig[tuner_id].I2C_Addr = (MxL203RF_I2CAddr)(mxl203rf_dev_id[tuner_id]->c_tuner_base_addr);//MxL_I2C_ADDR_96;
		mxl203rf_TunerConfig[tuner_id].Mode = MxL_MODE_CAB_STD;
		mxl203rf_TunerConfig[tuner_id].Xtal_Freq=MxL_XTAL_48_MHZ;		
		mxl203rf_TunerConfig[tuner_id].IF_Freq = MxL_IF_7_2_MHZ; //MxL_IF_6_MHZ;// MxL_IF_4_57_MHZ;//MxL_IF_36_15_MHZ;
		mxl203rf_TunerConfig[tuner_id].IF_Spectrum = MxL_NORMAL_IF;
		mxl203rf_TunerConfig[tuner_id].ClkOut_Setting = MxL_CLKOUT_DISABLE;
		mxl203rf_TunerConfig[tuner_id].ClkOut_Amp = MxL_CLKOUT_AMP_10;
		mxl203rf_TunerConfig[tuner_id].Xtal_Cap = MxL_XTAL_CAP_12_PF;

		if((Status = MxL_Tuner_Init(&mxl203rf_TunerConfig[tuner_id])) != MxL_OK )
		{
			return ERR_FAILUE;
		}

		bMxl_Tuner_Inited[tuner_id] = TRUE;
	}

	dwRF_Freq_KHz = freq;
	mxl_BW = MxL_BW_8MHz; //not use 'sym'

	if(  (Status = MxL_Tuner_RFTune(&mxl203rf_TunerConfig[tuner_id], dwRF_Freq_KHz*1000, mxl_BW)) != MxL_OK )
	{
		return ERR_FAILUE;
	}

	//#define MXL_DEBUG
#ifdef MXL_DEBUG
	UINT8 i;
	for(i = 0; i < 255; i++)
	{
		//printk(&mxl203rf_TunerConfig[tuner_id], i, &reg_dump[i]);
	}
#endif	
	return SUCCESS;	
}