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

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

 



Hi Benjamin,

On Fri, Mar 11, 2022 at 12:25:38PM +0100, Benjamin Mugnier wrote:
> Hi Dave,
> 
> Thank you for your review.
> 
> On 10/03/2022 16:38, Dave Stevenson wrote:
> > Hi Benjamin
> > 
> > cc Laurent and Sakari as maintainers of video-interfaces.yaml
> > 
> > On Thu, 10 Mar 2022 at 13:37, Benjamin Mugnier
> > <benjamin.mugnier@xxxxxxxxxxx> wrote:
> >>
> >> Add device tree binding for the ST VGXY61 camera sensor, and update
> >> MAINTAINERS file.
> >>
> >> Signed-off-by: Benjamin Mugnier <benjamin.mugnier@xxxxxxxxxxx>
> >> ---
> >>  .../bindings/media/i2c/st,st-vgxy61.yaml      | 134 ++++++++++++++++++
> >>  MAINTAINERS                                   |  10 ++
> >>  2 files changed, 144 insertions(+)
> >>  create mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
> >>
> >> diff --git a/Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml b/Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
> >> new file mode 100644
> >> index 000000000000..8740ed2623e4
> >> --- /dev/null
> >> +++ b/Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.yaml
> >> @@ -0,0 +1,134 @@
> >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> >> +# Copyright (c) 2022 STMicroelectronics SA.
> >> +%YAML 1.2
> >> +---
> >> +$id: http://devicetree.org/schemas/media/i2c/st,st-vgxy61.yaml#
> >> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> >> +
> >> +title: STMicroelectronics VGxy61 HDR Global Shutter Sensor Family Device Tree Bindings
> >> +
> >> +maintainers:
> >> +  - Benjamin Mugnier <benjamin.mugnier@xxxxxxxxxxx>
> >> +  - Sylvain Petinot <sylvain.petinot@xxxxxxxxxxx>
> >> +
> >> +description: |-
> >> +  STMicroelectronics VGxy61 family has a CSI-2 output port. CSI-2 output is a
> >> +  quad lanes 800Mbps per lane.
> >> +  Supported formats are RAW8, RAW10, RAW12, RAW14 and RAW16.
> >> +  Following part number are supported
> >> +  - VG5661 and VG6661 are 1.6 Mpx (1464 x 1104) monochrome and color sensors.
> >> +  Maximum frame rate is 75 fps.
> >> +  - VG5761 and VG6761 are 2.3 Mpx (1944 x 1204) monochrome and color sensors.
> >> +  Maximum frame rate is 60 fps.
> >> +
> >> +properties:
> >> +  compatible:
> >> +    const: st,st-vgxy61
> >> +
> >> +  reg:
> >> +    maxItems: 1
> >> +
> >> +  clocks:
> >> +    maxItems: 1
> >> +
> >> +  clock-names:
> >> +    description:
> >> +      Input clock for the sensor.
> >> +    items:
> >> +      - const: xclk

Do you need this if you have a single clock?

Also see Documentation/driver-api/media/camera-sensor.rst .

> >> +
> >> +  VCORE-supply:
> >> +    description:
> >> +      Sensor digital core supply. Must be 1.2 volts.
> >> +
> >> +  VDDIO-supply:
> >> +    description:
> >> +      Sensor digital IO supply. Must be 1.8 volts.
> >> +
> >> +  VANA-supply:
> >> +    description:
> >> +      Sensor analog supply. Must be 2.8 volts.
> >> +
> >> +  reset-gpios:
> >> +    description:
> >> +      Reference to the GPIO connected to the reset pin, if any.
> >> +      This is an active low signal to the vgxy61.
> >> +
> >> +  invert-gpios-polarity:
> >> +    description:
> >> +      If gpios polarity should be inversed
> > 
> > s/inversed/inverted
> > 
> 
> Ok.
> 
> >> +    type: boolean
> >> +
> >> +  slave-mode:
> >> +    description:
> >> +      If the sensor operates in slave mode
> >> +    type: boolean
> > 
> > This is one I've been meaning to raise for a while.
> > Is DT the correct place to be configuring hardware sync options for
> > image sensors? (There may be the linguistic discussions over master /
> > slave terminology too).
> > We also have IMX477 and a number of other sensors that support
> > external sync control of some form.
> > 
> > As I see it, there are nominally 3 settings - disabled (reduces EMC
> > noise), generate syncs, and receive syncs.
> > For test purposes it would be useful to be able to switch between
> > generate and receive modes at runtime, so that would make it a control
> > instead of being fixed in DT.
> > 
> > If it should be configured in DT, then how does ACPI need to handle it?
> > 
> > If DT is the correct place to define the role, should it be in
> > video-interfaces.yaml as an optional property, instead of being a
> > sensor specific binding?
> > 
> > Sorry, more questions rather than answers.
> > 
> >   Dave
> 
> Maybe I can provide additional info on this sensor to help find an
> answer. The "slave mode" has 2 settings: enabled or disabled. If disabled
> you are in master mode ('generate sync' and 'disabled' modes Dave
> mentionned, they are the same here), and if enabled you are in slave mode
> ('receive sync'). As you said he master sends frame sync signals to the
> slave each frame acquired, this allows both sensors to synchronize
> themselves.
> 
> I put this in the device tree as we only use it for 3D stereocam boards
> which already have 2 sensors on them, meaning this is hardware specific.
> I don't have any use case where we manually wire 2 sensors on 2 separate
> boards. One good point you mentioned is that I may not always want run
> this board in master/slaver, and both sensors could run on master mode
> without interacting with each other, thus justifying a dedicated v4l2
> control.
> 
> Any ideas on how to name it instead of "slave mode" for coherency between
> sensors?

