mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Richard Leitner <richard.leitner@linux.dev>
To: Krzysztof Kozlowski <krzk@kernel.org>
Cc: Rob Herring <robh@kernel.org>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	 Mauro Carvalho Chehab <mchehab@kernel.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	 Alexander Stein <alexander.stein@ew.tq-group.com>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	 linux-media@vger.kernel.org
Subject: Re: [PATCH 2/3] dt-bindings: media: i2c: Add vision-components,mipi-module-controller
Date: Wed, 16 Sep 2026 09:33:36 +0200	[thread overview]
Message-ID: <aqpC8fxO4F3bFjF4@bombadil> (raw)
In-Reply-To: <20260916-daft-relaxed-mouse-9bfaf4@quoll>

Hi Krzysztof,

thanks for the review!

On Wed, Sep 16, 2026 at 09:00:46AM +0200, Krzysztof Kozlowski wrote:
> On Tue, Sep 15, 2026 at 10:20:24PM +0200, Richard Leitner wrote:
> > Add bindings for the Vision Components MIPI Camera Module Controller.
> > 
> > Signed-off-by: Richard Leitner <richard.leitner@linux.dev>
> > ---
> >  .../vision-components,mipi-module-controller.yaml  | 92 ++++++++++++++++++++++
> >  MAINTAINERS                                        |  7 ++
> >  2 files changed, 99 insertions(+)
> 
> This fails tests, so a very brief review / a few comments:

Mea culpa, I simply failed to run the dtb check before submitting. Sorry.
Will not happen again.

> 
> > 
> > diff --git a/Documentation/devicetree/bindings/media/i2c/vision-components,mipi-module-controller.yaml b/Documentation/devicetree/bindings/media/i2c/vision-components,mipi-module-controller.yaml
> > new file mode 100644
> > index 0000000000000..2a031aea68457
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/media/i2c/vision-components,mipi-module-controller.yaml
> > @@ -0,0 +1,92 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/media/i2c/vision-components,mipi-module-controller.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Vision Components MIPI Camera Module Controller
> > +
> > +maintainers:
> > +  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > +  - Richard Leitner <richard.leitner@linux.dev>
> > +
> > +description: |-
> > +  The MIPI camera module controller is an FPGA-based, I2C-accessible system
> > +  controller found on MIPI camera modules from Vision Components. It abstracts
> > +  the camera sensor behind a unified register interface, and controls and
> > +  sequences the on-board power supplies and clocks.
> > +
> > +  The camera sensor abstraction is optional. The controller exposes a tunneled
> > +  downstream I2C bus used by the attached image sensor. The controller node
> > +  acts as the upstream device on the host bus, while child node below the
> > +  controller represent the sensor device reachable through the tunnel.
> > +
> > +properties:
> > +  compatible:
> > +    const: vision-components,mipi-module-controller
> 
> There is no model name, no version, nothing identifying it better?
> Compatible must be specific to the device (see also writing bindings).

There is one FPGA implemenation for all Vision Components MIPI camera
modules AFAICT. So I have no idea how it could be more specific, TBH...

Adding the FPGA hardware model/type is wrong IMHO as it depends on its
configuration/firmware, not the hw.

There are different versions of the configuration/firmware. But I think
this is also not the correct way to distinguish those, or is it?

According to their homepage the vendor calls those modules simply
"VC MIPI" modules, which implies this FPGA controller is available on it.
So maybe "vision-components,vc-mipi-controller" would be a better fit?

Do you have any ideas/feedback on how improve this name?

> 
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  '#clock-cells':
> > +    const: 0
> > +
> > +  clock-frequency:
> > +    description: Frequency of the sensor clock provided by the module
> 
> Drop, implied by the compatible
> 

Do you mean dropping the whole property, or just the "description"?

> > +
> > +  vcc-supply:
> > +    description: Power supply of the module (3.3V)
> > +
> > +  '#address-cells':
> > +    const: 1
> > +
> > +  '#size-cells':
> > +    const: 0
> 
> No children allowed, so why these two?

Based on your and the bot feedback I would suggest for v2 to change this
"generic i2c bus" to a simple "i2c-tunnel" property which has
"$ref: /schemas/i2c/i2c-controller.yaml".

This would better reflect the actual hardware, as there is only this one,
in firmware hard-coded I2C downstream bus.

Would this be a sane approach?

> 
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - '#clock-cells'
> > +  - clock-frequency
> > +  - vcc-supply
> > +  - '#address-cells'
> > +  - '#size-cells'
> > +
> > +unevaluatedProperties: false
> 
> additionalProperties instead, see writing bindings or writing schema.
> Unless you miss here some other schema $ref.
> 
> > +
> > +examples:
> > +  - |
> > +    i2c {
> > +        #address-cells = <1>;
> > +        #size-cells = <0>;
> > +
> > +        vc_mipi_ctrl: controller@10 {
> > +            compatible = "vision-components,mipi-module-controller";
> > +            reg = <0x10>;
> > +            #clock-cells = <0>;
> > +            clock-frequency = <37125000>;
> > +            vcc-supply = <&cam_3v3>;
> > +
> > +            #address-cells = <1>;
> > +            #size-cells = <0>;
> > +
> > +            i2c@0 {
> > +                #address-cells = <1>;
> > +                #size-cells = <0>;
> > +
> > +                vc_mipi_sensor: camera@60 {
> > +                    compatible = "ovti,ov9281";
> > +                    reg = <0x60>;
> 
> Why having the child abstraction if it is completely abstracted? I don't
> fully get the explanation from description. Completely optional means no
> benefits, no point in it, no?

I will try to improve the description. The idea behind this device
driver/devicetree node is to not rely on the sensor abstraction from
vision components, but to use the upstream sensor specific driver.

As the tunneled downstream i2c bus needs quirks applied this is modeled
as a separate bus.

Previous discussions on this approach are available at:
	https://lore.kernel.org/lkml/20260728092856.GB1494774@killaraus.ideasonboard.com/

Thanks again for your review Krzysztof!

regards;rl

> 
> Best regards,
> Krzysztof
> 

  reply	other threads:[~2026-09-16  7:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-15 20:20 [PATCH 0/3] Add Vision Components MIPI Camera Module support Richard Leitner
2026-09-15 20:20 ` [PATCH 1/3] dt-bindings: vendor-prefixes: add Vision Components GmbH Richard Leitner
2026-09-15 20:20 ` [PATCH 2/3] dt-bindings: media: i2c: Add vision-components,mipi-module-controller Richard Leitner
2026-09-15 21:57   ` Rob Herring (Arm)
2026-09-16  7:00   ` Krzysztof Kozlowski
2026-09-16  7:33     ` Richard Leitner [this message]
2026-09-16  7:45       ` Laurent Pinchart
2026-09-16  8:30         ` Krzysztof Kozlowski
2026-09-16  8:35       ` Krzysztof Kozlowski
2026-09-16  9:01         ` Richard Leitner
2026-09-16 13:41           ` Krzysztof Kozlowski
2026-09-16 14:57             ` Richard Leitner
2026-09-15 20:20 ` [PATCH 3/3] media: i2c: vc-mipi: add Vision Components MIPI Module Controller Richard Leitner

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=aqpC8fxO4F3bFjF4@bombadil \
    --to=richard.leitner@linux.dev \
    --cc=alexander.stein@ew.tq-group.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=robh@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

all inboxes | Powered by JetHome®