Message ID | 20240417133453.17406-2-sylvain.petinot@foss.st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: Add driver for ST VD56G3 camera sensor | expand |
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@foss.st.com> > --- > .../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@foss.st.com> > + - Sylvain Petinot <sylvain.petinot@foss.st.com> > + > +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@foss.st.com> > +M: Sylvain Petinot <sylvain.petinot@foss.st.com> > +L: linux-media@vger.kernel.org > +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@foss.st.com> > M: Sylvain Petinot <sylvain.petinot@foss.st.com> > -- > 2.17.1 >
Hi Sylvain, Thanks for the patch. 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@foss.st.com> > --- > .../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@foss.st.com> > + - Sylvain Petinot <sylvain.petinot@foss.st.com> > + > +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 flow of the text could be improved by wrapping the text before 80 columns (not earlier). Most editors can do this. > + 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: > + 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 the clock lane is always zero, you can drop the property. > + > + data-lanes: > + minItems: 1 > + maxItems: 2 > + items: > + enum: [1, 2] > + > + link-frequencies: > + minItems: 1 > + maxItems: 1 > + items: > + enum: [402000000, 750000000] Is this a property of the sensor or the driver? Presumably the driver? What about the input clock frequency? > + > + lane-polarities: > + minItems: 1 > + maxItems: 3 > + items: > + enum: [0, 1] The items are already in video-interfaces.yaml. > + 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 { > + 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>; No need for a newline after "=". > + 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@foss.st.com> > +M: Sylvain Petinot <sylvain.petinot@foss.st.com> > +L: linux-media@vger.kernel.org > +S: Maintained > +T: git git://linuxtv.org/media_tree.git > +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@foss.st.com> > M: Sylvain Petinot <sylvain.petinot@foss.st.com>
Hi Rob, Thanks for the review. On 4/18/2024 3:09 PM, Rob Herring wrote: > 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@foss.st.com> >> --- >> .../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@foss.st.com> >> + - Sylvain Petinot <sylvain.petinot@foss.st.com> >> + >> +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. Ok, updated for V2. > >> + 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? Indeed... it probably serves no purpose. I added it to be consistent with the data-lanes that can be reordered/swapped. Will be dropped in V2. > >> + >> + 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. Ok, updated for V2. > >> + 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. Ok > >> + 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@foss.st.com> >> +M: Sylvain Petinot <sylvain.petinot@foss.st.com> >> +L: linux-media@vger.kernel.org >> +S: Maintained >> +T: git git://linuxtv.org/media_tree.git > > This should be covered by the media maintainer entry. I'm really sorry but I don't see what you're referring to. Can you point me to the correct direction please ? > >> +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@foss.st.com> >> M: Sylvain Petinot <sylvain.petinot@foss.st.com> >> -- >> 2.17.1 >> -- Sylvain
Hi Sakari, Thanks for the review. On 4/24/2024 10:46 PM, Sakari Ailus wrote: > Hi Sylvain, > > Thanks for the patch. > > 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@foss.st.com> >> --- >> .../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@foss.st.com> >> + - Sylvain Petinot <sylvain.petinot@foss.st.com> >> + >> +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 flow of the text could be improved by wrapping the text before 80 > columns (not earlier). Most editors can do this. Sure, will be fixed in V2. > >> + 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: >> + 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 the clock lane is always zero, you can drop the property. I added it to be consistent with the data-lanes that can be reordered/swapped. But yes, it serves nothing. Does it make sense to keep the corresponding dev_err() message in the driver ? > >> + >> + data-lanes: >> + minItems: 1 >> + maxItems: 2 >> + items: >> + enum: [1, 2] >> + >> + link-frequencies: >> + minItems: 1 >> + maxItems: 1 >> + items: >> + enum: [402000000, 750000000] > > Is this a property of the sensor or the driver? Presumably the driver? > > What about the input clock frequency? Here are the HW constraints : - Input clock must be in [6Mhz-27Mhz] - By design, Pll Clock must target 804Mhz : the driver set some prediv/mult to achieve this - Then the MIPI frequency can be configured in the range [125Mhz-750Mhz] That being said, the common usage (and what is implemented in the driver) is : - 1 data lane -> MIPI freq = 750Mhz - 2 data lanes -> MIPI freq = 402Mhz > >> + >> + lane-polarities: >> + minItems: 1 >> + maxItems: 3 >> + items: >> + enum: [0, 1] > > The items are already in video-interfaces.yaml. Ok, will be dropped for V2. > >> + 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 { >> + 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>; > > No need for a newline after "=". Thanks. > >> + 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@foss.st.com> >> +M: Sylvain Petinot <sylvain.petinot@foss.st.com> >> +L: linux-media@vger.kernel.org >> +S: Maintained >> +T: git git://linuxtv.org/media_tree.git >> +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@foss.st.com> >> M: Sylvain Petinot <sylvain.petinot@foss.st.com> > -- Sylvain
On 03/05/2024 10:25, Sylvain Petinot wrote: >>> +... >>> 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@foss.st.com> >>> +M: Sylvain Petinot <sylvain.petinot@foss.st.com> >>> +L: linux-media@vger.kernel.org >>> +S: Maintained >>> +T: git git://linuxtv.org/media_tree.git >> >> This should be covered by the media maintainer entry. > > I'm really sorry but I don't see what you're referring to. Can you point > me to the correct direction please ? > Find the media maintainer entry. Do you see Git tree there? Then it is done. Otherwise, do you have write commit access to above Git? Are you going to commit to that Git? Best regards, Krzysztof
On 03/05/2024 18:06, Krzysztof Kozlowski wrote: > On 03/05/2024 10:25, Sylvain Petinot wrote: >>>> +... >>>> 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@foss.st.com> >>>> +M: Sylvain Petinot <sylvain.petinot@foss.st.com> >>>> +L: linux-media@vger.kernel.org >>>> +S: Maintained >>>> +T: git git://linuxtv.org/media_tree.git >>> >>> This should be covered by the media maintainer entry. >> >> I'm really sorry but I don't see what you're referring to. Can you point >> me to the correct direction please ? >> > > Find the media maintainer entry. Do you see Git tree there? Then it is > done. Otherwise, do you have write commit access to above Git? Are you > going to commit to that Git? Please answer above: can you commit to above Git? Best regards, Krzysztof
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@foss.st.com> + - Sylvain Petinot <sylvain.petinot@foss.st.com> + +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: + 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 + + 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] + 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 { + 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@foss.st.com> +M: Sylvain Petinot <sylvain.petinot@foss.st.com> +L: linux-media@vger.kernel.org +S: Maintained +T: git git://linuxtv.org/media_tree.git +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@foss.st.com> M: Sylvain Petinot <sylvain.petinot@foss.st.com>
Add devicetree bindings Documentation for ST VD56G3 & ST VD66GY camera sensors. Update MAINTAINERS file. Signed-off-by: Sylvain Petinot <sylvain.petinot@foss.st.com> --- .../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