How is this wired? The slave-mode property documentation explicitly refers
to synchronisation signals that do not exists in CSI-2.

> 
> 
> Regard,
> 
> Benjamin
> 
> > 
> >> +    #TODO check all this or copy from elsewhere
> 
> Just noticed this and will remove it.
> 
> >> +  port:
> >> +    $ref: /schemas/graph.yaml#/$defs/port-base
> >> +    additionalProperties: false
> >> +
> >> +    properties:
> >> +      endpoint:
> >> +        $ref: /schemas/media/video-interfaces.yaml#
> >> +        unevaluatedProperties: false
> >> +
> >> +        properties:
> >> +          clock-lane:
> >> +            description:
> >> +              Clock lane index
> >> +            maxItems: 1

Does the device support lane reordering? If not, please drop.

> >> +
> >> +          data-lanes:
> >> +            description:
> >> +              CSI lanes to use
> >> +            items:
> >> +              - const: 1
> >> +              - const: 2
> >> +              - const: 3
> >> +              - const: 4

Which lane configurations does the device support? If it's four lanes only,
then you can drop this property, too.

> >> +
> >> +          remote-endpoint: true
> >> +
> >> +        required:
> >> +          - clock-lane
> >> +          - data-lanes
> >> +          - remote-endpoint

Listing remote-endpoint here isn't needed as this comes from the schema.

> >> +
> >> +required:
> >> +  - compatible
> >> +  - clocks
> >> +  - clock-names
> >> +  - VCORE-supply
> >> +  - VDDIO-supply
> >> +  - VANA-supply
> >> +
> >> +additionalProperties: false
> >> +
> >> +examples:
> >> +  - |
> >> +    #include <dt-bindings/gpio/gpio.h>
> >> +    i2c {
> >> +        #address-cells = <1>;
> >> +        #size-cells = <0>;
> >> +        vgxy61: csi2tx@10 {
> >> +            compatible = "st,st-vgxy61";
> >> +            reg = <0x10>;
> >> +            status = "okay";
> >> +            clocks = <&clk_ext_camera>;
> >> +            clock-names = "xclk";
> >> +            VCORE-supply = <&v1v2>;
> >> +            VDDIO-supply = <&v1v8>;
> >> +            VANA-supply = <&v2v8>;
> >> +            reset-gpios = <&mfxgpio 18 GPIO_ACTIVE_LOW>;
> >> +            port {
> >> +                ep0: endpoint {
> >> +                    clock-lane = <0>;
> >> +                    data-lanes = <1 2 3 4>;
> >> +                    remote-endpoint = <&mipi_csi2_out>;
> >> +                };
> >> +            };
> >> +        };
> >> +    };
> >> +...
> >> diff --git a/MAINTAINERS b/MAINTAINERS
> >> index 83d27b57016f..f358d15f68a0 100644
> >> --- a/MAINTAINERS
> >> +++ b/MAINTAINERS
> >> @@ -18297,6 +18297,16 @@ S:     Maintained
> >>  F:     Documentation/hwmon/stpddc60.rst
> >>  F:     drivers/hwmon/pmbus/stpddc60.c
> >>
> >> +ST VGXY61 DRIVER
> >> +M:     Benjamin Mugnier <benjamin.mugnier@xxxxxxxxxxx>
> >> +M:     Sylvain Petinot <sylvain.petinot@xxxxxxxxxxx>
> >> +L:     linux-media@xxxxxxxxxxxxxxx
> >> +S:     Maintained
> >> +T:     git git://linuxtv.org/media_tree.git
> >> +F:     Documentation/devicetree/bindings/media/i2c/st,st-vgxy61.txt
> >> +F:     drivers/media/i2c/st-vgxy61.c
> >> +

Extra newline.

> >> +
> >>  ST VL53L0X ToF RANGER(I2C) IIO DRIVER
> >>  M:     Song Qiang <songqiang1304521@xxxxxxxxx>
> >>  L:     linux-iio@xxxxxxxxxxxxxxx
> >> --
> >> 2.25.1
> >>

-- 
Kind regards,

Sakari Ailus



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux