On Wed, Apr 17, 2024 at 03:34:52PM +0200, Sylvain Petinot wrote: > Add devicetree bindings Documentation for ST VD56G3 & ST VD66GY camera > sensors. Update MAINTAINERS file. > > Signed-off-by: Sylvain Petinot <sylvain.petinot@xxxxxxxxxxx> > --- > .../bindings/media/i2c/st,st-vd56g3.yaml | 143 ++++++++++++++++++ > MAINTAINERS | 9 ++ > 2 files changed, 152 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/st,st-vd56g3.yaml > > diff --git a/Documentation/devicetree/bindings/media/i2c/st,st-vd56g3.yaml b/Documentation/devicetree/bindings/media/i2c/st,st-vd56g3.yaml > new file mode 100644 > index 000000000000..6792c02fea5c > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/st,st-vd56g3.yaml > @@ -0,0 +1,143 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +# Copyright (c) 2024 STMicroelectronics SA. > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/st,st-vd56g3.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: STMicroelectronics VD56G3 Global Shutter Image Sensor > + > +maintainers: > + - Benjamin Mugnier <benjamin.mugnier@xxxxxxxxxxx> > + - Sylvain Petinot <sylvain.petinot@xxxxxxxxxxx> > + > +description: |- > + The STMicroelectronics VD56G3 is a 1.5 M pixel global shutter image sensor > + with an active array size of 1124 x 1364 (portrait orientation). > + It is programmable through I2C, the address is fixed to 0x10. > + The sensor output is available via CSI-2, which is configured as either 1 or > + 2 data lanes. > + The sensor provides 8 GPIOS that can be used for either > + - frame synchronization (Master: out-sync or Slave: in-sync) > + - external LED signal (synchronized with sensor integration periods) > + > +properties: > + compatible: > + enum: > + - st,st-vd56g3 > + - st,st-vd66gy > + description: > + Two variants are availables; VD56G3 is a monochrome sensor while VD66GY > + is a colour variant. > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + VCORE-supply: Convention is lowercase. > + description: Digital core power supply (1.15V) > + > + VDDIO-supply: > + description: Digital IO power supply (1.8V) > + > + VANA-supply: > + description: Analog power supply (2.8V) > + > + reset-gpios: > + description: Sensor reset active low GPIO (XSHUTDOWN) > + maxItems: 1 > + > + st,leds: > + description: > + Sensor's GPIOs used for external LED control. > + Signal being the enveloppe of the integration time. > + $ref: /schemas/types.yaml#/definitions/uint32-array > + minItems: 1 > + maxItems: 8 > + items: > + minimum: 0 > + maximum: 7 > + > + port: > + $ref: /schemas/graph.yaml#/$defs/port-base > + > + properties: > + endpoint: > + $ref: /schemas/media/video-interfaces.yaml# > + unevaluatedProperties: false > + > + properties: > + clock-lanes: > + const: 0 If required and only 1 possible value, why does this need to be in DT? > + > + data-lanes: > + minItems: 1 > + maxItems: 2 > + items: > + enum: [1, 2] > + > + link-frequencies: > + minItems: 1 > + maxItems: 1 > + items: > + enum: [402000000, 750000000] > + > + lane-polarities: > + minItems: 1 > + maxItems: 3 > + items: > + enum: [0, 1] video-interfaces.yaml already defines this constraint, so you just need to define how many entries. > + description: Any lane can be inverted or not. > + > + required: > + - clock-lanes > + - data-lanes > + - link-frequencies > + > +required: > + - compatible > + - reg > + - clocks > + - VCORE-supply > + - VDDIO-supply > + - VANA-supply > + - reset-gpios > + - port > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + vd56g3: camera-sensor@10 { Drop unused labels. > + compatible = "st,st-vd56g3"; > + reg = <0x10>; > + > + clocks = <&camera_clk_12M>; > + > + VCORE-supply = <&camera_vcore_v1v15>; > + VDDIO-supply = <&camera_vddio_v1v8>; > + VANA-supply = <&camera_vana_v2v8>; > + > + reset-gpios = <&gpio 5 GPIO_ACTIVE_LOW>; > + st,leds = <6>; > + > + port { > + vd56g3_ep: endpoint { > + clock-lanes = <0>; > + data-lanes = <1 2>; > + link-frequencies = > + /bits/ 64 <402000000>; > + remote-endpoint = <&csiphy0_ep>; > + }; > + }; > + }; > + }; > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index 7c121493f43d..991e65627e18 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -20868,6 +20868,15 @@ S: Maintained > F: Documentation/hwmon/stpddc60.rst > F: drivers/hwmon/pmbus/stpddc60.c > > +ST VD56G3 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 This should be covered by the media maintainer entry. > +F: Documentation/devicetree/bindings/media/i2c/st,st-vd56g3.yaml > +F: drivers/media/i2c/st-vd56g3.c > + > ST VGXY61 DRIVER > M: Benjamin Mugnier <benjamin.mugnier@xxxxxxxxxxx> > M: Sylvain Petinot <sylvain.petinot@xxxxxxxxxxx> > -- > 2.17.1 >