From: Matt Johnston <matt@codeconstruct.com.au>
To: devicetree@vger.kernel.org
Cc: Wolfram Sang <wsa@kernel.org>,
Jeremy Kerr <jk@codeconstruct.com.au>,
Matt Johnston <matt@codeconstruct.com.au>
Subject: [RFC PATCH v2 2/2] dt-bindings: net: mctp-i2c-generic: support muxes
Date: Wed, 11 Aug 2021 11:43:45 +0800 [thread overview]
Message-ID: <20210811034345.2424442-3-matt@codeconstruct.com.au> (raw)
In-Reply-To: <20210811034345.2424442-1-matt@codeconstruct.com.au>
Allow a single mctp-i2c-generic controller node to specify multiple
subordinate I2C mux busses that are attached.
The 'bus-attach' property defines which I2C busses should provide an
MCTP endpoint.
This allows a hardware I2C controller at the top of a mux topology to
handle incoming messages (as an I2C slave) for subordinate I2C mux busses.
Otherwise I2C mux busses are not be able to act as an I2C slave which is
required by the MCTP I2C transport.
Signed-off-by: Matt Johnston <matt@codeconstruct.com.au>
---
.../bindings/net/mctp-i2c-generic.yaml | 53 +++++++++++++++++--
1 file changed, 48 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/mctp-i2c-generic.yaml b/Documentation/devicetree/bindings/net/mctp-i2c-generic.yaml
index 6092f7e8dc07..e4d742452078 100644
--- a/Documentation/devicetree/bindings/net/mctp-i2c-generic.yaml
+++ b/Documentation/devicetree/bindings/net/mctp-i2c-generic.yaml
@@ -10,11 +10,14 @@ maintainers:
- Matt Johnston <matt@codeconstruct.com.au>
description:
- The generic MCTP I2C binding defines an MCTP endpoint on an existing I2C
- adapter. MCTP I2C is specified by DMTF DSP0237.
+ An mctp-i2c-generic controller defines an MCTP endpoint on an existing I2C
+ controller. MCTP I2C is specified by DMTF DSP0237.
- An mctp-i2c-generic device must be attached to a hardware bus adapter
- which supports slave functionality.
+ An mctp-i2c-generic controller must be attached to an I2C controller
+ which supports slave functionality. Subordinate busses in a mux topology
+ can be attached to the same mctp-i2c-generic controller with the bus-attach
+ property. These will be presented to the host system as separate MCTP I2C
+ instances.
properties:
compatible:
@@ -26,6 +29,16 @@ properties:
7 bit I2C address of the endpoint.
I2C_OWN_SLAVE_ADDRESS flag must be set (described in i2c.txt)
+ bus-attach:
+ $ref: "/schemas/types.yaml#/definitions/phandle-array"
+ description: |
+ List of phandles of I2C busses to attach to. All busses must
+ be in the same mux topology as the node's parent I2C controller.
+
+ If no bus-attach property is specified then only the direct parent
+ I2C bus is attached. Otherwise to include a direct parent bus it
+ must be included in the bus-attach list if needed.
+
additionalProperties: false
required:
@@ -35,12 +48,42 @@ required:
examples:
- |
#include <dt-bindings/i2c/i2c.h>
- i2c {
+
+ // simple attaching to a root adapter i2c0
+ i2c0: i2cbus0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ mctp@50 {
+ compatible = "mctp-i2c";
+ reg = <(0x50 | I2C_OWN_SLAVE_ADDRESS)>;
+ };
+ };
+
+ // attaching to a root adapter i2c5 and a child mux bus i2c14
+ i2c5: i2cbus5 {
#address-cells = <1>;
#size-cells = <0>;
mctp@50 {
compatible = "mctp-i2c";
reg = <(0x50 | I2C_OWN_SLAVE_ADDRESS)>;
+ attach-bus = <&i2c5 &i2c14>;
};
};
+
+ i2cmux0 {
+ compatible = "i2c-mux";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ i2c-parent = <&i2c5>;
+ mux-controls = <&mux>;
+
+ i2c14: i2c@0 {
+ reg = <0>;
+ };
+
+ i2c15: i2c@1 {
+ reg = <1>;
+ };
+ };
--
2.30.2
next prev parent reply other threads:[~2021-08-11 3:43 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-11 3:43 [RFC PATCH v2 0/2] MCTP I2C devicetree binding Matt Johnston
2021-08-11 3:43 ` [RFC PATCH v2 1/2] dt-bindings: net: New binding for mctp-i2c-generic Matt Johnston
2021-08-12 12:19 ` Rob Herring
2021-08-11 3:43 ` Matt Johnston [this message]
2021-08-13 16:33 ` [RFC PATCH v2 0/2] MCTP I2C devicetree binding Rob Herring
2021-08-16 7:32 ` Matt Johnston
2021-08-17 21:06 ` Rob Herring
2021-08-18 4:19 ` Matt Johnston
2021-08-20 19:25 ` Rob Herring
2021-08-23 7:51 ` Jeremy Kerr
2021-08-23 16:16 ` Rob Herring
2021-08-26 2:27 ` Matt Johnston
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210811034345.2424442-3-matt@codeconstruct.com.au \
--to=matt@codeconstruct.com.au \
--cc=devicetree@vger.kernel.org \
--cc=jk@codeconstruct.com.au \
--cc=wsa@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).