Also update MAINTAINERS file accordingly.
Signed-off-by: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
---
.../devicetree/bindings/media/i2c/st,vd55g1.yaml | 135 +++++++++++++++++++++
MAINTAINERS | 8 ++
2 files changed, 143 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/i2c/st,vd55g1.yaml b/Documentation/devicetree/bindings/media/i2c/st,vd55g1.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e0a0b70a91db743703b020b4b839942fe75402e8
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/i2c/st,vd55g1.yaml
@@ -0,0 +1,135 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright (c) 2025 STMicroelectronics SA.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/media/i2c/st,vd55g1.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics VD55G1 Global Shutter Image Sensor
+
+maintainers:
+ - Benjamin Mugnier <benjamin.mugnier@foss.st.com>
+ - Sylvain Petinot <sylvain.petinot@foss.st.com>
+
+description: |-
+ The STMicroelectronics VD55G1 is a global shutter image sensor with an active
+ array size of 804H x 704V. It is programmable through I2C interface. The I2C
+ address is fixed to 0x10.
+ Image data is sent through MIPI CSI-2, which is configured as only 1 data
+ lane. The sensor provides 4 GPIOS that can be used for external LED signal
+ (synchronized with sensor integration periods).
+
+allOf:
+ - $ref: /schemas/media/video-interface-devices.yaml#
+
+properties:
+ compatible:
+ const: st,st-vd55g1
+
+ 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:
+ List sensor's GPIOs used to control strobe light sources during exposure
+ time. The numbers identify the sensor pin on which the illumination
+ system is connected. GPIOs are active-high.
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ minItems: 1
+ maxItems: 4
+ items:
+ minimum: 0
+ maximum: 3
+
+ port:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ additionalProperties: false
+
+ properties:
+ endpoint:
+ $ref: /schemas/media/video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ description:
+ VD55G1 only has one data lane, and must be 1.
+ maxItems: 1
+ items:
+ const: 1
+
+ link-frequencies:
+ maxItems: 1
+ items:
+ minimum: 125000000
+ maximum: 600000000
+
+ lane-polarities:
+ minItems: 1
+ maxItems: 2
+
+ required:
+ - data-lanes
+ - link-frequencies
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - vcore-supply
+ - vddio-supply
+ - vana-supply
+ - reset-gpios
+ - port
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ camera-sensor@10 {
+ compatible = "st,vd55g1";
+ 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 = <2>;
+
+ orientation = <2>;
+ rotation = <0>;
+
+ port {
+ endpoint {
+ data-lanes = <1>;
+ link-frequencies = /bits/ 64 <600000000>;
+ remote-endpoint = <&csiphy0_ep>;
+ };
+ };
+ };
+ };
diff --git a/MAINTAINERS b/MAINTAINERS
index 2286200b355bde3604607be916ef09aa88feed0e..857af27ef392b6e6865d9a545061d1b012cce07e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -22410,6 +22410,14 @@ S: Maintained
F: Documentation/hwmon/stpddc60.rst
F: drivers/hwmon/pmbus/stpddc60.c
+ST VD55G1 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.git
+F: Documentation/devicetree/bindings/media/i2c/st,vd55g1.yaml
+
ST VGXY61 DRIVER
M: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
M: Sylvain Petinot <sylvain.petinot@foss.st.com>
--
2.25.1
On 28/03/2025 14:40, Benjamin Mugnier wrote:
> +
> +allOf:
> + - $ref: /schemas/media/video-interface-devices.yaml#
> +
> +properties:
> + compatible:
> + const: st,st-vd55g1
Drop st. See your filename how this should be called. Anyway, filename
must match the compatible.
> +
> + 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:
> + List sensor's GPIOs used to control strobe light sources during exposure
> + time. The numbers identify the sensor pin on which the illumination
> + system is connected. GPIOs are active-high.
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 1
> + maxItems: 4
> + items:
> + minimum: 0
> + maximum: 3
> +
> + port:
> + $ref: /schemas/graph.yaml#/$defs/port-base
> + additionalProperties: false
> +
> + properties:
> + endpoint:
> + $ref: /schemas/media/video-interfaces.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + data-lanes:
> + description:
> + VD55G1 only has one data lane, and must be 1.
> + maxItems: 1
> + items:
> + const: 1
Instead of five lines, just two:
items:
- const: 1
Don't repeat constraints in free form text.
> +
> + link-frequencies:
> + maxItems: 1
> + items:
> + minimum: 125000000
> + maximum: 600000000
> +
> + lane-polarities:
> + minItems: 1
> + maxItems: 2
> +
> + required:
> + - data-lanes
> + - link-frequencies
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - vcore-supply
> + - vddio-supply
> + - vana-supply
> + - reset-gpios
> + - port
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + camera-sensor@10 {
> + compatible = "st,vd55g1";
And here another compatible...
> + 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 = <2>;
> +
> + orientation = <2>;
> + rotation = <0>;
> +
> + port {
> + endpoint {
> + data-lanes = <1>;
> + link-frequencies = /bits/ 64 <600000000>;
> + remote-endpoint = <&csiphy0_ep>;
> + };
> + };
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 2286200b355bde3604607be916ef09aa88feed0e..857af27ef392b6e6865d9a545061d1b012cce07e 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -22410,6 +22410,14 @@ S: Maintained
> F: Documentation/hwmon/stpddc60.rst
> F: drivers/hwmon/pmbus/stpddc60.c
>
> +ST VD55G1 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.git
Drop, unless you push patches there. Otherwise what is the point of
duplicating subsystem data?
> +F: Documentation/devicetree/bindings/media/i2c/st,vd55g1.yaml
> +
> ST VGXY61 DRIVER
> M: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
> M: Sylvain Petinot <sylvain.petinot@foss.st.com>
>
Best regards,
Krzysztof
Hi Krzysztof,
Thank you for your review. Consider everything done for V2.
On 3/29/25 06:42, Krzysztof Kozlowski wrote:
> On 28/03/2025 14:40, Benjamin Mugnier wrote:
>> +
>> +allOf:
>> + - $ref: /schemas/media/video-interface-devices.yaml#
>> +
>> +properties:
>> + compatible:
>> + const: st,st-vd55g1
>
> Drop st. See your filename how this should be called. Anyway, filename
> must match the compatible.
>
>> +
>> + 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:
>> + List sensor's GPIOs used to control strobe light sources during exposure
>> + time. The numbers identify the sensor pin on which the illumination
>> + system is connected. GPIOs are active-high.
>> + $ref: /schemas/types.yaml#/definitions/uint32-array
>> + minItems: 1
>> + maxItems: 4
>> + items:
>> + minimum: 0
>> + maximum: 3
>> +
>> + port:
>> + $ref: /schemas/graph.yaml#/$defs/port-base
>> + additionalProperties: false
>> +
>> + properties:
>> + endpoint:
>> + $ref: /schemas/media/video-interfaces.yaml#
>> + unevaluatedProperties: false
>> +
>> + properties:
>> + data-lanes:
>> + description:
>> + VD55G1 only has one data lane, and must be 1.
>> + maxItems: 1
>> + items:
>> + const: 1
>
> Instead of five lines, just two:
>
> items:
> - const: 1
>
> Don't repeat constraints in free form text.
>
>
>> +
>> + link-frequencies:
>> + maxItems: 1
>> + items:
>> + minimum: 125000000
>> + maximum: 600000000
>> +
>> + lane-polarities:
>> + minItems: 1
>> + maxItems: 2
>> +
>> + required:
>> + - data-lanes
>> + - link-frequencies
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - clocks
>> + - vcore-supply
>> + - vddio-supply
>> + - vana-supply
>> + - reset-gpios
>> + - port
>> +
>> +unevaluatedProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/gpio/gpio.h>
>> +
>> + i2c {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + camera-sensor@10 {
>> + compatible = "st,vd55g1";
>
> And here another compatible...
>
>> + 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 = <2>;
>> +
>> + orientation = <2>;
>> + rotation = <0>;
>> +
>> + port {
>> + endpoint {
>> + data-lanes = <1>;
>> + link-frequencies = /bits/ 64 <600000000>;
>> + remote-endpoint = <&csiphy0_ep>;
>> + };
>> + };
>> + };
>> + };
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 2286200b355bde3604607be916ef09aa88feed0e..857af27ef392b6e6865d9a545061d1b012cce07e 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -22410,6 +22410,14 @@ S: Maintained
>> F: Documentation/hwmon/stpddc60.rst
>> F: drivers/hwmon/pmbus/stpddc60.c
>>
>> +ST VD55G1 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.git
>
> Drop, unless you push patches there. Otherwise what is the point of
> duplicating subsystem data?
>
>> +F: Documentation/devicetree/bindings/media/i2c/st,vd55g1.yaml
>> +
>> ST VGXY61 DRIVER
>> M: Benjamin Mugnier <benjamin.mugnier@foss.st.com>
>> M: Sylvain Petinot <sylvain.petinot@foss.st.com>
>>
>
>
> Best regards,
> Krzysztof
--
Regards,
Benjamin
© 2016 - 2025 Red Hat, Inc.