From: Rob Herring <robh@kernel.org>
To: Prashant Malani <pmalani@chromium.org>
Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
bleung@chromium.org, swboyd@chromium.org,
heikki.krogerus@linux.intel.com,
"Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Nícolas F . R . A . Prado" <nfraprado@collabora.com>,
"Allen Chen" <allen.chen@ite.com.tw>,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Daniel Vetter" <daniel@ffwll.ch>,
"David Airlie" <airlied@linux.ie>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@vger.kernel.org>,
"open list:DRM DRIVERS" <dri-devel@lists.freedesktop.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Hsin-Yi Wang" <hsinyi@chromium.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"José Expósito" <jose.exposito89@gmail.com>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Maxime Ripard" <maxime@cerno.tech>,
"Neil Armstrong" <narmstrong@baylibre.com>,
"Pin-Yen Lin" <treapking@chromium.org>,
"Robert Foss" <robert.foss@linaro.org>,
"Sam Ravnborg" <sam@ravnborg.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Xin Ji" <xji@analogixsemi.com>
Subject: Re: [PATCH v5 1/9] dt-bindings: usb: Add Type-C switch binding
Date: Tue, 28 Jun 2022 12:23:36 -0600 [thread overview]
Message-ID: <20220628182336.GA711518-robh@kernel.org> (raw)
In-Reply-To: <CACeCKackdbDZrk5fk7qyMwSdTdzyTS=m1vHPFnQOj672W=2nOA@mail.gmail.com>
On Mon, Jun 27, 2022 at 02:43:39PM -0700, Prashant Malani wrote:
> Hello Rob,
>
> On Mon, Jun 27, 2022 at 2:04 PM Rob Herring <robh@kernel.org> wrote:
> >
> > On Wed, Jun 22, 2022 at 05:34:30PM +0000, Prashant Malani wrote:
> > > Introduce a binding which represents a component that can control the
> > > routing of USB Type-C data lines as well as address data line
> > > orientation (based on CC lines' orientation).
> > >
> > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> > > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> > > Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> > > Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> > > Signed-off-by: Prashant Malani <pmalani@chromium.org>
> > > ---
> > >
> > > Changes since v4:
> > > - Added Reviewed-by tags.
> > > - Patch moved to 1/9 position (since Patch v4 1/7 and 2/7 were
> > > applied to usb-next)
> > >
> > > Changes since v3:
> > > - No changes.
> > >
> > > Changes since v2:
> > > - Added Reviewed-by and Tested-by tags.
> > >
> > > Changes since v1:
> > > - Removed "items" from compatible.
> > > - Fixed indentation in example.
> > >
> > > .../devicetree/bindings/usb/typec-switch.yaml | 74 +++++++++++++++++++
> > > 1 file changed, 74 insertions(+)
> > > create mode 100644 Documentation/devicetree/bindings/usb/typec-switch.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/usb/typec-switch.yaml b/Documentation/devicetree/bindings/usb/typec-switch.yaml
> > > new file mode 100644
> > > index 000000000000..78b0190c8543
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/usb/typec-switch.yaml
> > > @@ -0,0 +1,74 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/usb/typec-switch.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: USB Type-C Switch
> > > +
> > > +maintainers:
> > > + - Prashant Malani <pmalani@chromium.org>
> > > +
> > > +description:
> > > + A USB Type-C switch represents a component which routes USB Type-C data
> > > + lines to various protocol host controllers (e.g USB, VESA DisplayPort,
> > > + Thunderbolt etc.) depending on which mode the Type-C port, port partner
> > > + and cable are operating in. It can also modify lane routing based on
> > > + the orientation of a connected Type-C peripheral.
> > > +
> > > +properties:
> > > + compatible:
> > > + const: typec-switch
> > > +
> > > + mode-switch:
> > > + type: boolean
> > > + description: Specify that this switch can handle alternate mode switching.
> > > +
> > > + orientation-switch:
> > > + type: boolean
> > > + description: Specify that this switch can handle orientation switching.
> > > +
> > > + ports:
> > > + $ref: /schemas/graph.yaml#/properties/ports
> > > + description: OF graph binding modelling data lines to the Type-C switch.
> > > +
> > > + properties:
> > > + port@0:
> > > + $ref: /schemas/graph.yaml#/properties/port
> > > + description: Link between the switch and a Type-C connector.
> > > +
> > > + required:
> > > + - port@0
> > > +
> > > +required:
> > > + - compatible
> > > + - ports
> > > +
> > > +anyOf:
> > > + - required:
> > > + - mode-switch
> > > + - required:
> > > + - orientation-switch
> > > +
> > > +additionalProperties: true
> > > +
> > > +examples:
> > > + - |
> > > + drm-bridge {
> > > + usb-switch {
> > > + compatible = "typec-switch";
> >
> > Unless this child is supposed to represent what the parent output is
> > connected to, this is just wrong as, at least for the it6505 chip, it
> > doesn't know anything about Type-C functionality. The bridge is
> > just a protocol converter AFAICT.
>
> I'll let Pin-Yen comment on the specifics of the it6505 chip.
We're all waiting...
> > If the child node represents what the output is connected to (like a
> > bus), then yes that is a pattern we have used.
>
> For the anx7625 case, the child node does represent what the output is connected
> to (the usb-c-connector via the switch). Does that not qualify? Or do you mean
> the child node should be a usb-c-connector itself?
>
> > For example, a panel
> > represented as child node of a display controller. However, that only
> > works for simple cases, and is a pattern we have gotten away from in
> > favor of using the graph binding.
>
> The child node will still use a OF graph binding to connect to the
> usb-c-connector.
> Is that insufficient to consider a child node usage here?
> By "using the graph binding", do you mean "only use the top-level ports" ?
> I'm trying to clarify this, so that it will inform future versions and patches.
What I want to see is block diagrams of possible h/w with different
scenarios and then what the binding looks like in those cases. The
switching/muxing could be in the SoC, a bridge chip, a Type C
controller, a standalone mux chip, or ????. If you want a somewhat
genericish binding, then you need to consider all of these.
I don't really have the b/w to work thru all this (and switch/mux is
just one part of dealing with Type-C). This is just one of about a
hundred patches I get to review a week.
Rob
WARNING: multiple messages have this Message-ID (diff)
From: Rob Herring <robh@kernel.org>
To: Prashant Malani <pmalani@chromium.org>
Cc: heikki.krogerus@linux.intel.com,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Neil Armstrong" <narmstrong@baylibre.com>,
"David Airlie" <airlied@linux.ie>,
"open list:DRM DRIVERS" <dri-devel@lists.freedesktop.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Sam Ravnborg" <sam@ravnborg.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@vger.kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Nícolas F . R . A . Prado" <nfraprado@collabora.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Allen Chen" <allen.chen@ite.com.tw>,
swboyd@chromium.org, "Pin-Yen Lin" <treapking@chromium.org>,
"Maxime Ripard" <maxime@cerno.tech>,
"Hsin-Yi Wang" <hsinyi@chromium.org>,
"Xin Ji" <xji@analogixsemi.com>,
"AngeloGioacchino Del Regno"
<angelogioacchino.delregno@collabora.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
"Robert Foss" <robert.foss@linaro.org>,
"Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
"José Expósito" <jose.exposito89@gmail.com>
Subject: Re: [PATCH v5 1/9] dt-bindings: usb: Add Type-C switch binding
Date: Tue, 28 Jun 2022 12:23:36 -0600 [thread overview]
Message-ID: <20220628182336.GA711518-robh@kernel.org> (raw)
In-Reply-To: <CACeCKackdbDZrk5fk7qyMwSdTdzyTS=m1vHPFnQOj672W=2nOA@mail.gmail.com>
On Mon, Jun 27, 2022 at 02:43:39PM -0700, Prashant Malani wrote:
> Hello Rob,
>
> On Mon, Jun 27, 2022 at 2:04 PM Rob Herring <robh@kernel.org> wrote:
> >
> > On Wed, Jun 22, 2022 at 05:34:30PM +0000, Prashant Malani wrote:
> > > Introduce a binding which represents a component that can control the
> > > routing of USB Type-C data lines as well as address data line
> > > orientation (based on CC lines' orientation).
> > >
> > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> > > Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> > > Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> > > Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> > > Signed-off-by: Prashant Malani <pmalani@chromium.org>
> > > ---
> > >
> > > Changes since v4:
> > > - Added Reviewed-by tags.
> > > - Patch moved to 1/9 position (since Patch v4 1/7 and 2/7 were
> > > applied to usb-next)
> > >
> > > Changes since v3:
> > > - No changes.
> > >
> > > Changes since v2:
> > > - Added Reviewed-by and Tested-by tags.
> > >
> > > Changes since v1:
> > > - Removed "items" from compatible.
> > > - Fixed indentation in example.
> > >
> > > .../devicetree/bindings/usb/typec-switch.yaml | 74 +++++++++++++++++++
> > > 1 file changed, 74 insertions(+)
> > > create mode 100644 Documentation/devicetree/bindings/usb/typec-switch.yaml
> > >
> > > diff --git a/Documentation/devicetree/bindings/usb/typec-switch.yaml b/Documentation/devicetree/bindings/usb/typec-switch.yaml
> > > new file mode 100644
> > > index 000000000000..78b0190c8543
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/usb/typec-switch.yaml
> > > @@ -0,0 +1,74 @@
> > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/usb/typec-switch.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: USB Type-C Switch
> > > +
> > > +maintainers:
> > > + - Prashant Malani <pmalani@chromium.org>
> > > +
> > > +description:
> > > + A USB Type-C switch represents a component which routes USB Type-C data
> > > + lines to various protocol host controllers (e.g USB, VESA DisplayPort,
> > > + Thunderbolt etc.) depending on which mode the Type-C port, port partner
> > > + and cable are operating in. It can also modify lane routing based on
> > > + the orientation of a connected Type-C peripheral.
> > > +
> > > +properties:
> > > + compatible:
> > > + const: typec-switch
> > > +
> > > + mode-switch:
> > > + type: boolean
> > > + description: Specify that this switch can handle alternate mode switching.
> > > +
> > > + orientation-switch:
> > > + type: boolean
> > > + description: Specify that this switch can handle orientation switching.
> > > +
> > > + ports:
> > > + $ref: /schemas/graph.yaml#/properties/ports
> > > + description: OF graph binding modelling data lines to the Type-C switch.
> > > +
> > > + properties:
> > > + port@0:
> > > + $ref: /schemas/graph.yaml#/properties/port
> > > + description: Link between the switch and a Type-C connector.
> > > +
> > > + required:
> > > + - port@0
> > > +
> > > +required:
> > > + - compatible
> > > + - ports
> > > +
> > > +anyOf:
> > > + - required:
> > > + - mode-switch
> > > + - required:
> > > + - orientation-switch
> > > +
> > > +additionalProperties: true
> > > +
> > > +examples:
> > > + - |
> > > + drm-bridge {
> > > + usb-switch {
> > > + compatible = "typec-switch";
> >
> > Unless this child is supposed to represent what the parent output is
> > connected to, this is just wrong as, at least for the it6505 chip, it
> > doesn't know anything about Type-C functionality. The bridge is
> > just a protocol converter AFAICT.
>
> I'll let Pin-Yen comment on the specifics of the it6505 chip.
We're all waiting...
> > If the child node represents what the output is connected to (like a
> > bus), then yes that is a pattern we have used.
>
> For the anx7625 case, the child node does represent what the output is connected
> to (the usb-c-connector via the switch). Does that not qualify? Or do you mean
> the child node should be a usb-c-connector itself?
>
> > For example, a panel
> > represented as child node of a display controller. However, that only
> > works for simple cases, and is a pattern we have gotten away from in
> > favor of using the graph binding.
>
> The child node will still use a OF graph binding to connect to the
> usb-c-connector.
> Is that insufficient to consider a child node usage here?
> By "using the graph binding", do you mean "only use the top-level ports" ?
> I'm trying to clarify this, so that it will inform future versions and patches.
What I want to see is block diagrams of possible h/w with different
scenarios and then what the binding looks like in those cases. The
switching/muxing could be in the SoC, a bridge chip, a Type C
controller, a standalone mux chip, or ????. If you want a somewhat
genericish binding, then you need to consider all of these.
I don't really have the b/w to work thru all this (and switch/mux is
just one part of dealing with Type-C). This is just one of about a
hundred patches I get to review a week.
Rob
next prev parent reply other threads:[~2022-06-28 18:23 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-22 17:34 [PATCH v5 0/9] usb: typec: Introduce typec-switch binding Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-22 17:34 ` [PATCH v5 1/9] dt-bindings: usb: Add Type-C switch binding Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-23 18:30 ` Stephen Boyd
2022-06-23 18:30 ` Stephen Boyd
2022-06-23 19:08 ` Prashant Malani
2022-06-23 19:08 ` Prashant Malani
2022-06-23 23:14 ` Stephen Boyd
2022-06-23 23:14 ` Stephen Boyd
2022-06-24 0:35 ` Prashant Malani
2022-06-24 0:35 ` Prashant Malani
2022-06-24 1:24 ` Prashant Malani
2022-06-24 1:24 ` Prashant Malani
2022-06-24 2:13 ` Stephen Boyd
2022-06-24 2:13 ` Stephen Boyd
2022-06-24 2:48 ` Prashant Malani
2022-06-24 2:48 ` Prashant Malani
2022-06-24 19:50 ` Stephen Boyd
2022-06-24 19:50 ` Stephen Boyd
2022-06-24 21:41 ` Prashant Malani
2022-06-24 21:41 ` Prashant Malani
2022-06-25 1:21 ` Stephen Boyd
2022-06-25 1:21 ` Stephen Boyd
2022-06-25 20:13 ` Krzysztof Kozlowski
2022-06-25 20:13 ` Krzysztof Kozlowski
2022-06-27 21:04 ` Rob Herring
2022-06-27 21:04 ` Rob Herring
2022-06-27 21:43 ` Prashant Malani
2022-06-27 21:43 ` Prashant Malani
2022-06-28 18:23 ` Rob Herring [this message]
2022-06-28 18:23 ` Rob Herring
2022-06-29 14:33 ` Pin-yen Lin
2022-06-29 14:33 ` Pin-yen Lin
2022-06-29 15:00 ` Pin-yen Lin
2022-06-29 15:00 ` Pin-yen Lin
2022-06-29 17:58 ` Rob Herring
2022-06-29 17:58 ` Rob Herring
2022-06-29 21:58 ` Stephen Boyd
2022-06-29 21:58 ` Stephen Boyd
2022-06-29 22:55 ` Prashant Malani
2022-06-29 22:55 ` Prashant Malani
2022-06-29 23:55 ` Stephen Boyd
2022-06-29 23:55 ` Stephen Boyd
2022-06-30 17:10 ` Prashant Malani
2022-06-30 17:10 ` Prashant Malani
2022-07-12 17:45 ` Rob Herring
2022-07-12 17:45 ` Rob Herring
2022-07-13 21:58 ` Prashant Malani
2022-07-13 21:58 ` Prashant Malani
2022-09-02 7:41 ` Prashant Malani
2022-09-02 7:41 ` Prashant Malani
2022-09-16 18:21 ` Prashant Malani
2022-09-16 18:21 ` Prashant Malani
2022-10-03 3:42 ` Pin-yen Lin
2022-10-03 3:42 ` Pin-yen Lin
2022-06-22 17:34 ` [PATCH v5 2/9] dt-bindings: drm/bridge: anx7625: Add mode-switch support Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-22 17:34 ` [PATCH v5 3/9] drm/bridge: anx7625: Register number of Type C switches Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-22 17:34 ` [PATCH v5 4/9] drm/bridge: anx7625: Register Type-C mode switches Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-22 17:34 ` [PATCH v5 5/9] drm/bridge: anx7625: Add typec_mux_set callback function Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-28 19:25 ` Stephen Boyd
2022-06-28 19:25 ` Stephen Boyd
2022-06-28 19:48 ` Prashant Malani
2022-06-28 19:48 ` Prashant Malani
2022-06-28 20:40 ` Stephen Boyd
2022-06-28 20:40 ` Stephen Boyd
2022-06-28 20:56 ` Prashant Malani
2022-06-28 20:56 ` Prashant Malani
2022-06-30 23:21 ` Stephen Boyd
2022-06-30 23:21 ` Stephen Boyd
2022-06-30 23:38 ` Prashant Malani
2022-06-30 23:38 ` Prashant Malani
2022-07-06 18:26 ` Prashant Malani
2022-07-06 18:26 ` Prashant Malani
2022-07-07 0:17 ` Stephen Boyd
2022-07-07 0:17 ` Stephen Boyd
2022-07-12 10:22 ` Pin-yen Lin
2022-07-12 10:22 ` Pin-yen Lin
2022-06-22 17:34 ` [PATCH v5 6/9] dt/bindings: drm/bridge: it6505: Add mode-switch support Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-23 18:24 ` Stephen Boyd
2022-06-23 18:24 ` Stephen Boyd
2022-06-23 18:37 ` Prashant Malani
2022-06-23 18:37 ` Prashant Malani
2022-06-23 19:08 ` Stephen Boyd
2022-06-23 19:08 ` Stephen Boyd
2022-06-23 19:15 ` Prashant Malani
2022-06-23 19:15 ` Prashant Malani
2022-06-22 17:34 ` [PATCH v5 7/9] drm/bridge: it6505: Register number of Type C switches Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-27 21:05 ` Rob Herring
2022-06-27 21:05 ` Rob Herring
2022-06-22 17:34 ` [PATCH v5 8/9] drm/bridge: it6505: Register Type-C mode switches Prashant Malani
2022-06-22 17:34 ` Prashant Malani
2022-06-22 17:34 ` [PATCH v5 9/9] drm/bridge: it6505: Add typec_mux_set callback function Prashant Malani
2022-06-22 17:34 ` Prashant Malani
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=20220628182336.GA711518-robh@kernel.org \
--to=robh@kernel.org \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@linux.ie \
--cc=allen.chen@ite.com.tw \
--cc=andrzej.hajda@intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bleung@chromium.org \
--cc=daniel@ffwll.ch \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=hsinyi@chromium.org \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=jose.exposito89@gmail.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=maxime@cerno.tech \
--cc=narmstrong@baylibre.com \
--cc=nfraprado@collabora.com \
--cc=pmalani@chromium.org \
--cc=robert.foss@linaro.org \
--cc=sam@ravnborg.org \
--cc=swboyd@chromium.org \
--cc=treapking@chromium.org \
--cc=tzimmermann@suse.de \
--cc=xji@analogixsemi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.