Skip to content

Commit

Permalink
docs: i2c: slave-interface: return errno when handle I2C_SLAVE_WRITE_…
Browse files Browse the repository at this point in the history
…REQUESTED

In case backend is not ready, ie: fail to wakeup or initialization, on
the returning of the I2C_SLAVE_WRITE_REQUESTED event, bus driver should
aware the backend status and might auto sending NACK on the next
incoming bytes for I2C master to retry.

Signed-off-by: Quan Nguyen <quan@os.amperecomputing.com>
Links:https://lore.kernel.org/linux-arm-kernel/556fa9e1-c54b-8370-4de7-c2d3ec7d6906@os.amperecomputing.com/
[wsa: made some wording more precise]
Signed-off-by: Wolfram Sang <wsa@kernel.org>
  • Loading branch information
Quan Nguyen authored and Wolfram Sang committed Sep 28, 2022
1 parent be18c5e commit 09a7bab
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions Documentation/i2c/slave-interface.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,15 @@ Event types:

'val': unused

'ret': always 0
'ret': 0 if the backend is ready, otherwise some errno

Another I2C master wants to write data to us. This event should be sent once
our own address and the write bit was detected. The data did not arrive yet, so
there is nothing to process or return. Wakeup or initialization probably needs
to be done, though.
there is nothing to process or return. After returning, the bus driver must
always ack the address phase. If 'ret' is zero, backend initialization or
wakeup is done and further data may be received. If 'ret' is an errno, the bus
driver should nack all incoming bytes until the next stop condition to enforce
a retry of the transmission.

* I2C_SLAVE_READ_REQUESTED (mandatory)

Expand Down

0 comments on commit 09a7bab

Please sign in to comment.