[PATCH 6/8] dt-bindings: media: nxp,imx-mipi-csi2: Add fsl,num-channels property

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jun 25 12:34:18 PDT 2025


On Wed, Jun 25, 2025 at 02:27:28PM -0500, Rob Herring wrote:
> On Fri, Jun 20, 2025 at 12:02:37AM +0300, Laurent Pinchart wrote:
> > On Tue, Jun 10, 2025 at 11:18:29AM +0300, Laurent Pinchart wrote:
> > > On Mon, Jun 09, 2025 at 03:08:39PM -0400, Frank Li wrote:
> > > > On Mon, Jun 09, 2025 at 09:20:33PM +0300, Laurent Pinchart wrote:
> > > > > On Mon, Jun 09, 2025 at 12:53:48PM -0500, Adam Ford wrote:
> > > > > > On Mon, Jun 9, 2025 at 10:32 AM Frank Li wrote:
> > > > > > > On Mon, Jun 09, 2025 at 02:58:38AM +0300, Laurent Pinchart wrote:
> > > > > > > > The CSI-2 receiver can be instantiated with up to four output channels.
> > > > > > > > This is an integration-specific property, specify the number of
> > > > > > > > instantiated channels through a new fsl,num-channels property. The
> > > > > > > > property is optional, and defaults to 1 as only one channel is currently
> > > > > > > > supported by drivers.
> > > > > > > >
> > > > > > > > The only known SoC to have more than one channel is the i.MX8MP. As the
> > > > > > > > binding examples do not cover that SoC, don't update them.
> > > > > > > >
> > > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > > > > > > ---
> > > > > > > >  .../devicetree/bindings/media/nxp,imx-mipi-csi2.yaml       | 7 +++++++
> > > > > > > >  1 file changed, 7 insertions(+)
> > > > > > > >
> > > > > > > > diff --git a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
> > > > > > > > index db4889bf881e..41ad5b84eaeb 100644
> > > > > > > > --- a/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
> > > > > > > > +++ b/Documentation/devicetree/bindings/media/nxp,imx-mipi-csi2.yaml
> > > > > > > > @@ -68,6 +68,13 @@ properties:
> > > > > > > >      default: 166000000
> > > > > > > >      deprecated: true
> > > > > > > >
> > > > > > > > +  fsl,num-channels:
> > > > > > > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > > > > > > +    description: Number of output channels
> > > > > > > > +    minimum: 1
> > > > > > > > +    maximum: 4
> > > > > > > > +    default: 1
> > > > > > > > +
> > > > > > >
> > > > > > > Look like it is fixed value for each compabiable string, So it is not
> > > > > > > suitable for adding new property. It should be in driver data of each
> > > > > > > compatible strings.
> > > > > > >
> > > > > > > I met similar case before. DT team generally don't agree on add such
> > > > > > > property, unless there are two instances in the same chip, which have
> > > > > > > difference channel number.
> > > > > >
> > > > > > If the DT changes are rejected, can the number of channels be added to
> > > > > > the data structure inside mipi_csis_of_match?  We have compatibles for
> > > > > > 8mm and imx7.  If we add an imx8mp compatible we could add a reference
> > > > > > to the number of channels.
> > > > >
> > > > > I thought about it, and decided to add a new property because the number
> > > > > of channels is really a synthesis time configuration parameter, and
> > > > > could differ between different CSIS instances in the same SoC.
> > > > 
> > > > Need add such information at binding doc's commit message,
> > > 
> > > I'll update the commit message.
> > 
> > The commit message in v2 will state
> > 
> >     dt-bindings: media: nxp,imx-mipi-csi2: Add fsl,num-channels property
> > 
> >     The CSI-2 receiver can be instantiated with up to four output channels.
> >     This is an integration-specific property, specify the number of
> >     instantiated channels through a new fsl,num-channels property. The
> >     property is optional, and defaults to 1 as only one channel is currently
> >     supported by drivers.
> > 
> >     Using the compatible string to infer the number of channels has been
> >     considered, but multiple instances of the same CSIS in the same SoC
> >     could conceptually be synthesized with a different number of channels.
> >     An explicit property is therefore more appropriate.
> > 
> >     The only known SoC to have more than one channel is the i.MX8MP. As the
> >     binding examples do not cover that SoC, don't update them.
> 
> So how many channels does i.MX8MP have in a DT without this property? 
> It's either 1 or the driver overrides it to 2.

Only 1. I only realized a few weeks ago that the CSIS has multiple
output channels on i.MX8MP. This wasn't documented anywhere, and
understanding how all of this works took lots of trial-and-error.

> > Rob, Krzysztof, Conor, are you fine with adding this property ?
> 
> Yes, but seems a little late.

It is, I wish I had known about this hardware feature years ago. Now I
need to figure out how to properly support it in the driver and expose
it to userspace through V4L2 without breaking backward compatibility
with existing applications. The DT binding is the easy part :-)

-- 
Regards,

Laurent Pinchart



More information about the linux-arm-kernel mailing list