fci_s32 bbm_com_reset(HANDLE handle) { fci_s32 res; res = fc8080_reset(handle); return res; }
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; }