Subject: Re: [PATCH v8 1/2] media: dt-bindings: Add CSI Pixel Formatter DT bindings

From: Laurent Pinchart <[email-masked]>
Date: Tue, 26 May 2026 11:44:38 +0200

On Tue, May 26, 2026 at 11:13:35AM +0200, Krzysztof Kozlowski wrote:
> On Mon, May 25, 2026 at 04:12:22PM +0800, Guoniu Zhou wrote:
> > From: Guoniu Zhou <[email-masked]>
> > 
> > The i.MX95 CSI pixel formatting module uses packet info, pixel and
> > non-pixel data from the CSI-2 host controller and reformat them to
> > match Pixel Link(PL) definition.
> > 
> > Reviewed-by: Frank Li <[email-masked]>
> > Reviewed-by: Krzysztof Kozlowski <[email-masked]>
> 
> Drop both review tags and request re-review since you made significant
> changes.
> 
> > Signed-off-by: Guoniu Zhou <[email-masked]>
> > ---
> > Changes in v8:
> > - Use standard port reference instead of video-interfaces.yaml
> 
> Why? Properties are not applicable?
> 
> > - Add parent syscon node in example to show device integration
> > - Add required constraints for port@0 and port@1 in ports node
> > 
> > Changes in v7:
> > - Change compatible to imx95-csi-formatter as IP is i.MX95 specific per Marco's suggestion
> >   Link: https://lore.kernel.org/linux-media/[email-masked]/T/#mcd135b3de179b3cb69daa1fd6e0e8e27c85b3332
> > ---
> >  .../bindings/media/fsl,imx95-csi-formatter.yaml    | 92 ++++++++++++++++++++++
> >  1 file changed, 92 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/media/fsl,imx95-csi-formatter.yaml b/Documentation/devicetree/bindings/media/fsl,imx95-csi-formatter.yaml
> > new file mode 100644
> > index 000000000000..bc2f5d448fe5
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/fsl,imx95-csi-formatter.yaml
> > @@ -0,0 +1,92 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/fsl,imx95-csi-formatter.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: i.MX95 CSI Pixel Formatter
> > +
> > +maintainers:
> > +  - Guoniu Zhou <[email-masked]>
> > +
> > +description:
> > +  The CSI pixel formatting module found on i.MX95 uses packet info, pixel
> > +  and non-pixel data from the CSI-2 host controller and reformat them to
> > +  match Pixel Link(PL) definition.
> > +
> > +properties:
> > +  compatible:
> > +    const: fsl,imx95-csi-formatter
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    maxItems: 1
> > +
> > +  power-domains:
> > +    maxItems: 1
> > +
> > +  ports:
> > +    $ref: /schemas/graph.yaml#/properties/ports
> > +
> > +    properties:
> > +      port@0:
> > +        $ref: /schemas/graph.yaml#/properties/port
> > +        description: MIPI CSI-2 RX IDI interface
> > +
> > +      port@1:
> > +        $ref: /schemas/graph.yaml#/properties/port
> > +        description: Pixel Link Interface
> > +
> > +    required:
> > +      - port@0
> > +      - port@1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - clocks
> > +  - power-domains
> > +  - ports
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/clock/nxp,imx95-clock.h>
> > +
> > +    syscon@4ac10000 {
> > +        compatible = "nxp,imx95-camera-csr", "syscon";
> 
> Drop entire node, not relevant. Or actually this example could be in the
> parent binding example.

I asked for this in the review of a previous version. The example only
stated "formatter@20" and it was not mentioned anywhere that the device
was supposed to be a child node of a syscon. The driver reads the reg
property and uses it as an offset to the regmap of the syscon, I wanted
to see where/how the node was meant to be integrated in DT.

> > +        reg = <0x0 0x4ac10000 0x0 0x10000>;
> > +        #address-cells = <1>;
> > +        #size-cells = <1>;
> > +
> > +        formatter@20 {
> > +            compatible = "fsl,imx95-csi-formatter";
> > +            reg = <0x20 0x100>;
> > +            clocks = <&cameramix_csr IMX95_CLK_CAMBLK_CSI2_FOR0>;
> > +            power-domains = <&scmi_devpd 3>;
> > +
> > +            ports {
> > +                #address-cells = <1>;
> > +                #size-cells = <0>;
> > +
> > +                port@0 {
> > +                    reg = <0>;
> > +
> > +                    endpoint {
> > +                        remote-endpoint = <&mipi_csi_0_out>;
> > +                };
> > +            };
> > +
> > +                port@1 {
> 
> Messed indentation.

-- 
Regards,

Laurent Pinchart