Re: [PATCHv7 1/3] dt-bindings: i2c: document bindings for i2c-slave-mqueue

From: Wang, Haiyue
Date: Tue Jun 11 2019 - 22:51:24 EST

在 2019-06-12 07:14, Rob Herring 写道:
On Wed, Jun 05, 2019 at 09:46:49AM -0700, Eduardo Valentin wrote:
Document the i2c-slave-mqueue binding by adding
descriptor, required properties, and example.

Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx>
Cc: linux-i2c@xxxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Eduardo Valentin <eduval@xxxxxxxxxx>

Changes from V6 to V7:
- none

.../bindings/i2c/i2c-slave-mqueue.txt | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-slave-mqueue.txt

diff --git a/Documentation/devicetree/bindings/i2c/i2c-slave-mqueue.txt b/Documentation/devicetree/bindings/i2c/i2c-slave-mqueue.txt
new file mode 100644
index 000000000000..eb1881a4fc0e
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-slave-mqueue.txt
@@ -0,0 +1,34 @@
+Device Tree for I2C slave message queue backend
+Some protocols over I2C/SMBus are designed for bi-directional transferring
+messages by using I2C Master Write protocol. This requires that both sides
+of the communication have slave addresses.
So the address 0x10 in the example below is the address of the I2C

+This I2C slave mqueue (message queue) is used to receive and queue
Hi Rob, This is mqueue comes from, not from specs directly.
+messages from the remote i2c intelligent device; and it will add the target
+slave address (with R/W# bit is always 0) into the message at the first byte.
+`Intelligent Platform Management Bus
+Communications Protocol Specification
+`Management Component Transport Protocol (MCTP)
+SMBus/I2C Transport Binding Specification
+Required Properties:
+- compatible : should be "i2c-slave-mqueue"
There is no mention of mqueue (or queue) in these specs. Where does that
come from? Perhaps something more closely matching the protocol would be
better name.

+- reg : slave address
+i2c {
Would there be other slaves?

The common binding states 'multi-master' property should be present.

I need a more complete example.

+ slave_mqueue: i2c-slave-mqueue {
+ compatible = "i2c-slave-mqueue";
+ reg = <0x10>;

Hi Eduardo,

Looks like the slave reg missed the key value bit:

Example: reg = <(I2C_OWN_SLAVE_ADDRESS | 0x42)>;

+ };