Re: [PATCH v11 2/7] dt-bindings: media: qcom,x1e80100-camss: Add support for combo-mode endpoints

From: Bryan O'Donoghue

Date: Wed Mar 25 2026 - 22:15:38 EST


On 26/03/2026 01:51, Vladimir Zapolskiy wrote:
On 3/26/26 03:28, Bryan O'Donoghue wrote:
Qualcomm CSI2 PHYs support a mode where two sensors may be attached to the
one CSIPHY.

When we have one endpoint we may have
- DPHY 1, 2 or 4 data lanes + 1 clock lane
- CPHY 3 wire data lane

When we have two endpoints this indicates the special fixed combo-mode.
- DPHY endpoint0 => 2+1 and endpoint1 => 1+1 data-lane/clock-lane combination.

Reviewed-by: Christopher Obbard <christopher.obbard@xxxxxxxxxx>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
---
  .../bindings/media/qcom,x1e80100-camss.yaml        | 69 ++++++++++++ ++++++++--
  1 file changed, 65 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/media/qcom,x1e80100- camss.yaml b/Documentation/devicetree/bindings/media/qcom,x1e80100- camss.yaml
index c17b9757b2c86..f44138f522bba 100644
--- a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml
+++ b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml
@@ -148,7 +148,8 @@ properties:
      $ref: /schemas/graph.yaml#/properties/ports
      description:
-      CSI input ports.
+      CSI input ports. Supports either standard single sensor mode or
+      Qualcomm's combo mode with one sensor in 2x1 + 1x1 data-lane, clock-lane mode.
      patternProperties:
        "^port@[0-3]$":
@@ -156,26 +157,86 @@ properties:
          unevaluatedProperties: false
          description:
-          Input port for receiving CSI data from a CSIPHY.
+          Input port for receiving CSI data.
          properties:
-          endpoint:
+          endpoint@0:
              $ref: video-interfaces.yaml#
              unevaluatedProperties: false
+            description:
+              Endpoint for receiving a single sensor input (or first leg of combo).
+
              properties:
                data-lanes:
                  minItems: 1
-                maxItems: 4
+                maxItems: 4 # Base max allows 4 (for D-PHY)
+
+              clock-lanes:
+                maxItems: 1
                bus-type:
                  enum:
                    - 1 # MEDIA_BUS_TYPE_CSI2_CPHY
                    - 4 # MEDIA_BUS_TYPE_CSI2_DPHY
+          endpoint@1:
+            $ref: video-interfaces.yaml#
+            unevaluatedProperties: false
+
+            description:
+              Endpoint for receiving the second leg of a combo sensor input.
+
+            properties:
+              data-lanes:
+                maxItems: 1
+
+              clock-lanes:
+                maxItems: 1
+
+              bus-type:
+                const: 4 # Combo is D-PHY specific
+

It's unclear why both 'bus-type' and 'phys' cell argument are needed
at the same time, they are equal and thus one of two is redundant.


bus-type lives on the CAMSS controller endpoint. It tells the V4L2 fwnode parser (v4l2_fwnode_endpoint_parse) how to interpret the endpoint properties — DPHY has data-lanes + clock-lanes, CPHY has trios.

PHY phandle cell lives on the phys reference. It tells the PHY driver which electrical mode to configure

---
bod