]> www.infradead.org Git - users/jedix/linux-maple.git/commit
i2c: npcm: correct the read/write operation procedure
authorTyrone Ting <kfting@nuvoton.com>
Tue, 1 Oct 2024 06:28:50 +0000 (14:28 +0800)
committerAndi Shyti <andi.shyti@kernel.org>
Sun, 17 Nov 2024 10:58:13 +0000 (11:58 +0100)
commite365422cef1ca2c964e25d26536120aab17991e2
treeeae6de20a261892271d10aa8a42e6a4c1e5da1db
parenta5089cd23b10c5c861bf5834170c75f9b4c36e08
i2c: npcm: correct the read/write operation procedure

Originally the driver uses the XMIT bit in SMBnST register to decide
the upcoming i2c transaction. If XMIT bit is 1, then it will be an i2c
write operation. If it's 0, then a read operation will be executed.

In slave mode the XMIT bit can simply be used directly to set the state.
XMIT bit can be used as an indication to the current state of the state
machine during slave operation. (meaning XMIT = 1 during writing and
XMIT = 0 during reading).

In master operation XMIT is valid only if there are no bus errors.
For example: in a multi master where the same module is switching from
master to slave at runtime, and there are collisions, the XMIT bit
cannot be trusted.

However the maser already "knows" what the bus state is, so this bit
is not needed and the driver can just track what it is currently doing.

Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
Reviewed-by: Tali Perry <tali.perry1@gmail.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
drivers/i2c/busses/i2c-npcm7xx.c