Chrome platform driver development
 help / color / mirror / Atom feed
From: Stephen Boyd <swboyd@chromium.org>
To: chrome-platform@lists.linux.dev
Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev,
	devicetree@vger.kernel.org,
	Douglas Anderson <dianders@chromium.org>,
	Pin-yen Lin <treapking@chromium.org>,
	Andrzej Hajda <andrzej.hajda@intel.com>,
	Benson Leung <bleung@chromium.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@gmail.com>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	dri-devel@lists.freedesktop.org,
	Guenter Roeck <groeck@chromium.org>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Jonas Karlman <jonas@kwiboo.se>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Laurent Pinchart <Laurent.pinchart@ideasonboard.com>,
	Lee Jones <lee@kernel.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Prashant Malani <pmalani@chromium.org>,
	Robert Foss <rfoss@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Tzung-Bi Shih <tzungbi@kernel.org>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Daniel Scally <djrscally@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Ivan Orlov <ivan.orlov0322@gmail.com>,
	linux-acpi@vger.kernel.org, linux-usb@vger.kernel.org,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Vinod Koul <vkoul@kernel.org>,
	"Rob Herring (Arm)" <robh@kernel.org>
Subject: [PATCH v4 13/18] dt-bindings: usb-switch: Extend for DisplayPort altmode
Date: Sat, 31 Aug 2024 21:06:51 -0700	[thread overview]
Message-ID: <20240901040658.157425-14-swboyd@chromium.org> (raw)
In-Reply-To: <20240901040658.157425-1-swboyd@chromium.org>

Extend the usb-switch binding to support DisplayPort (DP) alternate
modes. A third port for the DP signal is necessary when a mode-switch is
muxing USB and DP together onto a usb type-c connector. Add data-lanes
to the usbc output node to allow a device using this binding to remap
the data lanes on the output. Add an example to show how this new port
can be used.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Benson Leung <bleung@chromium.org>
Cc: Guenter Roeck <groeck@chromium.org>
Cc: Prashant Malani <pmalani@chromium.org>
Cc: Tzung-Bi Shih <tzungbi@kernel.org>
Cc: <devicetree@vger.kernel.org>
Cc: <chrome-platform@lists.linux.dev>
Cc: Pin-yen Lin <treapking@chromium.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
---
 .../devicetree/bindings/usb/usb-switch.yaml   | 89 +++++++++++++++++++
 1 file changed, 89 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/usb-switch.yaml b/Documentation/devicetree/bindings/usb/usb-switch.yaml
index f5dc7e23b134..816f295f322f 100644
--- a/Documentation/devicetree/bindings/usb/usb-switch.yaml
+++ b/Documentation/devicetree/bindings/usb/usb-switch.yaml
@@ -52,6 +52,14 @@ properties:
           endpoint:
             $ref: '#/$defs/usbc-in-endpoint'
 
+      port@2:
+        $ref: /schemas/graph.yaml#/$defs/port-base
+        unevaluatedProperties: false
+
+        properties:
+          endpoint:
+            $ref: '#/$defs/dp-endpoint'
+
 oneOf:
   - required:
       - port
@@ -65,6 +73,19 @@ $defs:
     $ref: /schemas/graph.yaml#/$defs/endpoint-base
     description: Super Speed (SS) output endpoint to a type-c connector
     unevaluatedProperties: false
+    properties:
+      data-lanes:
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+        description: |
+          An array of physical USB Type-C data lane indexes.
+          - 0 is SSRX1 lane
+          - 1 is SSTX1 lane
+          - 2 is SSTX2 lane
+          - 3 is SSRX2 lane
+        minItems: 4
+        maxItems: 4
+        items:
+          maximum: 3
 
   usbc-in-endpoint:
     $ref: /schemas/graph.yaml#/$defs/endpoint-base
@@ -79,7 +100,75 @@ $defs:
         items:
           maximum: 8
 
+  dp-endpoint:
+    $ref: /schemas/graph.yaml#/$defs/endpoint-base
+    description: DisplayPort (DP) input from the DP PHY
+    unevaluatedProperties: false
+    properties:
+      data-lanes:
+        $ref: /schemas/types.yaml#/definitions/uint32-array
+        description: |
+          An array of physical DP data lane indexes
+          - 0 is DP ML0 lane
+          - 1 is DP ML1 lane
+          - 2 is DP ML2 lane
+          - 3 is DP ML3 lane
+        oneOf:
+          - items:
+              - const: 0
+              - const: 1
+          - items:
+              - const: 0
+              - const: 1
+              - const: 2
+              - const: 3
+
 examples:
+  # A USB + DP mode and orientation switch which muxes DP altmode
+  # and USB onto a usb-c-connector node.
+  - |
+    device {
+      mode-switch;
+      orientation-switch;
+
+      ports {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        port@0 {
+          reg = <0>;
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          endpoint {
+            remote-endpoint = <&usb_c_connector>;
+            data-lanes = <0 1 2 3>;
+          };
+        };
+
+        port@1 {
+          reg = <1>;
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          endpoint {
+            remote-endpoint = <&usb_ss_phy>;
+          };
+        };
+
+        port@2 {
+          reg = <2>;
+          #address-cells = <1>;
+          #size-cells = <0>;
+
+          endpoint {
+            remote-endpoint = <&dp_phy>;
+            data-lanes = <0 1 2 3>;
+          };
+        };
+      };
+    };
+
   # A USB orientation switch which flips the pin orientation
   # for a usb-c-connector node.
   - |
