Re: [PATCH v8 03/18] dt-bindings: media: qcom,x1e80100-camss: Add support for combo-mode endpoints

From: Christopher Obbard

Date: Fri Feb 27 2026 - 17:02:42 EST


Hi Bryan,

On Wed, 2026-02-25 at 15:11 +0000, 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.
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>

Reviewed-by: Christopher Obbard <christopher.obbard@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 ff14a8248321e..462b1355c9fb7 100644
> --- a/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml
> +++ b/Documentation/devicetree/bindings/media/qcom,x1e80100-camss.yaml
> @@ -116,7 +116,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]$":
> @@ -124,26 +125,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
> +
> required:
> - data-lanes
>
> + allOf:
> + # Case 1: Combo Mode (endpoint@1 is present)
> + # If endpoint@1 exists, we restrict endpoint@0 to 2 lanes (D-PHY split)
> + - if:
> + required:
> + - endpoint@1
> + then:
> + properties:
> + endpoint@0:
> + properties:
> + data-lanes:
> + minItems: 2
> + maxItems: 2
> + bus-type:
> + const: 4
> + endpoint@1:
> + properties:
> + data-lanes:
> + minItems: 1
> + maxItems: 1
> + bus-type:
> + const: 4
> +
> + # Case 2: Single Mode (endpoint@1 is missing)
> + # We explicitly allow up to 4 lanes here to cover the D-PHY use case.
> + - if:
> + not:
> + required:
> + - endpoint@1
> + then:
> + properties:
> + endpoint@0:
> + properties:
> + data-lanes:
> + minItems: 1
> + maxItems: 4
> +
> required:
> - compatible
> - reg