//------------------------------------------------------------------------------
// Function: I2C_WriteByte
// Description:
//------------------------------------------------------------------------------
void I2C_WriteByte(byte deviceID, byte offset, byte value)
{
	int ret = 0;
	struct i2c_client* client_ptr = get_sii9234_client(deviceID);
	if(!client_ptr)
	{
		printk("[MHL]I2C_WriteByte error %x\n",deviceID); 
		return;	
	}
	
	EXIT_ON_CABLE_DISCONNECTION_V;
	if(deviceID == 0x72)
		ret = SII9234_i2c_write(client_ptr,offset,value);
	else if(deviceID == 0x7A)
		ret = SII9234_i2c_write(client_ptr,offset,value);
	else if(deviceID == 0x92)
		ret = SII9234_i2c_write(client_ptr,offset,value);
	else if(deviceID == 0xC8)
		ret = SII9234_i2c_write(client_ptr,offset,value);

	if (ret < 0)
	{
		printk("I2C_WriteByte: Device ID=0x%X, Err ret = %d \n", deviceID, ret);
	}


}
void I2C_WriteByte(byte deviceID, byte offset, byte value)
{
    if(deviceID == 0x72)
        SII9234_i2c_write(SII9234_i2c_client,offset,value);
    else if(deviceID == 0x7A)
        SII9234_i2c_write(SII9234A_i2c_client,offset,value);
    else if(deviceID == 0x92)
        SII9234_i2c_write(SII9234B_i2c_client,offset,value);
    else if(deviceID == 0xC8)
        SII9234_i2c_write(SII9234C_i2c_client,offset,value);
    else
        printk("[MHL]I2C_WriteByte error %x\n",deviceID);
}
Example #3
0
void sii9234_initial_registers_set(void)
{
	SII_DEV_DBG("");
/*	
	SII9234_i2c_write(SII9234_i2c_client, 0x05, 0x01);	// Set SW reset
	
	//Power up
	SII9234_i2c_write(SII9234A_i2c_client, 0x3D, 0x3F);	// Power up CVCC 1.2V core 
	SII9234_i2c_write(SII9234B_i2c_client, 0x11, 0x01);	// Enable TxPLL clock
	SII9234_i2c_write(SII9234B_i2c_client, 0x12, 0x15);	// Enable Tx clock path & Equalizer
	SII9234_i2c_write(SII9234_i2c_client, 0x08, 0x35);	// Power up TMDS TX core
	//Power up END
	
	//Analog PLL control
	SII9234_i2c_write(SII9234B_i2c_client, 0x17, 0x03); // PLL Calrefsel
	SII9234_i2c_write(SII9234B_i2c_client, 0x23, 0x6A); // Auto EQ
	SII9234_i2c_write(SII9234B_i2c_client, 0x24, 0xAA); // Auto EQ
	SII9234_i2c_write(SII9234B_i2c_client, 0x25, 0xCA); // Auto EQ
	SII9234_i2c_write(SII9234B_i2c_client, 0x26, 0xEA); // Auto EQ
	SII9234_i2c_write(SII9234B_i2c_client, 0x4C, 0xA0); // Manual zone control
	SII9234_i2c_write(SII9234B_i2c_client, 0x4D, 0x00); // Pll mode value 		  
	SII9234_i2c_write(SII9234_i2c_client, 0x80, 0x14); // Enable Rx PLL clock
	SII9234_i2c_write(SII9234B_i2c_client, 0x45, 0x44); // Rx PLL BW value from I2C
	SII9234_i2c_write(SII9234_i2c_client, 0xA1, 0xFC); // Tx PLL full BW ~ 400KHz
	SII9234_i2c_write(SII9234_i2c_client, 0xA3, 0xFA); // Tx amplitude CLK: 500mV, Data: 800mV
	//Analog PLL control END
	
	//CBUS & Discovery
	SII9234_i2c_write(SII9234_i2c_client, 0x90, 0x17); // Enable CBUS discovery
	SII9234_i2c_write(SII9234_i2c_client, 0x94, 0x66); // 1.8V CBUS VTH & RGND threshold
	SII9234_i2c_write(SII9234_i2c_client, 0xA5, 0x1C); // RGND hysterisis
	SII9234_i2c_write(SII9234_i2c_client, 0x95, 0x21); // RGND & single discovery attempt
	SII9234_i2c_write(SII9234_i2c_client, 0x96, 0x22); // use 1K and 2K setting
	SII9234_i2c_write(SII9234_i2c_client, 0x92, 0x86); // MHL CBUS discovery
	//SII9234_i2c_write (0xC8, 0x07, 0xF6); // Increase DDC translation layer timer
	//SII9234_i2c_write (0xC8, 0x40, 0x02); // CBUS drive strength to 10 (0x2 value)
	//CBUS & Discovery END
	
	SII9234_i2c_write(SII9234_i2c_client, 0x0D, 0x1C); // Enable HDMI Trans-code mode & DDC port
	SII9234_i2c_write(SII9234_i2c_client, 0x05, 0x04); // Bring out of reset & Enable Auto Soft reset on SCDT = 0
	
	SII9234_i2c_write(SII9234_i2c_client, 0x74, 0xFF); // Clear interrupts
	SII9234_i2c_write(SII9234_i2c_client, 0x78, 0x00); // Disable Interrupts
	
	SII9234_i2c_write(SII9234_i2c_client, 0xC7, 0x00); // HW TPI mode
	
	SII9234_i2c_write(SII9234_i2c_client, 0x1A, 0x00); // Enable TMDS output
	SII9234_i2c_write(SII9234_i2c_client, 0x1E, 0x00); // Put device in Active mode
	
	SII9234_i2c_write(SII9234_i2c_client, 0x3C, 0x03); // Interrupt Status Setup RSEN and HPD

	
*/	
	//u8 data;
	
    // Power Up
	SII9234_i2c_write(SII9234A_i2c_client, 0x3D, 0x3F);			// Power up CVCC 1.2V core
	SII9234_i2c_write(SII9234B_i2c_client, 0x11, 0x01);			// Enable TxPLL Clock
	SII9234_i2c_write(SII9234B_i2c_client, 0x12, 0x15);			// Enable Tx Clock Path & Equalizer
	SII9234_i2c_write(SII9234_i2c_client, 0x08, 0x35);			// Power Up TMDS Tx Core
	
	SII9234_i2c_write(SII9234B_i2c_client, 0x17, 0x03);
	SII9234_i2c_write(SII9234B_i2c_client, 0x1A, 0x20);
	SII9234_i2c_write(SII9234B_i2c_client, 0x22, 0x8A);
	SII9234_i2c_write(SII9234B_i2c_client, 0x23, 0x6A);
	SII9234_i2c_write(SII9234B_i2c_client, 0x24, 0xAA);
	SII9234_i2c_write(SII9234B_i2c_client, 0x29, 0xCA);
	SII9234_i2c_write(SII9234B_i2c_client, 0x26, 0xEA);
	SII9234_i2c_write(SII9234B_i2c_client, 0x4C, 0xA0);
	SII9234_i2c_write(SII9234B_i2c_client, 0x4D, 0x00);
	SII9234_i2c_write(SII9234_i2c_client, 0x80, 0x14);			// Enable Rx PLL Clock Value
	SII9234_i2c_write(SII9234B_i2c_client, 0x45, 0x44);
	SII9234_i2c_write(SII9234B_i2c_client, 0x31, 0x0A);
	//SII9234_i2c_write(SII9234_i2c_client, 0xA0, 0xD0);




	
		
	SII9234_i2c_write(SII9234_i2c_client, 0xA1, 0xFC);
	SII9234_i2c_write(SII9234_i2c_client, 0xA3, 0xFA);
	SII9234_i2c_write(SII9234_i2c_client, 0x2B, 0x01);
	SII9234_i2c_write(SII9234_i2c_client, 0x91, 0xE5);
	SII9234_i2c_write(SII9234_i2c_client, 0xA5, 0x00);
	SII9234_i2c_write(SII9234_i2c_client, 0x90, 0x27);			// Enable CBUS discovery
	SII9234_i2c_write(SII9234_i2c_client, 0x05, 0x04);
	SII9234_i2c_write(SII9234_i2c_client, 0x0D, 0x1C); 			// HDMI Transcode mode enable


/*

	SII9234_i2c_read(SII9234A_i2c_client, 0x3D, &data);		
	printk("SII9234_i2c_read  A 0x3D: 0x%02x\n", data);
	SII9234_i2c_read(SII9234B_i2c_client, 0x11, &data);		
	printk("SII9234_i2c_read  B 0x11: 0x%02x\n", data);
	SII9234_i2c_read(SII9234B_i2c_client, 0x12, &data);		
	printk("SII9234_i2c_read  B 0x12: 0x%02x\n", data);

	SII9234_i2c_read(SII9234_i2c_client, 0x08, &data);		
	printk("SII9234_i2c_read  0x08: 0x%02x\n", data);
	SII9234_i2c_read(SII9234_i2c_client, 0x80, &data);		
	printk("SII9234_i2c_read  0x80: 0x%02x\n", data);
	SII9234_i2c_read(SII9234_i2c_client, 0x90, &data);		
	printk("SII9234_i2c_read  0x90: 0x%02x\n", data);
	SII9234_i2c_read(SII9234_i2c_client, 0x0D, &data);		
	printk("SII9234_i2c_read  0x0D: 0x%02x\n", data);

*/
}
Example #4
0
void WriteByteTPI (u8 Offset, u8 Data) 
{
	SII9234_i2c_write(SII9234_i2c_client, Offset, Data);
}