Beispiel #1
0
static void T3900_pull_data(void)
{
	INC_UINT16 ulRemainLength = INC_INTERRUPT_SIZE;
#if !(INC_INTERRUPT_SIZE <= 0xFFF)
	INC_UINT16 unIndex = 0;
	INC_UINT16 unSPISize = 0xFFF;
#endif

	memset(g_acStreamBuf, 0, sizeof(g_acStreamBuf));

#if (INC_INTERRUPT_SIZE <= 0xFFF)
	INC_CMD_READ_BURST(TDMB_I2C_ID80, APB_STREAM_BASE, g_acStreamBuf, ulRemainLength);
#else
	while (ulRemainLength) {
		if (ulRemainLength >= unSPISize) {
			INC_CMD_READ_BURST(TDMB_I2C_ID80, APB_STREAM_BASE, &g_acStreamBuf[unIndex*unSPISize], unSPISize);
			unIndex++;
			ulRemainLength -= unSPISize;
		} else {
			INC_CMD_READ_BURST(TDMB_I2C_ID80, APB_STREAM_BASE, &g_acStreamBuf[unIndex*unSPISize], ulRemainLength);
			ulRemainLength = 0;
		}
	}
#endif

	tdmb_store_data(g_acStreamBuf, INC_INTERRUPT_SIZE);
}
int8 tunerbb_drv_t39fx_get_fic(uint8* buffer, uint32* buffer_size/* bool crc_onoff*/)
{
		INC_UINT32	uiFicSize;
		INC_UINT8	ret;
		
		ret = INTERFACE_GET_FIC(TDMB_RFBB_DEV_ADDR,&uiFicSize);

		if(ret == INC_ERROR)
		{
			*buffer_size = 0;
			return INC_ERROR;
		}
		else if(ret == INC_SUCCESS)
		{
			if(uiFicSize > 384)
			{
				printk("tunerbb_drv_t39fx_get_fic uiFicSize = (%d) is over 384\n", uiFicSize);
				uiFicSize = 384;
			}	

			if(INC_CMD_READ_BURST(TDMB_RFBB_DEV_ADDR, APB_FIC_BASE, buffer, uiFicSize) == INC_SUCCESS)	{
				*buffer_size = uiFicSize;
				//printk("tunerbb_drv_T39fx_get_fic = %x %x %x %x %x\n", *buffer, *(buffer+1), *(buffer+2), *(buffer+3), *(buffer+4));
			}
		
		}
			
		return INC_SUCCESS; 	
}
Beispiel #3
0
// 인터럽트 서비스 루틴... // SPI Slave Mode or MPI Slave Mode
INC_UINT8 INTERFACE_ISR(INC_UINT8 ucI2CID, INC_UINT8* pBuff)
{
	INC_UINT16 unData;
	unData = INC_CMD_READ(ucI2CID, APB_MPI_BASE + 0x6);
	if(unData < INC_INTERRUPT_SIZE) return INC_ERROR;

	INC_CMD_READ_BURST(ucI2CID, APB_STREAM_BASE, pBuff, INC_INTERRUPT_SIZE);

	if((m_unIntCtrl & INC_INTERRUPT_LEVEL) && (!(m_unIntCtrl & INC_INTERRUPT_AUTOCLEAR_ENABLE)))
		INTERFACE_INT_CLEAR(ucI2CID, INC_MPI_INTERRUPT_ENABLE);

	return INC_SUCCESS;
}
static void t3900_pull_data(void)
{
	unsigned short remain_len = INC_INTERRUPT_SIZE;
#if !(INC_INTERRUPT_SIZE <= 0xFFF)
	unsigned short idx = 0;
	unsigned short spi_size = 0xFFF;
#endif

	memset(stream_buff, 0, sizeof(stream_buff));

#if (INC_INTERRUPT_SIZE <= 0xFFF)
	INC_CMD_READ_BURST(
		TDMB_I2C_ID80, APB_STREAM_BASE
		, stream_buff
		, remain_len);
#else
	while (remain_len) {
		if (remain_len >= spi_size) {
			INC_CMD_READ_BURST(
				TDMB_I2C_ID80, APB_STREAM_BASE
				, &stream_buff[idx*spi_size]
				, spi_size);
			idx++;
			remain_len -= spi_size;
		} else {
			INC_CMD_READ_BURST(
				TDMB_I2C_ID80, APB_STREAM_BASE
				, &stream_buff[idx*spi_size]
				, remain_len);
			remain_len = 0;
		}
	}
#endif

	tdmb_store_data(stream_buff, INC_INTERRUPT_SIZE);
}
int8 tunerbb_drv_t39fx_get_fic(uint8* buffer, uint32* buffer_size /*, boolean cr_onoff */)
{
	INC_UINT32 uiFicSize;

	if(buffer == NULL || buffer_size == NULL)
	{
		return INC_ERROR;
	}

	if(!(INC_CMD_READ(TDMB_RFBB_DEV_ADDR, APB_VTB_BASE+ 0x00) & 0x4000))
	{
		*buffer_size = 0;
		return INC_ERROR;
	}

	uiFicSize = (INC_UINT32)INC_CMD_READ(TDMB_RFBB_DEV_ADDR, APB_VTB_BASE+ 0x09) +1;
	if(uiFicSize == 1)
	{
		*buffer_size = 0;
		return INC_ERROR;
	}

	if(uiFicSize > 384)
	{
		printk("tunerbb_drv_t39fx_get_fic uiFicSize = (%d) is over 384\n", uiFicSize);
		uiFicSize = 384;
	}

	if(INC_CMD_READ_BURST(TDMB_RFBB_DEV_ADDR, APB_FIC_BASE, buffer, uiFicSize) == INC_SUCCESS)
	{
		*buffer_size = uiFicSize;
		printk("tunerbb_drv_t39fx_get_fic = %x %x %x %x %x\n", *buffer, *(buffer+1), *(buffer+2), *(buffer+3), *(buffer+4));
		return INC_SUCCESS;
	}

	return INC_ERROR;
}