Re: [PATCH v4 1/2] dt-bindings: media: i2c: Add Mira016 image sensor

From: Sakari Ailus

Date: Tue Sep 08 2026 - 07:57:05 EST


Hi Jacopo,

On Tue, Sep 08, 2026 at 01:46:11PM +0200, Jacopo Mondi wrote:
> Hi Sakari
>
> On Tue, Sep 08, 2026 at 11:16:26AM +0300, Sakari Ailus wrote:
> > Hi Jacopo,
> >
> > On Tue, Sep 08, 2026 at 09:57:23AM +0200, Jacopo Mondi wrote:
> > > Add bindings for the ams OSRAM Mira016 image sensor.
> > >
> > > Signed-off-by: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
> > > Acked-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> > > ---
> > > .../devicetree/bindings/media/i2c/ams,mira016.yaml | 97 ++++++++++++++++++++++
> > > MAINTAINERS | 7 ++
> > > 2 files changed, 104 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/media/i2c/ams,mira016.yaml b/Documentation/devicetree/bindings/media/i2c/ams,mira016.yaml
> > > new file mode 100644
> > > index 000000000000..49a606fca6cb
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/i2c/ams,mira016.yaml
> > > @@ -0,0 +1,97 @@
> > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > +%YAML 1.2
> > > +---
> > > +$id: http://devicetree.org/schemas/media/i2c/ams,mira016.yaml#
> > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > +
> > > +title: AMS 0.16 MP NIR enhanced global shutter image sensor
> > > +
> > > +maintainers:
> > > + - Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
> > > + - Philippe Baetens <philippebaetens@xxxxxxxxx>
> > > +
> > > +description:
> > > + Mira016 is a 0.16 MP NIR enhanced global shutter image sensor designed for 2D
> > > + and 3D consumer and industrial machine vision applications. The sensor is
> > > + compliant to the MIPI CSI-2 v1.3 protocol interface and the D-PHY v1.2
> > > + physical layer specifications to transmit the image data to the host
> > > + processor. It uses one data lane and one clock lane operating up to 1.5 Gbps.
> > > +
> > > +allOf:
> > > + - $ref: /schemas/media/video-interface-devices.yaml#
> > > +
> > > +properties:
> > > + compatible:
> > > + const: ams,mira016
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + clocks:
> > > + maxItems: 1
> > > +
> > > + vdd28-supply:
> > > + description:
> > > + I/O voltage supply, 2.8 volts
> > > +
> > > + vdd11-supply:
> > > + description:
> > > + I/O voltage supply, 1.1 volts
> > > +
> > > + reset-gpios:
> > > + description: Sensor reset (RST_N) GPIO
> > > + maxItems: 1
> > > +
> > > + port:
> > > + $ref: /schemas/graph.yaml#/$defs/port-base
> > > + additionalProperties: false
> > > + description:
> > > + Video output port
> > > +
> > > + properties:
> > > + endpoint:
> > > + $ref: /schemas/media/video-interfaces.yaml#
> > > + unevaluatedProperties: false
> > > +
> > > + properties:
> > > + data-lanes:
> > > + items:
> > > + - const: 1
> >
> > The device obviously supports non-continuous clock mode (and that's what
> > the driver also only does right now) but as the continous clock mode is
> > required by CSI-2, I presume the device can do both.
> >
> > So I think you should have
> >
> > clock-noncontinuous: true
> >
> > here.
> >
>
> Maybe I'm confused (again, after 10 or so years of doing this) by the
> usage of unevaluatedProperties/additionalProperties, but if I read
> Documentation/devicetree/bindings/writing-schema.rst right
>
> * unevaluatedProperties: false
> Used when this binding references other schema whose all properties
> should be allowed.
>
> Means all properties from video-interfaces.yaml are accepted (which is
> imho very wrong, but it's a battle with dt maintainers I don't want to
> start again).

I guess you should have

additionalProperties: false

too?

>
>
> > > +
> > > + required:
> > > + - data-lanes
> > > + - link-frequencies
> > > +
> > > +required:
> > > + - compatible
> > > + - reg
> > > + - clocks
> > > + - vdd28-supply
> > > + - vdd11-supply
> > > + - port
> > > +
> > > +unevaluatedProperties: false
> > > +
> > > +examples:
> > > + - |
> > > + i2c {
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + camera@36 {
> > > + compatible = "ams,mira016";
> > > + reg = <0x36>;
> > > + clocks = <&cam1_clk>;
> > > +
> > > + vdd28-supply = <&cam1_reg>;
> > > + vdd11-supply = <&cam_dummy_reg>;
> > > +
> > > + port {
> > > + endpoint {
> > > + data-lanes = <1>;
> > > + link-frequencies = /bits/ 64 <750000000>;
> > > + };
> > > + };
> > > + };
> > > + };
> > > +...
> > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > index e12dc3ca57ab..1c24b05b378b 100644
> > > --- a/MAINTAINERS
> > > +++ b/MAINTAINERS
> > > @@ -1454,6 +1454,13 @@ S: Maintained
> > > F: Documentation/devicetree/bindings/iio/light/ams,as73211.yaml
> > > F: drivers/iio/light/as73211.c
> > >
> > > +AMS MIRA016 DRIVER
> > > +M: Jacopo Mondi <jacopo.mondi@xxxxxxxxxxxxxxxx>
> > > +M: Philippe Baetens <philippebaetens@xxxxxxxxx>
> > > +L: linux-media@xxxxxxxxxxxxxxx
> > > +S: Maintained
> > > +F: Documentation/devicetree/bindings/media/i2c/ams,mira016.yaml
> > > +
> > > AMT (Automatic Multicast Tunneling)
> > > M: Taehee Yoo <ap420073@xxxxxxxxx>
> > > L: netdev@xxxxxxxxxxxxxxx
> > >
> >

--
Regards,

Sakari Ailus