Document the i2c-slave-mqueue binding by adding
descriptor, required properties, and example.
Cc: Rob Herring <[email protected]>
Cc: Mark Rutland <[email protected]>
Cc: Wolfram Sang <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Eduardo Valentin <[email protected]>
---
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.
+
+This I2C slave mqueue (message queue) is used to receive and queue
+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.
+
+Links
+----
+`Intelligent Platform Management Bus
+Communications Protocol Specification
+<https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmp-spec-v1.0.pdf>`_
+
+`Management Component Transport Protocol (MCTP)
+SMBus/I2C Transport Binding Specification
+<https://www.dmtf.org/sites/default/files/standards/documents/DSP0237_1.1.0.pdf>`_
+
+Required Properties:
+- compatible : should be "i2c-slave-mqueue"
+- reg : slave address
+
+Example:
+
+i2c {
+ slave_mqueue: i2c-slave-mqueue {
+ compatible = "i2c-slave-mqueue";
+ reg = <0x10>;
+ };
+};
--
2.21.0
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 <[email protected]>
> Cc: Mark Rutland <[email protected]>
> Cc: Wolfram Sang <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: Eduardo Valentin <[email protected]>
> ---
>
> 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
controller?
> +
> +This I2C slave mqueue (message queue) is used to receive and queue
> +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.
> +
> +Links
> +----
> +`Intelligent Platform Management Bus
> +Communications Protocol Specification
> +<https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmp-spec-v1.0.pdf>`_
> +
> +`Management Component Transport Protocol (MCTP)
> +SMBus/I2C Transport Binding Specification
> +<https://www.dmtf.org/sites/default/files/standards/documents/DSP0237_1.1.0.pdf>`_
> +
> +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
> +
> +Example:
> +
> +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>;
> + };
> +};
> --
> 2.21.0
>
?? 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 <[email protected]>
>> Cc: Mark Rutland <[email protected]>
>> Cc: Wolfram Sang <[email protected]>
>> Cc: [email protected]
>> Cc: [email protected]
>> Cc: [email protected]
>> Signed-off-by: Eduardo Valentin <[email protected]>
>> ---
>>
>> 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
> controller?
>
>> +
>> +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.
>> +
>> +Links
>> +----
>> +`Intelligent Platform Management Bus
>> +Communications Protocol Specification
>> +<https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmp-spec-v1.0.pdf>`_
>> +
>> +`Management Component Transport Protocol (MCTP)
>> +SMBus/I2C Transport Binding Specification
>> +<https://www.dmtf.org/sites/default/files/standards/documents/DSP0237_1.1.0.pdf>`_
>> +
>> +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
>> +
>> +Example:
>> +
>> +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:
https://elinux.org/images/f/f6/ELCE15-WolframSang-ShinyNewI2CSlaveFramework.pdf
Example: reg = <(I2C_OWN_SLAVE_ADDRESS | 0x42)>;
>> + };
>> +};
>> --
>> 2.21.0
>>
> Looks like the slave reg missed the key value bit:
>
>
> https://elinux.org/images/f/f6/ELCE15-WolframSang-ShinyNewI2CSlaveFramework.pdf
>
> Example: reg = <(I2C_OWN_SLAVE_ADDRESS | 0x42)>;
Yes.
> > +===============================================
> > +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
> controller?
Yes.
> > +This I2C slave mqueue (message queue) is used to receive and queue
> > +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.
> > +
> > +Links
> > +----
> > +`Intelligent Platform Management Bus
> > +Communications Protocol Specification
> > +<https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmp-spec-v1.0.pdf>`_
> > +
> > +`Management Component Transport Protocol (MCTP)
> > +SMBus/I2C Transport Binding Specification
> > +<https://www.dmtf.org/sites/default/files/standards/documents/DSP0237_1.1.0.pdf>`_
> > +
> > +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
> > +
> > +Example:
> > +
> > +i2c {
>
> Would there be other slaves?
>
> The common binding states 'multi-master' property should be present.
>
> I need a more complete example.
Ack. Either that or a bit more explanation, e.g. if sending
packets is planned from userspace?