Re: [PATCH v2 1/2] media: dt-bindings: media: i2c: Add MT9M114 camera sensor binding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 21, 2023 at 01:46:06AM +0200, Laurent Pinchart wrote:
> On Fri, May 13, 2022 at 12:33:01PM +0200, Jacopo Mondi wrote:
> > On Tue, Feb 08, 2022 at 08:47:32PM +0200, Laurent Pinchart wrote:
> > > On Tue, Feb 08, 2022 at 06:51:01PM +0200, Sakari Ailus wrote:
> > > > On Mon, Feb 07, 2022 at 03:20:54AM +0200, Laurent Pinchart wrote:
> > > > > Add device tree binding for the onsemi MT9M114 CMOS camera sensor.
> > > > >
> > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> > > > > ---
> > > > > Changes since v1:
> > > > >
> > > > > - Use graph schema
> > > > > - Drop unneeded properties
> > > > > - Rename ON Semiconductor to onsemi
> > > > > ---
> > > > >  .../bindings/media/i2c/onnn,mt9m114.yaml      | 110 ++++++++++++++++++
> > > > >  MAINTAINERS                                   |   7 ++
> > > > >  2 files changed, 117 insertions(+)
> > > > >  create mode 100644 Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml
> > > > >
> > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml b/Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml
> > > > > new file mode 100644
> > > > > index 000000000000..55b67833f9a1
> > > > > --- /dev/null
> > > > > +++ b/Documentation/devicetree/bindings/media/i2c/onnn,mt9m114.yaml
> > > > > @@ -0,0 +1,110 @@
> > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > > > > +%YAML 1.2
> > > > > +---
> > > > > +$id: http://devicetree.org/schemas/media/i2c/onnn,mt9m114.yaml#
> > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > > +
> > > > > +title: onsemi 1/6-inch 720p CMOS Digital Image Sensor
> > > > > +
> > > > > +maintainers:
> > > > > +  - Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> > > > > +
> > > > > +description: |-
> > > > > +  The onsemi MT9M114 is a 1/6-inch 720p (1.26 Mp) CMOS digital image sensor
> > > > > +  with an active pixel-array size of 1296H x 976V. It is programmable through
> > > > > +  an I2C interface and outputs image data over a 8-bit parallel or 1-lane MIPI
> > > > > +  CSI-2 connection.
> > > > > +
> > > > > +properties:
> > > > > +  compatible:
> > > > > +    const: onnn,mt9m114
> > > > > +
> > > > > +  reg:
> > > > > +    description: I2C device address
> > > > > +    enum:
> > > > > +      - 0x48
> > > > > +      - 0x5d
> > > > > +
> > > > > +  clocks:
> > > > > +    description: EXTCLK clock signal
> > > > > +    maxItems: 1
> > > > > +
> > > > > +  vdd-supply:
> > > > > +    description:
> > > > > +      Core digital voltage supply, 1.8V
> > > > > +
> > > > > +  vddio-supply:
> > > > > +    description:
> > > > > +      I/O digital voltage supply, 1.8V or 2.8V
> > > > > +
> > > > > +  vaa-supply:
> > > > > +    description:
> > > > > +      Analog voltage supply, 2.8V
> > > > > +
> > > > > +  reset-gpios:
> > > > > +    description: |-
> > > > > +      Reference to the GPIO connected to the RESET_BAR pin, if any (active
> > > > > +      low).
> > > > > +
> > > > > +  port:
> > > > > +    $ref: /schemas/graph.yaml#/$defs/port-base
> > > > > +    additionalProperties: false
> > > > > +
> > > > > +    properties:
> > > > > +      endpoint:
> > > > > +        $ref: /schemas/media/video-interfaces.yaml#
> > > > > +        additionalProperties: false
> > > > > +
> > > > > +        properties:
> > > > > +          bus-type:
> > > > > +            enum: [4, 5, 6]
> > > >
> > > > With bus-type 5, shouldn't you have the parallel interface sync signal
> > > > polarity properties? Possibly also others if the hardware supports them.
> > >
> > > As far as I can tell, the hardware has fixed polarities for all signals.
> > > Both hsync and vsync (called LINE_VALID and FRAME_VALID here) are active
> > > high.
> > 
> > Although it seems the pixel clock polarity can be controlled ?
> 
> Do you mean through register 0x0016 ? That indeed seems to be the case.
> I can't easily test that though, as the development board I'm using at
> the moment uses CSI-2, but I can add the property to the bindings.

This being said, I realized that the only property we have to specify
the pixel clock polarity is pclk-sample, which is defined as

      Sample data on falling (0), rising (1) or both (2) edges of the pixel
      clock signal.

This is quite ill-defined for transmitters, and should be fixed. I'd
rather not make that a dependency for this driver though. We can always
add a new property later, with a default value for backward
compatibility.

> > > > > +
> > > > > +          remote-endpoint: true
> > > > > +
> > > > > +          # The number and mapping of lanes (for CSI-2), and the bus width and
> > > > > +          # signal polarities (for parallel and BT.656) are fixed and must not
> > > > > +          # be specified.
> > > > > +
> > > > > +        required:
> > > > > +          - bus-type
> > > > > +
> > > > > +required:
> > > > > +  - compatible
> > > > > +  - reg
> > > > > +  - clocks
> > > > > +  - vdd-supply
> > > > > +  - vddio-supply
> > > > > +  - vaa-supply
> > > > > +  - port
> > > > > +
> > > > > +additionalProperties: false
> > > > > +
> > > > > +examples:
> > > > > +  - |
> > > > > +    #include <dt-bindings/gpio/gpio.h>
> > > > > +
> > > > > +    i2c0 {
> > > > > +        #address-cells = <1>;
> > > > > +        #size-cells = <0>;
> > > > > +
> > > > > +        sensor@48 {
> > > > > +            compatible = "onnn,mt9m114";
> > > > > +            reg = <0x48>;
> > > > > +
> > > > > +            clocks = <&clk24m 0>;
> > > > > +
> > > > > +            reset-gpios = <&gpio5 21 GPIO_ACTIVE_LOW>;
> > > > > +
> > > > > +            vddio-supply = <&reg_cam_1v8>;
> > > > > +            vdd-supply = <&reg_cam_1v8>;
> > > > > +            vaa-supply = <&reg_2p8v>;
> > > > > +
> > > > > +            port {
> > > > > +                endpoint {
> > > > > +                    bus-type = <4>;
> > > > > +                    remote-endpoint = <&mipi_csi_in>;
> > > > > +                };
> > > > > +            };
> > > > > +        };
> > > > > +    };
> > > > > +...
> > > > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > > > index f41088418aae..e9919a359c12 100644
> > > > > --- a/MAINTAINERS
> > > > > +++ b/MAINTAINERS
> > > > > @@ -13096,6 +13096,13 @@ T:	git git://linuxtv.org/media_tree.git
> > > > >  F:	drivers/media/i2c/mt9m032.c
> > > > >  F:	include/media/i2c/mt9m032.h
> > > > >
> > > > > +MT9M114 ONSEMI SENSOR DRIVER
> > > > > +M:	Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> > > > > +L:	linux-media@xxxxxxxxxxxxxxx
> > > > > +S:	Maintained
> > > > > +T:	git git://linuxtv.org/media_tree.git
> > > > > +F:	Documentation/devicetree/bindings/media/i2c.onnn,mt9m114.yaml
> > > > > +
> > > > >  MT9P031 APTINA CAMERA SENSOR
> > > > >  M:	Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> > > > >  L:	linux-media@xxxxxxxxxxxxxxx

-- 
Regards,

Laurent Pinchart



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux