static struct i2c_board_info sil_info={
I2C_BOARD_INFO (" sil9022 TX_SLAVE_ADDR),
};
The static struct i2c_board_info ddc_info={
I2C_BOARD_INFO (" sil9022_ddc EDID_ROM_ADDR),
Static int i2c_client_init (void)
{
Struct i2c_adapter * i2c_sil_adap;
//use i2c2
I2c_sil_adap=i2c_get_adapter (0);
If (NULL==i2c_sil_adap)
{
Printk (" find the i2c adapter fail. \ n ");
return -1;
}
Sil_client=i2c_new_device (i2c_sil_adap, & amp; Sil_info);
I2c_put_adapter (i2c_sil_adap);
Struct i2c_adapter * i2c_ddc_adap;
I2c_ddc_adap=i2c_get_adapter (0);
If (NULL==i2c_ddc_adap)
{
Printk (" find the i2c adapter fail. \ n ");
return -1;
}
Ddc_client=i2c_new_device (i2c_ddc_adap, & amp; Ddc_info);
I2c_put_adapter (i2c_ddc_adap);
return 0;
}
Iic similarly, speaking, reading and writing, with the use of iic controller way after this change, insmod sil9024. Ko
Print kernel device id is normal, 0 xb0, but the detection of hotplug event after running to the function for DDC, capturing the DDC bus access, but read EDID ROM iic address 0 xa0 will can't read the data, have been circulating printed
Hi_i2c_wait_rxfifo_notempty - & gt; 307:
Wait timeout! Auto_status: 0 xc0b00000
Hi_i2c_wait_rxfifo_notempty - & gt; 321:
The transmit error, int_raw_status: 0 x750!
Hi_i2c_wait_rxfifo_notempty - & gt; 323:
Tx_abrt_cause is 1.
Do you have to turn sil902x series driver can help me with? My access mechanism is there a problem?