コード例 #1
0
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);
}
コード例 #2
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
}
コード例 #3
0
ファイル: fc8080_bb.c プロジェクト: GAXUSXX/G935FGaXusKernel2
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;
}
コード例 #4
0
ファイル: fc8050_bb.c プロジェクト: CL0SeY/i957kernel
int fc8050_reset(HANDLE hDevice)
{
	bbm_write(hDevice, BBM_COM_RESET, 0xFE); 
	msWait(1);
	bbm_write(hDevice, BBM_COM_RESET, 0xFF);

	return BBM_OK;
}
コード例 #5
0
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;
}
コード例 #6
0
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);
}
コード例 #7
0
ファイル: fc8080_bb.c プロジェクト: GAXUSXX/G935FGaXusKernel2
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;
}
コード例 #8
0
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;
}
コード例 #9
0
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;
}
コード例 #10
0
ファイル: fc8050_bb.c プロジェクト: CL0SeY/i957kernel
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;
}
コード例 #11
0
ファイル: fc8080_bb.c プロジェクト: GAXUSXX/G935FGaXusKernel2
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;
}
コード例 #12
0
ファイル: fc8150_i2c.c プロジェクト: ARMP/ARMP-i9300
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;
}
コード例 #13
0
ファイル: fc8050_bb.c プロジェクト: CL0SeY/i957kernel
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;
}
コード例 #14
0
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;
}
コード例 #15
0
ファイル: fci_i2c.c プロジェクト: VanirAOSP/kernel_lge_f320k
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;
}
コード例 #16
0
ファイル: fci_tun.c プロジェクト: ARMP/ARMP-i9300
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;
}
コード例 #17
0
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;
}
コード例 #18
0
int bbm_com_write(HANDLE hDevice, u16 addr, u8 data)
{
    int res;

    res = bbm_write(hDevice, addr, data);

    return res;
}
コード例 #19
0
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;
}
コード例 #20
0
s32 bbm_com_write(HANDLE handle, DEVICEID devid, u16 addr, u8 data)
{
	s32 res;

	res = bbm_write(handle, devid, addr, data);

	return res;
}
コード例 #21
0
fci_s32 bbm_com_write(HANDLE handle, fci_u16 addr, fci_u8 data)
{
    fci_s32 res;

    res = bbm_write(handle, addr, data);

    return res;
}
コード例 #22
0
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);
	}
}
コード例 #23
0
ファイル: bbm.c プロジェクト: CL0SeY/i957kernel
int BBM_WRITE(HANDLE hDevice, u16 addr, u8 data)
{
	int res;

	res = bbm_write(hDevice, addr, data);

	return res;
}
コード例 #24
0
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;
}
コード例 #25
0
static s32 fc8300_bb_write(HANDLE handle, DEVICEID devid, u16 addr, u8 data)
{
	s32 res;

	res = bbm_write(handle, devid, addr, data);

	return res;
}
コード例 #26
0
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;
}
コード例 #27
0
ファイル: fc8080_bb.c プロジェクト: GAXUSXX/G935FGaXusKernel2
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;
}
コード例 #28
0
ファイル: fc8050_bb.c プロジェクト: CL0SeY/i957kernel
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;
}
コード例 #29
0
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);
	}
}
コード例 #30
0
ファイル: fc8150_i2c.c プロジェクト: ARMP/ARMP-i9300
int fc8150_i2c_deinit(HANDLE hDevice)
{
	bbm_write(hDevice, BBM_TS_SEL, 0x00);

	/* tsif_disable(); */

	OAL_DELETE_SEMAPHORE();

	return BBM_OK;
}