int BBM_LONG_WRITE(HANDLE hDevice, u16 addr, u32 data) { int res; res = bbm_long_write(hDevice, addr, data); return res; }
fci_s32 bbm_com_long_write(HANDLE handle, fci_u16 addr, fci_u32 data) { fci_s32 res; res = bbm_long_write(handle, addr, data); return res; }
s32 bbm_com_long_write(HANDLE handle, DEVICEID devid, u16 addr, u32 data) { s32 res; res = bbm_long_write(handle, devid, addr, data); return res; }
int bbm_com_long_write(HANDLE hDevice, u16 addr, u32 data) { int res; res = bbm_long_write(hDevice, addr, data); return res; }
s32 tuner_select(HANDLE handle, DEVICEID devid, enum PRODUCT_TYPE product, enum BROADCAST_TYPE broadcast) { switch (product) { case FC8300_TUNER: tuner = &fc8300_tuner; tuner_addr = FC8300_TUNER_ADDR; broadcast_type = broadcast; break; } if (tuner == NULL) { print_log(0,"ERROR tuner == NULL\n"); return BBM_E_TN_SELECT; } if (tuner->init(handle, devid, broadcast)) { print_log(0,"tuner->init\n"); return BBM_E_TN_INIT; } fc8300_set_broadcast_mode(handle, devid, broadcast); #ifdef BBM_ES if (product == FC8300_TUNER) { u8 chip_ver = 0x00; tuner_i2c_read(handle, devid, 0xff, 1, &chip_ver, 1); if (chip_ver == 0xc0) return BBM_OK; bbm_byte_write(handle, DIV_MASTER, BBM_RESYNC_ENABLE, 0xcf); bbm_long_write(handle, DIV_BROADCAST, BBM_MEMORY_RWM0, 0x05555555); bbm_byte_write(handle, DIV_BROADCAST, BBM_SFS_FTS_ERR_MAX_1SEG, 0x08); bbm_byte_write(handle, DIV_BROADCAST, BBM_SFS_FTS_ERR_MAX_3SEG, 0x08); bbm_byte_write(handle, DIV_BROADCAST, BBM_PGA_GAIN_MAX, 0x0c); bbm_byte_write(handle, DIV_BROADCAST, BBM_CSF_GAIN_MAX, 0x09); bbm_byte_write(handle, DIV_MASTER, BBM_FD_OUT_MODE, 0x03); bbm_byte_write(handle, DIV_MASTER, BBM_DIV_START_MODE, 0x17); bbm_byte_write(handle, DIV_BROADCAST, BBM_PSAT_ON_REF_1SEG_QPSK, 0x1a); bbm_byte_write(handle, DIV_BROADCAST, BBM_PSAT_ON_REF_1SEG_16QAM, 0x1b); switch (broadcast) { case ISDBT_1SEG: case ISDBTMM_1SEG: case ISDBTSB_1SEG: case ISDBT_CATV_1SEG: case ISDBTSB_3SEG: bbm_byte_write(handle, DIV_BROADCAST, BBM_SFS_MTH, 0x32); break; case ISDBT_13SEG: case ISDBTMM_13SEG: case ISDBT_CATV_13SEG: bbm_byte_write(handle, DIV_BROADCAST, BBM_SFS_MTH, 0x31); break; } #if defined(BBM_2_DIVERSITY) || defined(BBM_4_DIVERSITY) bbm_byte_write(handle, DIV_MASTER, BBM_XTAL_OUTBUF_EN, 0x00); bbm_byte_write(handle, DIV_MASTER, BBM_XTAL_OUTBUF_GAIN, 0x03); bbm_word_write(handle, DIV_BROADCAST, BBM_FD_RD_LATENCY_1SEG, 0x1840); bbm_byte_write(handle, DIV_BROADCAST, BBM_COMB_OFF, 0x80); #else /* SINGLE */ bbm_word_write(handle, DIV_BROADCAST, BBM_FD_RD_LATENCY_1SEG, 0x0002); #endif /* #if defined(BBM_2_DIVERSITY) || defined(BBM_4_DIVERSITY) */ } #endif /* #ifdef BBM_ES */ return BBM_OK; }
static s32 fc8080_set_xtal(HANDLE handle) { if (main_xtal_freq == 24576) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x04000000); bbm_byte_write(handle, BBM_NCO_INV, 0x80); bbm_byte_write(handle, BBM_EZ_CONST, 0x80); bbm_byte_write(handle, BBM_CLK_MODE, 0x02); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x02); bbm_byte_write(handle, BBM_COEF01, 0x0f); bbm_byte_write(handle, BBM_COEF02, 0x0d); bbm_byte_write(handle, BBM_COEF03, 0x00); bbm_byte_write(handle, BBM_COEF04, 0x04); bbm_byte_write(handle, BBM_COEF05, 0x03); bbm_byte_write(handle, BBM_COEF06, 0x1c); bbm_byte_write(handle, BBM_COEF07, 0x19); bbm_byte_write(handle, BBM_COEF08, 0x02); bbm_byte_write(handle, BBM_COEF09, 0x0c); bbm_byte_write(handle, BBM_COEF0A, 0x04); bbm_byte_write(handle, BBM_COEF0B, 0x30); bbm_byte_write(handle, BBM_COEF0C, 0xed); bbm_byte_write(handle, BBM_COEF0D, 0x13); bbm_byte_write(handle, BBM_COEF0E, 0x4f); bbm_byte_write(handle, BBM_COEF0F, 0x6b); } else if (main_xtal_freq == 16384) { /* clock mode */ bbm_long_write(handle, BBM_NCO_OFFSET, 0x04000000); bbm_byte_write(handle, BBM_NCO_INV, 0x80); bbm_byte_write(handle, BBM_EZ_CONST, 0x80); bbm_byte_write(handle, BBM_CLK_MODE, 0x00); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x02); bbm_byte_write(handle, BBM_COEF01, 0x0f); bbm_byte_write(handle, BBM_COEF02, 0x0d); bbm_byte_write(handle, BBM_COEF03, 0x00); bbm_byte_write(handle, BBM_COEF04, 0x04); bbm_byte_write(handle, BBM_COEF05, 0x03); bbm_byte_write(handle, BBM_COEF06, 0x1c); bbm_byte_write(handle, BBM_COEF07, 0x19); bbm_byte_write(handle, BBM_COEF08, 0x02); bbm_byte_write(handle, BBM_COEF09, 0x0c); bbm_byte_write(handle, BBM_COEF0A, 0x04); bbm_byte_write(handle, BBM_COEF0B, 0x30); bbm_byte_write(handle, BBM_COEF0C, 0xed); bbm_byte_write(handle, BBM_COEF0D, 0x13); bbm_byte_write(handle, BBM_COEF0E, 0x4f); bbm_byte_write(handle, BBM_COEF0F, 0x6b); } else if (main_xtal_freq == 19200) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x0369d037); bbm_byte_write(handle, BBM_NCO_INV, 0x96); bbm_byte_write(handle, BBM_EZ_CONST, 0x6d); bbm_byte_write(handle, BBM_CLK_MODE, 0x00); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x0e); bbm_byte_write(handle, BBM_COEF01, 0x00); bbm_byte_write(handle, BBM_COEF02, 0x03); bbm_byte_write(handle, BBM_COEF03, 0x03); bbm_byte_write(handle, BBM_COEF04, 0x1f); bbm_byte_write(handle, BBM_COEF05, 0x1a); bbm_byte_write(handle, BBM_COEF06, 0x1b); bbm_byte_write(handle, BBM_COEF07, 0x03); bbm_byte_write(handle, BBM_COEF08, 0x0a); bbm_byte_write(handle, BBM_COEF09, 0x05); bbm_byte_write(handle, BBM_COEF0A, 0x37); bbm_byte_write(handle, BBM_COEF0B, 0x2d); bbm_byte_write(handle, BBM_COEF0C, 0xfa); bbm_byte_write(handle, BBM_COEF0D, 0x1f); bbm_byte_write(handle, BBM_COEF0E, 0x49); bbm_byte_write(handle, BBM_COEF0F, 0x5c); } else if (main_xtal_freq == 24000) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x02bb0cf8); bbm_byte_write(handle, BBM_NCO_INV, 0xbc); bbm_byte_write(handle, BBM_EZ_CONST, 0x57); bbm_byte_write(handle, BBM_CLK_MODE, 0x00); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x02); bbm_byte_write(handle, BBM_COEF01, 0x02); bbm_byte_write(handle, BBM_COEF02, 0x00); bbm_byte_write(handle, BBM_COEF03, 0x0c); bbm_byte_write(handle, BBM_COEF04, 0x1c); bbm_byte_write(handle, BBM_COEF05, 0x1f); bbm_byte_write(handle, BBM_COEF06, 0x05); bbm_byte_write(handle, BBM_COEF07, 0x08); bbm_byte_write(handle, BBM_COEF08, 0x04); bbm_byte_write(handle, BBM_COEF09, 0x3a); bbm_byte_write(handle, BBM_COEF0A, 0x31); bbm_byte_write(handle, BBM_COEF0B, 0x34); bbm_byte_write(handle, BBM_COEF0C, 0x07); bbm_byte_write(handle, BBM_COEF0D, 0x26); bbm_byte_write(handle, BBM_COEF0E, 0x42); bbm_byte_write(handle, BBM_COEF0F, 0x4e); } else if (main_xtal_freq == 26000) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x03c7ea98); bbm_byte_write(handle, BBM_NCO_INV, 0x87); bbm_byte_write(handle, BBM_EZ_CONST, 0x79); bbm_byte_write(handle, BBM_CLK_MODE, 0x02); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x0f); bbm_byte_write(handle, BBM_COEF01, 0x0d); bbm_byte_write(handle, BBM_COEF02, 0x0f); bbm_byte_write(handle, BBM_COEF03, 0x03); bbm_byte_write(handle, BBM_COEF04, 0x04); bbm_byte_write(handle, BBM_COEF05, 0x1f); bbm_byte_write(handle, BBM_COEF06, 0x19); bbm_byte_write(handle, BBM_COEF07, 0x1c); bbm_byte_write(handle, BBM_COEF08, 0x07); bbm_byte_write(handle, BBM_COEF09, 0x0b); bbm_byte_write(handle, BBM_COEF0A, 0x3f); bbm_byte_write(handle, BBM_COEF0B, 0x2d); bbm_byte_write(handle, BBM_COEF0C, 0xf2); bbm_byte_write(handle, BBM_COEF0D, 0x19); bbm_byte_write(handle, BBM_COEF0E, 0x4d); bbm_byte_write(handle, BBM_COEF0F, 0x65); } else if (main_xtal_freq == 27000) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x03a4114b); bbm_byte_write(handle, BBM_NCO_INV, 0x8d); bbm_byte_write(handle, BBM_EZ_CONST, 0x75); bbm_byte_write(handle, BBM_CLK_MODE, 0x02); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x0e); bbm_byte_write(handle, BBM_COEF01, 0x0e); bbm_byte_write(handle, BBM_COEF02, 0x01); bbm_byte_write(handle, BBM_COEF03, 0x04); bbm_byte_write(handle, BBM_COEF04, 0x03); bbm_byte_write(handle, BBM_COEF05, 0x1d); bbm_byte_write(handle, BBM_COEF06, 0x19); bbm_byte_write(handle, BBM_COEF07, 0x1f); bbm_byte_write(handle, BBM_COEF08, 0x09); bbm_byte_write(handle, BBM_COEF09, 0x09); bbm_byte_write(handle, BBM_COEF0A, 0x3b); bbm_byte_write(handle, BBM_COEF0B, 0x2d); bbm_byte_write(handle, BBM_COEF0C, 0xf5); bbm_byte_write(handle, BBM_COEF0D, 0x1c); bbm_byte_write(handle, BBM_COEF0E, 0x4b); bbm_byte_write(handle, BBM_COEF0F, 0x61); } else if (main_xtal_freq == 27120) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x039ff180); bbm_byte_write(handle, BBM_NCO_INV, 0x8d); bbm_byte_write(handle, BBM_EZ_CONST, 0x74); bbm_byte_write(handle, BBM_CLK_MODE, 0x02); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x0e); bbm_byte_write(handle, BBM_COEF01, 0x0e); bbm_byte_write(handle, BBM_COEF02, 0x01); bbm_byte_write(handle, BBM_COEF03, 0x04); bbm_byte_write(handle, BBM_COEF04, 0x03); bbm_byte_write(handle, BBM_COEF05, 0x1d); bbm_byte_write(handle, BBM_COEF06, 0x19); bbm_byte_write(handle, BBM_COEF07, 0x1f); bbm_byte_write(handle, BBM_COEF08, 0x09); bbm_byte_write(handle, BBM_COEF09, 0x09); bbm_byte_write(handle, BBM_COEF0A, 0x3b); bbm_byte_write(handle, BBM_COEF0B, 0x2d); bbm_byte_write(handle, BBM_COEF0C, 0xf5); bbm_byte_write(handle, BBM_COEF0D, 0x1c); bbm_byte_write(handle, BBM_COEF0E, 0x4b); bbm_byte_write(handle, BBM_COEF0F, 0x61); } else if (main_xtal_freq == 32000) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x03126eb8); bbm_byte_write(handle, BBM_NCO_INV, 0xa7); bbm_byte_write(handle, BBM_EZ_CONST, 0x62); bbm_byte_write(handle, BBM_CLK_MODE, 0x02); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x0e); bbm_byte_write(handle, BBM_COEF01, 0x0e); bbm_byte_write(handle, BBM_COEF02, 0x01); bbm_byte_write(handle, BBM_COEF03, 0x04); bbm_byte_write(handle, BBM_COEF04, 0x03); bbm_byte_write(handle, BBM_COEF05, 0x1d); bbm_byte_write(handle, BBM_COEF06, 0x19); bbm_byte_write(handle, BBM_COEF07, 0x1f); bbm_byte_write(handle, BBM_COEF08, 0x09); bbm_byte_write(handle, BBM_COEF09, 0x09); bbm_byte_write(handle, BBM_COEF0A, 0x3b); bbm_byte_write(handle, BBM_COEF0B, 0x3d); bbm_byte_write(handle, BBM_COEF0C, 0xf5); bbm_byte_write(handle, BBM_COEF0D, 0x1c); bbm_byte_write(handle, BBM_COEF0E, 0x4b); bbm_byte_write(handle, BBM_COEF0F, 0x61); } else if (main_xtal_freq == 38400) { bbm_long_write(handle, BBM_NCO_OFFSET, 0x0369d037); bbm_byte_write(handle, BBM_NCO_INV, 0x96); bbm_byte_write(handle, BBM_EZ_CONST, 0x6d); bbm_byte_write(handle, BBM_CLK_MODE, 0x01); /* filter coefficient */ bbm_byte_write(handle, BBM_COEF00, 0x0e); bbm_byte_write(handle, BBM_COEF01, 0x00); bbm_byte_write(handle, BBM_COEF02, 0x03); bbm_byte_write(handle, BBM_COEF03, 0x03); bbm_byte_write(handle, BBM_COEF04, 0x1f); bbm_byte_write(handle, BBM_COEF05, 0x1a); bbm_byte_write(handle, BBM_COEF06, 0x1b); bbm_byte_write(handle, BBM_COEF07, 0x03); bbm_byte_write(handle, BBM_COEF08, 0x0a); bbm_byte_write(handle, BBM_COEF09, 0x05); bbm_byte_write(handle, BBM_COEF0A, 0x37); bbm_byte_write(handle, BBM_COEF0B, 0x2d); bbm_byte_write(handle, BBM_COEF0C, 0xfa); bbm_byte_write(handle, BBM_COEF0D, 0x1f); bbm_byte_write(handle, BBM_COEF0E, 0x49); bbm_byte_write(handle, BBM_COEF0F, 0x5c); } return BBM_OK; }