i2c: sis630: clear sticky bits
The sticky bits must be cleared at the end of the transaction by writing a 1 to all fields. Datasheet: SMBus Status (SMB_STS) The following registers are all sticky bits and only can be cleared by writing a one to their corresponding fields. Signed-off-by: Amaury Decrême <amaury.decreme@gmail.com> Reviewed-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
This commit is contained in:
parent
974d6a3797
commit
aa9e7a39c5
|
@ -213,10 +213,8 @@ static int sis630_transaction_wait(struct i2c_adapter *adap, int size)
|
|||
|
||||
static void sis630_transaction_end(struct i2c_adapter *adap, u8 oldclock)
|
||||
{
|
||||
int temp = 0;
|
||||
|
||||
/* clear all status "sticky" bits */
|
||||
sis630_write(SMB_STS, temp);
|
||||
sis630_write(SMB_STS, 0xFF);
|
||||
|
||||
dev_dbg(&adap->dev, "SMB_CNT before clock restore 0x%02x\n", sis630_read(SMB_CNT));
|
||||
|
||||
|
|
Loading…
Reference in New Issue