-- 
https://chromeos.dev


  parent reply	other threads:[~2024-09-01  4:07 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-01  4:06 [PATCH v4 00/18] platform/chrome: Add DT USB/DP muxing/topology support Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 01/18] drm/atomic-helper: Introduce lane remapping support to bridges Stephen Boyd
2024-09-20 13:41   ` Dmitry Baryshkov
2024-09-01  4:06 ` [PATCH v4 02/18] drm/bridge: Verify lane assignment is going to work during atomic_check Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 03/18] usb: typec: Stub out typec_switch APIs when CONFIG_TYPEC=n Stephen Boyd
2024-09-03 11:40   ` Heikki Krogerus
2024-09-19 10:12   ` Dmitry Baryshkov
2024-09-01  4:06 ` [PATCH v4 04/18] usb: typec: Add device managed typec_mux_register() Stephen Boyd
2024-09-03 11:57   ` Heikki Krogerus
2024-09-01  4:06 ` [PATCH v4 05/18] usb: typec: Add device managed typec_switch_register() Stephen Boyd
2024-09-02 11:22   ` Andy Shevchenko
2024-09-01  4:06 ` [PATCH v4 06/18] drm/bridge: aux-hpd: Support USB Type-C DP altmodes via DRM lane assignment Stephen Boyd
2024-09-02 11:35   ` Andy Shevchenko
2024-09-03 22:20     ` Stephen Boyd
2024-09-04 13:00       ` Andy Shevchenko
2024-09-04 17:17         ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 07/18] drm/bridge: dp_typec: Support USB Type-C orientation Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 08/18] drm/bridge: dp_typec: Add "no-hpd" support Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 09/18] drm/bridge: dp_typec: Allow users to hook hpd notify path Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 10/18] devcon property: Document devcon_match_fn_t Stephen Boyd
2024-09-02 11:17   ` Andy Shevchenko
2024-09-03 22:35     ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 11/18] device property: Add remote endpoint to devcon matcher Stephen Boyd
2024-09-02 11:12   ` Andy Shevchenko
2024-09-03 22:49     ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 12/18] dt-bindings: usb-switch: Extract endpoints to defs Stephen Boyd
2024-09-01  4:06 ` Stephen Boyd [this message]
2024-09-19 10:40   ` [PATCH v4 13/18] dt-bindings: usb-switch: Extend for DisplayPort altmode Dmitry Baryshkov
2024-10-10 22:43     ` Stephen Boyd
2024-10-25  6:36       ` Dmitry Baryshkov
2024-09-01  4:06 ` [PATCH v4 14/18] dt-bindings: Move google,cros-ec-typec binding to usb Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 15/18] dt-bindings: usb: Add ports to google,cros-ec-typec for DP altmode Stephen Boyd
2024-09-03 15:35   ` Lee Jones
2024-09-20  9:38   ` Dmitry Baryshkov
2024-10-23  1:15     ` Stephen Boyd
2024-10-25 10:49       ` Dmitry Baryshkov
2024-10-29 20:15         ` Stephen Boyd
2024-10-31 18:42           ` Dmitry Baryshkov
2024-10-31 21:45             ` Stephen Boyd
2024-10-31 22:54               ` Dmitry Baryshkov
2024-11-08  0:28                 ` Stephen Boyd
2024-11-09  7:05                   ` Dmitry Baryshkov
2024-11-12  2:16                     ` Stephen Boyd
2024-11-15 17:17                       ` Dmitry Baryshkov
2024-11-20  1:09                         ` Stephen Boyd
2024-11-21 22:59                           ` Dmitry Baryshkov
2024-12-03 23:50                             ` Stephen Boyd
2024-12-05 18:47                               ` Dmitry Baryshkov
2024-12-11 21:11                                 ` Stephen Boyd
2024-12-11 21:16                                   ` Dmitry Baryshkov
2024-12-11 21:21                                     ` Stephen Boyd
2024-09-01  4:06 ` [PATCH v4 16/18] platform/chrome: cros_ec_typec: Add support for signaling DP HPD via drm_bridge Stephen Boyd
2024-09-04  9:35   ` Tzung-Bi Shih
2024-09-01  4:06 ` [PATCH v4 17/18] platform/chrome: cros_ec_typec: Support DP muxing Stephen Boyd
2024-09-04  9:36   ` Tzung-Bi Shih
2024-09-01  4:06 ` [PATCH v4 18/18] platform/chrome: cros_ec_typec: Handle lack of HPD information Stephen Boyd
2024-09-04  9:36   ` Tzung-Bi Shih
2024-09-04 21:45     ` Stephen Boyd
2024-09-06  8:18       ` Tzung-Bi Shih
2024-09-06 23:22         ` Stephen Boyd

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=20240901040658.157425-14-swboyd@chromium.org \
    --to=swboyd@chromium.org \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=airlied@gmail.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=andrzej.hajda@intel.com \
    --cc=bleung@chromium.org \
    --cc=chrome-platform@lists.linux.dev \
    --cc=conor+dt@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dianders@chromium.org \
    --cc=djrscally@gmail.com \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=groeck@chromium.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=ivan.orlov0322@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonas@kwiboo.se \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lee@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mika.westerberg@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=neil.armstrong@linaro.org \
    --cc=patches@lists.linux.dev \
    --cc=pmalani@chromium.org \
    --cc=rafael.j.wysocki@intel.com \
    --cc=rfoss@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=treapking@chromium.org \
    --cc=tzimmermann@suse.de \
    --cc=tzungbi@kernel.org \
    --cc=vkoul@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