コード例 #1
0
/**

@brief   Get system register byte.

*/
int
tua9001_GetSysRegByte(
	TUNER_MODULE *pTuner,
	unsigned short RegAddr,
	unsigned char *pReadingByte
	)
{
	// Get demod system register byte.
//	if(RTK_SYS_Byte_Read(RegAddr, LEN_1_BYTE, pReadingByte) != TRUE)
//		goto error_status_get_system_registers;

	I2C_BRIDGE_MODULE *pI2cBridge;
	BASE_INTERFACE_MODULE *pBaseInterface;

	struct dvb_usb_device	*d;	

	// Get I2C bridge.
	pI2cBridge = pTuner->pI2cBridge;
	pBaseInterface = pTuner->pBaseInterface;	

	pBaseInterface->GetUserDefinedDataPointer(pBaseInterface, (void **)&d);	

	if ( read_usb_sys_char_bytes(d, RTD2832U_SYS, RegAddr, pReadingByte, LEN_1_BYTE) )
		goto error_status_get_system_registers;

	return FUNCTION_SUCCESS;


error_status_get_system_registers:
	return FUNCTION_ERROR;
}
コード例 #2
0
/**

@brief   Get register bytes with address.

*/
int
tua9001_GetRegBytesWithRegAddr(
	TUNER_MODULE *pTuner,
	unsigned char DeviceAddr,
	unsigned char RegAddr,
	unsigned char *pReadingBytes,
	unsigned char ByteNum
	)
{
	// Get tuner register byte.
	//if(rtl2832usb_ReadWithRegAddr(DeviceAddr, RegAddr, pReadingBytes, ByteNum) != FUNCTION_SUCCESS)
	//	goto error_status_get_tuner_registers_with_address;

	I2C_BRIDGE_MODULE *pI2cBridge;
	BASE_INTERFACE_MODULE *pBaseInterface;

	unsigned char TunerDeviceAddr;

	struct dvb_usb_device	*d;	


	// Get I2C bridge.
	pI2cBridge = pTuner->pI2cBridge;
	pBaseInterface = pTuner->pBaseInterface;	

	// Get tuner device address.
	pTuner->GetDeviceAddr(pTuner,&TunerDeviceAddr); 

	pBaseInterface->GetUserDefinedDataPointer(pBaseInterface, (void **)&d);	

	if( read_rtl2832_tuner_register( d, TunerDeviceAddr, RegAddr, pReadingBytes, ByteNum ) )
		goto error_status_get_tuner_registers_with_address;

	return FUNCTION_SUCCESS;


error_status_get_tuner_registers_with_address:
	return FUNCTION_ERROR;
}
コード例 #3
0
int tua9001i2cBusWrite (TUNER_MODULE *pTuner, unsigned char deviceAddress, unsigned char registerAddress, char *data,
				 unsigned int length)
{

#if 0
	BASE_INTERFACE_MODULE *pBaseInterface;

	unsigned char ByteNum;
	unsigned char WritingBytes[I2C_BUFFER_LEN];
	unsigned int i;


	// Get base interface.
	pBaseInterface = pTuner->pBaseInterface;


	/* I2C write data format */
	/* STA  device_address  ACK  register_address  ACK   H_Byte-Data ACK   L_Byte-Data  !ACK  STO */

	/* STA = start condition, ACK = Acknowledge, STO = stop condition                             */   
	/* *data  = pointer to data source   */
	/* length = number of bytes to write */

	// Determine byte number.
	ByteNum = length + LEN_1_BYTE;

	// Determine writing bytes.
	WritingBytes[0] = registerAddress;

	for(i = 0; i < length; i++)
		WritingBytes[LEN_1_BYTE + i] = data[i];


	// Send I2C writing command.
	if(pBaseInterface->I2cWrite(pBaseInterface, deviceAddress, WritingBytes, ByteNum) != FUNCTION_SUCCESS)
		goto error_status_set_tuner_registers;


	return TUA9001_TUNER_OK;


error_status_set_tuner_registers:
	return TUA9001_TUNER_ERR;
#endif
	BASE_INTERFACE_MODULE *pBaseInterface;

	unsigned char ByteNum;
	unsigned char WritingBytes[I2C_BUFFER_LEN];
	unsigned int i=0;

	I2C_BRIDGE_MODULE *pI2cBridge;

	struct dvb_usb_device	*d;

	// Get base interface.
	pBaseInterface = pTuner->pBaseInterface;

	// Get I2C bridge.
	pI2cBridge = pTuner->pI2cBridge;	

	// Get tuner device address.
	pBaseInterface->GetUserDefinedDataPointer(pBaseInterface, (void **)&d);	

	// Determine byte number.
	ByteNum = length;

	// Determine writing bytes.
	//WritingBytes[0] = registerAddress;

	for(i = 0; i < length; i++)
		WritingBytes[i] = data[i];

	// Send I2C writing command.
	if( write_rtl2832_tuner_register( d, deviceAddress, registerAddress, WritingBytes, ByteNum ) )
		goto error_status_set_tuner_registers;


	return TUA9001_TUNER_OK;


error_status_set_tuner_registers:
	return TUA9001_TUNER_ERR;

}