void fc8050_isr_control(fci_u8 onoff) { if(onoff) bbm_write(0, BBM_COM_INT_ENABLE, ENABLE_INT_MASK); else bbm_write(0, BBM_COM_INT_ENABLE, 0); }
void fc8180_isr(HANDLE handle) { #ifdef BBM_AUX_INT u8 aux_int_status = 0; #endif #ifndef BBM_I2C_TSIF u8 buf_int_status = 0; bbm_read(handle, BBM_BUF_STATUS, &buf_int_status); if (buf_int_status) { bbm_write(handle, BBM_BUF_STATUS, buf_int_status); fc8180_data(handle, buf_int_status); } /* Overrun */ buf_int_status = 0; bbm_read(handle, BBM_BUF_STATUS, &buf_int_status); if (buf_int_status) { bbm_write(handle, BBM_BUF_STATUS, buf_int_status); fc8180_data(handle, buf_int_status); } #endif #ifdef BBM_AUX_INT bbm_byte_read(handle, BBM_AUX_STATUS_CLEAR, &aux_int_status); if (aux_int_status) { bbm_byte_write(handle, BBM_AUX_STATUS_CLEAR, aux_int_status); fc8180_aux_int(handle, aux_int_status); } #endif }
s32 fc8080_reset(HANDLE handle) { bbm_write(handle, BBM_MD_RESET, 0xfe); ms_wait(1); bbm_write(handle, BBM_MD_RESET, 0xff); return BBM_OK; }
int fc8050_reset(HANDLE hDevice) { bbm_write(hDevice, BBM_COM_RESET, 0xFE); msWait(1); bbm_write(hDevice, BBM_COM_RESET, 0xFF); return BBM_OK; }
int fc8050_video_deselect(HANDLE hDevice, fci_u8 subChId, fci_u8 svcChId, fci_u8 cdiId) { if(fc8050_channel_deselect(hDevice, subChId,svcChId) != BBM_OK) { return BBM_NOK; } bbm_write(hDevice, BBM_BUF_CH0_SUBCH+svcChId, 0x00); bbm_write(hDevice, BBM_CDI0_SUBCH_EN+cdiId, 0x00); return BBM_OK; }
void fc8050_isr_interruptclear(void) { fci_u8 extIntStatus = 0; HANDLE hDevice = NULL; bbm_read(hDevice, BBM_COM_INT_STATUS, &extIntStatus); bbm_write(hDevice, BBM_COM_INT_STATUS, extIntStatus); bbm_write(hDevice, BBM_COM_INT_STATUS, 0x00); }
s32 fc8080_channel_deselect(HANDLE handle, u8 subch_id, u8 buf_id) { u8 buf_en = 0; bbm_read(handle, BBM_BUF_ENABLE, &buf_en); bbm_write(handle, BBM_BUF_ENABLE, buf_en & (~(1 << buf_id))); bbm_write(handle, BBM_SCH0_SET_IDI + buf_id, 0); return BBM_OK; }
int fc8050_reset(HANDLE hDevice) { TDMB_MSG_FCI_BB("[%s]\n", __func__); bbm_write(hDevice, BBM_COM_RESET, 0xFE); msWait(1); bbm_write(hDevice, BBM_COM_RESET, 0xFF); return BBM_OK; }
fci_s32 fc8080_channel_select(HANDLE handle, fci_u8 subch_id, fci_u8 buf_id) { fci_u8 buf_en = 0; bbm_read(handle, BBM_BUF_ENABLE, &buf_en); bbm_write(handle, BBM_BUF_ENABLE, buf_en | (1 << buf_id)); bbm_write(handle, BBM_SCH0_SET_IDI + buf_id, 0x40 | subch_id); return BBM_OK; }
int fc8050_channel_deselect(HANDLE hDevice, u8 subChId, u8 svcChId) { int i; bbm_write(hDevice, BBM_DIDP_CH0_SUBCH + svcChId, 0); for(i = 0; i < 12; i++) { bbm_write(hDevice, 0x190 + svcChId * 12 + i, 0); } return BBM_OK; }
s32 fc8080_video_select(HANDLE handle, u8 subch_id, u8 buf_id, u8 cdi_id) { u16 fec_en = 0; if (cdi_id == 0) { bbm_write(handle, BBM_FEC_RST, 0x1c); bbm_write(handle, BBM_FEC_RST, 0x00); } bbm_word_read(handle, BBM_MSC_CFG_SCH0, &fec_en); if ((fec_en & 0x00ff) && (fec_en & 0xff00) && cdi_id == 0) { bbm_write(handle, BBM_FEC_ON, 0x00); bbm_write(handle, BBM_MSC_CFG_SCH0 + cdi_id, 0x00); bbm_write(handle, BBM_MSC_CFG_SCH0 + cdi_id, fec_en & 0x00ff); bbm_write(handle, BBM_FEC_ON, 0x01); } if (fc8080_channel_select(handle, subch_id, buf_id) != BBM_OK) return BBM_NOK; bbm_write(handle, BBM_MSC_CFG_SCH0 + cdi_id, 0x40 | subch_id); bbm_write(handle, BBM_BUF_CH0_SUBID + buf_id, 0x40 | subch_id); return BBM_OK; }
int fc8150_i2c_init(HANDLE hDevice, u16 param1, u16 param2) { OAL_CREATE_SEMAPHORE(); /* for TSIF, you can call here your own TSIF initialization function. */ /* tsif_initialize(); */ bbm_write(hDevice, BBM_TS_CLK_DIV, 0x04); bbm_write(hDevice, BBM_TS_PAUSE, 0x80); bbm_write(hDevice, BBM_TS_CTRL, 0x02); bbm_write(hDevice, BBM_TS_SEL, 0x84); return BBM_OK; }
static int fc8050_power_save_off(HANDLE hDevice) { u8 tmp = 0x1e; bbm_write(hDevice, BBM_DIDP_POWER_OPT0, 0x04); bbm_write(hDevice, BBM_DIDP_POWER_OPT1, 0x05); bbm_write(hDevice, BBM_DIDP_POWER_OPT2, 0x05); bbm_write(hDevice, BBM_FFT_ADC_CONTROL, 0x9c); tuner_i2c_write(hDevice, 0x61, 1, &tmp, 1); PRINTF(hDevice, "Power Save Off\n"); return BBM_OK; }
static int fc8050_power_save_on(HANDLE hDevice) { u8 tmp = 0x64; bbm_write(hDevice, BBM_DIDP_POWER_OPT0, 0x06); bbm_write(hDevice, BBM_DIDP_POWER_OPT1, 0x06); bbm_write(hDevice, BBM_DIDP_POWER_OPT2, 0x07); bbm_write(hDevice, BBM_FFT_ADC_CONTROL, 0x1c); tuner_i2c_write(hDevice, 0x61, 1, &tmp, 1); //PRINTF(hDevice, "Power Save On\n"); return BBM_OK; }
int fci_i2c_init (HANDLE hDevice, int speed, int slaveaddr) { #if !defined (USE_PM8941_XO_A2) u16 r = FC8150_FREQ_XTAL % (5 * speed); u16 pr = (FC8150_FREQ_XTAL - r) / (5 * speed) - 1; #else /* USE_PM8941_XO_A2 */ u16 r = 0; u16 pr = 0; u16 fc8150_freq_xtal = 19200; if (use_pm8941_xo_a2_192000 == 1) { fc8150_freq_xtal = 19200; } else { fc8150_freq_xtal = 26000; } r = fc8150_freq_xtal % (5 * speed); pr = (fc8150_freq_xtal - r) / (5 * speed) - 1; #endif /* USE_PM8941_XO_A2 */ if(((5 * speed) >> 1) <= r) pr++; bbm_word_write(hDevice, BBM_I2C_PR_L, pr); bbm_write(hDevice, BBM_I2C_CTR, 0xc0); return BBM_OK; }
int tuner_select(HANDLE hDevice, u32 product, u32 band) { switch (product) { case FC8150_TUNER: tuner = &fc8150_tuner; tuner_addr = FC8150_TUNER_ADDR; tuner_band = band; break; #if 0 case FC8151_TUNER: tuner = &fc8151_tuner; tuner_addr = FC8150_TUNER_ADDR; tuner_band = band; break; #endif default: return BBM_E_TN_SELECT; } if (tuner == NULL) return BBM_E_TN_SELECT; if (tuner_i2c == FCI_BYPASS_TYPE) bbm_write(hDevice, BBM_RF_DEVID, tuner_addr); if (tuner->init(hDevice, tuner_band)) return BBM_E_TN_INIT; return BBM_OK; }
int tuner_set_freq(HANDLE hDevice, u32 freq) { int res = BBM_NOK; u16 tone = 2048; u8 tmp; // check whether tuner is selected or not if(tuner == NULL) { PRINTF(hDevice, "TUNER NULL ERROR \n"); return BBM_NOK; } // set frequency & sw reset res = tuner->set_freq(hDevice, tuner_band, freq); if(res != BBM_OK) { PRINTF(hDevice, "TUNER res ERROR \n"); return BBM_NOK; } #if (FC8050_FREQ_XTAL == 19200) || (FC8050_FREQ_XTAL == 27000) || (FC8050_FREQ_XTAL == 27120) || (FC8050_FREQ_XTAL == 38400) tmp = (u8)(33554432/freq); bbm_write(hDevice, 0xf1, tmp); #endif fc8050_reset(hDevice); return res; }
int bbm_com_write(HANDLE hDevice, u16 addr, u8 data) { int res; res = bbm_write(hDevice, addr, data); return res; }
int fc8150_i2c_deinit(HANDLE hDevice) { bbm_write(hDevice, BBM_TS_SEL, 0x00); PRINTF(NULL, "fc8150_i2c_deinit \n"); i2c_del_driver(&fc8150_i2c_driver); return BBM_OK; }
s32 bbm_com_write(HANDLE handle, DEVICEID devid, u16 addr, u8 data) { s32 res; res = bbm_write(handle, devid, addr, data); return res; }
fci_s32 bbm_com_write(HANDLE handle, fci_u16 addr, fci_u8 data) { fci_s32 res; res = bbm_write(handle, addr, data); return res; }
void fc8150_isr(HANDLE hDevice) { u8 bufIntStatus = 0; bbm_read(hDevice, BBM_BUF_STATUS, &bufIntStatus); if(bufIntStatus) { bbm_write(hDevice, BBM_BUF_STATUS, bufIntStatus); fc8150_data(hDevice, bufIntStatus); } bufIntStatus = 0; bbm_read(hDevice, BBM_BUF_STATUS, &bufIntStatus); if(bufIntStatus) { bbm_write(hDevice, BBM_BUF_STATUS, bufIntStatus); fc8150_data(hDevice, bufIntStatus); } }
int BBM_WRITE(HANDLE hDevice, u16 addr, u8 data) { int res; res = bbm_write(hDevice, addr, data); return res; }
int fc8050_data_deselect(HANDLE hDevice, fci_u8 subChId, fci_u8 svcChId) { if(fc8050_channel_deselect(hDevice, subChId, svcChId) != BBM_OK) { return BBM_NOK; } bbm_write(hDevice, BBM_BUF_CH0_SUBCH+svcChId, 0); return BBM_OK; }
static s32 fc8300_bb_write(HANDLE handle, DEVICEID devid, u16 addr, u8 data) { s32 res; res = bbm_write(handle, devid, addr, data); return res; }
fci_s32 fc8080_audio_select(HANDLE handle, fci_u8 subch_id, fci_u8 buf_id) { if (fc8080_channel_select(handle, subch_id, buf_id) != BBM_OK) return BBM_NOK; bbm_write(handle, BBM_BUF_CH0_SUBID + buf_id, 0x40 | subch_id); return BBM_OK; }
s32 fc8080_data_deselect(HANDLE handle, u8 subch_id, u8 buf_id) { if (fc8080_channel_deselect(handle, subch_id, buf_id) != BBM_OK) return BBM_NOK; bbm_write(handle, BBM_BUF_CH0_SUBID + buf_id, 0); return BBM_OK; }
int fc8050_audio_select(HANDLE hDevice, u8 subChId,u8 svcChId) { if(fc8050_channel_select(hDevice, subChId,svcChId) != BBM_OK) { return BBM_NOK; } bbm_write(hDevice, BBM_BUF_CH0_SUBCH+svcChId, 0x40 | subChId); return BBM_OK; }
void fc8150_isr(HANDLE hDevice) { u8 bufIntStatus = 0; bbm_read(hDevice, BBM_BUF_STATUS, &bufIntStatus); PRINTF(0, "(SJINU %s) bufIntStatus\%d\n", __func__, bufIntStatus); if (bufIntStatus) { bbm_write(hDevice, BBM_BUF_STATUS, bufIntStatus); fc8150_data(hDevice, bufIntStatus); } bufIntStatus = 0; bbm_read(hDevice, BBM_BUF_STATUS, &bufIntStatus); if (bufIntStatus) { bbm_write(hDevice, BBM_BUF_STATUS, bufIntStatus); fc8150_data(hDevice, bufIntStatus); } }
int fc8150_i2c_deinit(HANDLE hDevice) { bbm_write(hDevice, BBM_TS_SEL, 0x00); /* tsif_disable(); */ OAL_DELETE_SEMAPHORE(); return BBM_OK; }