Пример #1
0
fci_s32 bbm_com_reset(HANDLE handle)
{
    fci_s32 res;

    res = fc8080_reset(handle);

    return res;
}
Пример #2
0
s32 fc8080_init(HANDLE handle)
{
#ifdef FC8080_I2C
#ifdef CONFIG_TDMB_TSIF_QC
	bbm_write(handle, BBM_TSO_SELREG, 0xc4);
#else /* for S.LSI */
	bbm_write(handle, BBM_TSO_SELREG, 0xc0);
#endif
#endif

	fc8080_reset(handle);
	fc8080_set_xtal(handle);

	bbm_write(handle, BBM_LDO_VCTRL, 0x35);
	bbm_write(handle, BBM_XTAL_CCTRL, 0x0A);
	bbm_write(handle, BBM_RF_XTAL_EN, 0x0f);
	bbm_write(handle, BBM_ADC_OPMODE, 0x67);

	/*bbm_write(handle, BBM_FIC_CFG_CRC16, 0x03);*/
	bbm_word_write(handle, BBM_OFDM_DET_MAX_THRESHOLD, 0x0a00);
	bbm_write(handle, BBM_FTOFFSET_RANGE, 0x20);
	bbm_write(handle, BBM_AGC530_EN, 0x53);
	bbm_write(handle, BBM_BLOCK_AVG_SIZE_LOCK, 0x49);
	bbm_word_write(handle, BBM_GAIN_CONSTANT, 0x0303);
	bbm_write(handle, BBM_DET_CNT_BOUND, 0x60);
	bbm_write(handle, BBM_UNLOCK_DETECT_EN, 0x00);

	bbm_write(handle, BBM_DCE_CTRL, 0x27);
	bbm_write(handle, BBM_PGA_GAIN_MAX, 0x18);
	bbm_write(handle, BBM_PGA_GAIN_MIN, 0xe8);

#ifdef CONFIG_TDMB_XTAL_FREQ
	if (main_xtal_freq == 24000)
		bbm_write(handle, BBM_SYNC_MTH, 0x43);
	else
		bbm_write(handle, BBM_SYNC_MTH, 0xc3);

	if ((main_xtal_freq == 16384) || (main_xtal_freq == 24576))
		bbm_write(handle, BBM_SFSYNC_ON, 0x00);
	else
		bbm_write(handle, BBM_SFSYNC_ON, 0x01);
#else
#if (FC8080_FREQ_XTAL == 24000)
	bbm_write(handle, BBM_SYNC_MTH, 0x43);
#else
	bbm_write(handle, BBM_SYNC_MTH, 0xc3);
#endif
#if (FC8080_FREQ_XTAL == 16384) || (FC8080_FREQ_XTAL == 24576)
	bbm_write(handle, BBM_SFSYNC_ON, 0x00);
#else
	bbm_write(handle, BBM_SFSYNC_ON, 0x01);
#endif
#endif

	bbm_write(handle, BBM_RESYNC_EN, 0x01);
	bbm_write(handle, BBM_RESYNC_AUTO_CONDITION_EN, 0x00);
	bbm_write(handle, BBM_MSC_CFG_SPD, 0xff);

#if defined(POWER_SAVE_MODE)
	bbm_write(handle, BBM_PS0_RF_ENABLE, 0x06);
	bbm_write(handle, BBM_PS1_ADC_ENABLE, 0x07);
	bbm_write(handle, BBM_PS2_BB_ENABLE, 0x07);
	bbm_write(handle, BBM_PS2_BB_ADD_SHIFT, 0x21);
#else
	bbm_write(handle, BBM_PS0_RF_ENABLE, 0x04);
	bbm_write(handle, BBM_PS1_ADC_ENABLE, 0x05);
	bbm_write(handle, BBM_PS2_BB_ENABLE, 0x05);
#endif
	bbm_write(handle, BBM_PS1_ADC_ADD_SHIFT, 0x71);

	bbm_word_write(handle, BBM_BUF_FIC_START, FIC_BUF_START);
	bbm_word_write(handle, BBM_BUF_FIC_END,   FIC_BUF_END);
	bbm_word_write(handle, BBM_BUF_FIC_THR,   FIC_BUF_THR);
	bbm_word_write(handle, BBM_BUF_CH0_START, CH0_BUF_START);
	bbm_word_write(handle, BBM_BUF_CH0_END,   CH0_BUF_END);
	bbm_word_write(handle, BBM_BUF_CH0_THR,   CH0_BUF_THR);
	bbm_word_write(handle, BBM_BUF_CH1_START, CH1_BUF_START);
	bbm_word_write(handle, BBM_BUF_CH1_END,   CH1_BUF_END);
	bbm_word_write(handle, BBM_BUF_CH1_THR,   CH1_BUF_THR);
	bbm_word_write(handle, BBM_BUF_CH2_START, CH2_BUF_START);
	bbm_word_write(handle, BBM_BUF_CH2_END,   CH2_BUF_END);
	bbm_word_write(handle, BBM_BUF_CH2_THR,   CH2_BUF_THR);

	bbm_write(handle, BBM_DM_CTRL, 0xa0);
	bbm_write(handle, BBM_OVERRUN_GAP, 0x06);

	bbm_word_write(handle, BBM_BUF_INT, 0x0107);
	bbm_word_write(handle, BBM_BUF_ENABLE, 0x0000);

#ifdef FC8080_I2C
	bbm_write(handle, BBM_TSO_CLKDIV, 0x01);
#else
	bbm_write(handle, BBM_MD_INT_EN, BBM_MF_INT);
	bbm_write(handle, BBM_MD_INT_STATUS, BBM_MF_INT);
#endif

	return BBM_OK;
}