Message ID | 20231206155900.123904-2-jacopo.mondi@ideasonboard.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Sakari Ailus |
Headers |
Received: from ny.mirrors.kernel.org ([147.75.199.223]) by www.linuxtv.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <linux-media+bounces-1761-patchwork=linuxtv.org@vger.kernel.org>) id 1rAuJM-00ChPQ-6m for patchwork@linuxtv.org; Wed, 06 Dec 2023 15:59:44 +0000 Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 8F5391C20EE7 for <patchwork@linuxtv.org>; Wed, 6 Dec 2023 15:59:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B92E845BFF; Wed, 6 Dec 2023 15:59:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="O73lYy4g" X-Original-To: linux-media@vger.kernel.org Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74D8FD41; Wed, 6 Dec 2023 07:59:27 -0800 (PST) Received: from localhost.localdomain (93-61-96-190.ip145.fastwebnet.it [93.61.96.190]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2DB2DE45; Wed, 6 Dec 2023 16:58:44 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1701878324; bh=U1i54No0AsNROX5iRRF3NAfluQ4XKjRZg0zpXf7sU1g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O73lYy4g2AKldqoqnHM00Y0ODgATGR6zI8CylAH60AD0IO5U7lC7/R43TuDvjdKOY rmWe0lM77WWe30NhZ4b51NIRho0GMiHMu7Ahp9cH+kvst3/xg7GOhXNBeIZ7x6EZjn Xwo2mZbeOKISO7Kyg09mkmw8AGi1fePcFefRIiig= From: Jacopo Mondi <jacopo.mondi@ideasonboard.com> To: Sakari Ailus <sakari.ailus@linux.intel.com>, Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Dave Stevenson <dave.stevenson@raspberrypi.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org> Cc: Jacopo Mondi <jacopo.mondi@ideasonboard.com>, linux-media@vger.kernel.org, Kieran Bingham <kieran.bingham@ideasonboard.com>, devicetree@vger.kernel.org, Lee Jackson <lee.jackson@arducam.com>, Conor Dooley <conor.dooley@microchip.com> Subject: [PATCH v5 1/2] media: dt-bindings: Add OmniVision OV64A40 Date: Wed, 6 Dec 2023 16:58:59 +0100 Message-ID: <20231206155900.123904-2-jacopo.mondi@ideasonboard.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231206155900.123904-1-jacopo.mondi@ideasonboard.com> References: <20231206155900.123904-1-jacopo.mondi@ideasonboard.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: <linux-media.vger.kernel.org> List-Subscribe: <mailto:linux-media+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-media+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-LSpam-Score: -4.8 (----) X-LSpam-Report: No, score=-4.8 required=5.0 tests=BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,HEADER_FROM_DIFFERENT_DOMAINS=0.5,MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_MED=-2.3 autolearn=ham autolearn_force=no |
Series |
media: i2c: Add driver for OmniVision OV64A40
|
|
Commit Message
Jacopo Mondi
Dec. 6, 2023, 3:58 p.m. UTC
Add bindings for OmniVision OV64A40. Co-developed-by: Lee Jackson <lee.jackson@arducam.com> Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> --- .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml -- 2.41.0
Comments
Hi Jacopo, On Wed, Dec 06, 2023 at 04:58:59PM +0100, Jacopo Mondi wrote: > Add bindings for OmniVision OV64A40. > > Co-developed-by: Lee Jackson <lee.jackson@arducam.com> > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > Acked-by: Conor Dooley <conor.dooley@microchip.com> > --- > .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ > 1 file changed, 97 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > new file mode 100644 > index 000000000000..e6c9d540a2dd > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > @@ -0,0 +1,97 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: OmniVision OV64A40 Image Sensor > + > +maintainers: > + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> > + > +allOf: > + - $ref: /schemas/media/video-interface-devices.yaml# > + > +properties: > + compatible: > + const: ovti,ov64a40 > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + avdd-supply: > + description: Analog voltage supply, 2.8 volts > + > + dvdd-supply: > + description: Digital core voltage supply, 1.1 volts > + > + dovdd-supply: > + description: Digital I/O voltage supply, 1.8 volts > + > + powerdown-gpios: > + maxItems: 1 > + > + reset-gpios: > + maxItems: 1 > + > + port: > + $ref: /schemas/graph.yaml#/$defs/port-base > + additionalProperties: false > + > + properties: > + endpoint: > + $ref: /schemas/media/video-interfaces.yaml# > + additionalProperties: false > + > + properties: > + bus-type: > + enum: > + - 1 # MIPI CSI-2 C-PHY > + - 4 # MIPI CSI-2 D-PHY > + data-lanes: true > + link-frequencies: true > + clock-noncontinuous: true > + remote-endpoint: true > + > +required: > + - compatible > + - reg > + - clocks > + - port > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + camera@36 { > + compatible = "ovti,ov64a40"; > + reg = <0x36>; > + clocks = <&camera_clk>; > + dovdd-supply = <&vgen4_reg>; > + avdd-supply = <&vgen3_reg>; > + dvdd-supply = <&vgen2_reg>; > + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > + rotation = <180>; > + orientation = <2>; > + > + port { > + endpoint { > + remote-endpoint = <&mipi_csi2_in>; > + bus-type = <4>; > + data-lanes = <1 2 3 4>; This is missing link-frequencies. > + }; > + }; > + }; > + }; > + > +...
Hi Sakari On Thu, Dec 07, 2023 at 09:57:06AM +0000, Sakari Ailus wrote: > Hi Jacopo, > > On Wed, Dec 06, 2023 at 04:58:59PM +0100, Jacopo Mondi wrote: > > Add bindings for OmniVision OV64A40. > > > > Co-developed-by: Lee Jackson <lee.jackson@arducam.com> > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > --- > > .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ > > 1 file changed, 97 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > new file mode 100644 > > index 000000000000..e6c9d540a2dd > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > @@ -0,0 +1,97 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: OmniVision OV64A40 Image Sensor > > + > > +maintainers: > > + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > + > > +allOf: > > + - $ref: /schemas/media/video-interface-devices.yaml# > > + > > +properties: > > + compatible: > > + const: ovti,ov64a40 > > + > > + reg: > > + maxItems: 1 > > + > > + clocks: > > + maxItems: 1 > > + > > + avdd-supply: > > + description: Analog voltage supply, 2.8 volts > > + > > + dvdd-supply: > > + description: Digital core voltage supply, 1.1 volts > > + > > + dovdd-supply: > > + description: Digital I/O voltage supply, 1.8 volts > > + > > + powerdown-gpios: > > + maxItems: 1 > > + > > + reset-gpios: > > + maxItems: 1 > > + > > + port: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + additionalProperties: false > > + > > + properties: > > + endpoint: > > + $ref: /schemas/media/video-interfaces.yaml# > > + additionalProperties: false > > + > > + properties: > > + bus-type: > > + enum: > > + - 1 # MIPI CSI-2 C-PHY > > + - 4 # MIPI CSI-2 D-PHY > > + data-lanes: true > > + link-frequencies: true > > + clock-noncontinuous: true > > + remote-endpoint: true > > + > > +required: > > + - compatible > > + - reg > > + - clocks > > + - port > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + #include <dt-bindings/gpio/gpio.h> > > + > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + camera@36 { > > + compatible = "ovti,ov64a40"; > > + reg = <0x36>; > > + clocks = <&camera_clk>; > > + dovdd-supply = <&vgen4_reg>; > > + avdd-supply = <&vgen3_reg>; > > + dvdd-supply = <&vgen2_reg>; > > + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > + rotation = <180>; > > + orientation = <2>; > > + > > + port { > > + endpoint { > > + remote-endpoint = <&mipi_csi2_in>; > > + bus-type = <4>; > > + data-lanes = <1 2 3 4>; > > This is missing link-frequencies. > I was not sure about this, in facts. Bindings are about HW while link-frequencies is only about restricting how the driver configures the sensor. Thus, I've not listed it as mandatory however the driver mandates its presence. Should I make it mandatory in bindings ? > > + }; > > + }; > > + }; > > + }; > > + > > +... > > -- > Regards, > > Sakari Ailus
Hi Jacopo, On Thu, Dec 07, 2023 at 11:13:21AM +0100, Jacopo Mondi wrote: > Hi Sakari > > On Thu, Dec 07, 2023 at 09:57:06AM +0000, Sakari Ailus wrote: > > Hi Jacopo, > > > > On Wed, Dec 06, 2023 at 04:58:59PM +0100, Jacopo Mondi wrote: > > > Add bindings for OmniVision OV64A40. > > > > > > Co-developed-by: Lee Jackson <lee.jackson@arducam.com> > > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > --- > > > .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ > > > 1 file changed, 97 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > new file mode 100644 > > > index 000000000000..e6c9d540a2dd > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > @@ -0,0 +1,97 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: OmniVision OV64A40 Image Sensor > > > + > > > +maintainers: > > > + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > + > > > +allOf: > > > + - $ref: /schemas/media/video-interface-devices.yaml# > > > + > > > +properties: > > > + compatible: > > > + const: ovti,ov64a40 > > > + > > > + reg: > > > + maxItems: 1 > > > + > > > + clocks: > > > + maxItems: 1 > > > + > > > + avdd-supply: > > > + description: Analog voltage supply, 2.8 volts > > > + > > > + dvdd-supply: > > > + description: Digital core voltage supply, 1.1 volts > > > + > > > + dovdd-supply: > > > + description: Digital I/O voltage supply, 1.8 volts > > > + > > > + powerdown-gpios: > > > + maxItems: 1 > > > + > > > + reset-gpios: > > > + maxItems: 1 > > > + > > > + port: > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > + additionalProperties: false > > > + > > > + properties: > > > + endpoint: > > > + $ref: /schemas/media/video-interfaces.yaml# > > > + additionalProperties: false > > > + > > > + properties: > > > + bus-type: > > > + enum: > > > + - 1 # MIPI CSI-2 C-PHY > > > + - 4 # MIPI CSI-2 D-PHY > > > + data-lanes: true > > > + link-frequencies: true > > > + clock-noncontinuous: true > > > + remote-endpoint: true > > > + > > > +required: > > > + - compatible > > > + - reg > > > + - clocks > > > + - port > > > + > > > +unevaluatedProperties: false > > > + > > > +examples: > > > + - | > > > + #include <dt-bindings/gpio/gpio.h> > > > + > > > + i2c { > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + > > > + camera@36 { > > > + compatible = "ovti,ov64a40"; > > > + reg = <0x36>; > > > + clocks = <&camera_clk>; > > > + dovdd-supply = <&vgen4_reg>; > > > + avdd-supply = <&vgen3_reg>; > > > + dvdd-supply = <&vgen2_reg>; > > > + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > > + rotation = <180>; > > > + orientation = <2>; > > > + > > > + port { > > > + endpoint { > > > + remote-endpoint = <&mipi_csi2_in>; > > > + bus-type = <4>; > > > + data-lanes = <1 2 3 4>; > > > > This is missing link-frequencies. > > > > I was not sure about this, in facts. > > Bindings are about HW while link-frequencies is only about restricting > how the driver configures the sensor. Thus, I've not listed it as > mandatory however the driver mandates its presence. > > Should I make it mandatory in bindings ? See <URL:https://hverkuil.home.xs4all.nl/spec/driver-api/camera-sensor.html#handling-clocks>. IOW it's about the driver, too, but only secondarily. > > > > + }; > > > + }; > > > + }; > > > + }; > > > + > > > +... > >
Hi Sakari On Thu, Dec 07, 2023 at 10:35:03AM +0000, Sakari Ailus wrote: > Hi Jacopo, > > On Thu, Dec 07, 2023 at 11:13:21AM +0100, Jacopo Mondi wrote: > > Hi Sakari > > > > On Thu, Dec 07, 2023 at 09:57:06AM +0000, Sakari Ailus wrote: > > > Hi Jacopo, > > > > > > On Wed, Dec 06, 2023 at 04:58:59PM +0100, Jacopo Mondi wrote: > > > > Add bindings for OmniVision OV64A40. > > > > > > > > Co-developed-by: Lee Jackson <lee.jackson@arducam.com> > > > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > > --- > > > > .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ > > > > 1 file changed, 97 insertions(+) > > > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > new file mode 100644 > > > > index 000000000000..e6c9d540a2dd > > > > --- /dev/null > > > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > @@ -0,0 +1,97 @@ > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > +%YAML 1.2 > > > > +--- > > > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > + > > > > +title: OmniVision OV64A40 Image Sensor > > > > + > > > > +maintainers: > > > > + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > + > > > > +allOf: > > > > + - $ref: /schemas/media/video-interface-devices.yaml# > > > > + > > > > +properties: > > > > + compatible: > > > > + const: ovti,ov64a40 > > > > + > > > > + reg: > > > > + maxItems: 1 > > > > + > > > > + clocks: > > > > + maxItems: 1 > > > > + > > > > + avdd-supply: > > > > + description: Analog voltage supply, 2.8 volts > > > > + > > > > + dvdd-supply: > > > > + description: Digital core voltage supply, 1.1 volts > > > > + > > > > + dovdd-supply: > > > > + description: Digital I/O voltage supply, 1.8 volts > > > > + > > > > + powerdown-gpios: > > > > + maxItems: 1 > > > > + > > > > + reset-gpios: > > > > + maxItems: 1 > > > > + > > > > + port: > > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > + additionalProperties: false > > > > + > > > > + properties: > > > > + endpoint: > > > > + $ref: /schemas/media/video-interfaces.yaml# > > > > + additionalProperties: false > > > > + > > > > + properties: > > > > + bus-type: > > > > + enum: > > > > + - 1 # MIPI CSI-2 C-PHY > > > > + - 4 # MIPI CSI-2 D-PHY > > > > + data-lanes: true > > > > + link-frequencies: true > > > > + clock-noncontinuous: true > > > > + remote-endpoint: true > > > > + > > > > +required: > > > > + - compatible > > > > + - reg > > > > + - clocks > > > > + - port > > > > + > > > > +unevaluatedProperties: false > > > > + > > > > +examples: > > > > + - | > > > > + #include <dt-bindings/gpio/gpio.h> > > > > + > > > > + i2c { > > > > + #address-cells = <1>; > > > > + #size-cells = <0>; > > > > + > > > > + camera@36 { > > > > + compatible = "ovti,ov64a40"; > > > > + reg = <0x36>; > > > > + clocks = <&camera_clk>; > > > > + dovdd-supply = <&vgen4_reg>; > > > > + avdd-supply = <&vgen3_reg>; > > > > + dvdd-supply = <&vgen2_reg>; > > > > + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > > > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > > > + rotation = <180>; > > > > + orientation = <2>; > > > > + > > > > + port { > > > > + endpoint { > > > > + remote-endpoint = <&mipi_csi2_in>; > > > > + bus-type = <4>; > > > > + data-lanes = <1 2 3 4>; > > > > > > This is missing link-frequencies. > > > > > > > I was not sure about this, in facts. > > > > Bindings are about HW while link-frequencies is only about restricting > > how the driver configures the sensor. Thus, I've not listed it as > > mandatory however the driver mandates its presence. > > > > Should I make it mandatory in bindings ? > > See > <URL:https://hverkuil.home.xs4all.nl/spec/driver-api/camera-sensor.html#handling-clocks>. > > IOW it's about the driver, too, but only secondarily. > Should link-frequencies be made mandatory by video-interfaces.yaml if the bus type is CSI-2 (D-PHY as well as C-PHY I presume ?) > > > > > > + }; > > > > + }; > > > > + }; > > > > + }; > > > > + > > > > +... > > > > > -- > Regards, > > Sakari Ailus
Hi Jacopo, On Thu, Dec 07, 2023 at 11:42:35AM +0100, Jacopo Mondi wrote: > Hi Sakari > > On Thu, Dec 07, 2023 at 10:35:03AM +0000, Sakari Ailus wrote: > > Hi Jacopo, > > > > On Thu, Dec 07, 2023 at 11:13:21AM +0100, Jacopo Mondi wrote: > > > Hi Sakari > > > > > > On Thu, Dec 07, 2023 at 09:57:06AM +0000, Sakari Ailus wrote: > > > > Hi Jacopo, > > > > > > > > On Wed, Dec 06, 2023 at 04:58:59PM +0100, Jacopo Mondi wrote: > > > > > Add bindings for OmniVision OV64A40. > > > > > > > > > > Co-developed-by: Lee Jackson <lee.jackson@arducam.com> > > > > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > > > --- > > > > > .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ > > > > > 1 file changed, 97 insertions(+) > > > > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > new file mode 100644 > > > > > index 000000000000..e6c9d540a2dd > > > > > --- /dev/null > > > > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > @@ -0,0 +1,97 @@ > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > +%YAML 1.2 > > > > > +--- > > > > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > + > > > > > +title: OmniVision OV64A40 Image Sensor > > > > > + > > > > > +maintainers: > > > > > + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > > + > > > > > +allOf: > > > > > + - $ref: /schemas/media/video-interface-devices.yaml# > > > > > + > > > > > +properties: > > > > > + compatible: > > > > > + const: ovti,ov64a40 > > > > > + > > > > > + reg: > > > > > + maxItems: 1 > > > > > + > > > > > + clocks: > > > > > + maxItems: 1 > > > > > + > > > > > + avdd-supply: > > > > > + description: Analog voltage supply, 2.8 volts > > > > > + > > > > > + dvdd-supply: > > > > > + description: Digital core voltage supply, 1.1 volts > > > > > + > > > > > + dovdd-supply: > > > > > + description: Digital I/O voltage supply, 1.8 volts > > > > > + > > > > > + powerdown-gpios: > > > > > + maxItems: 1 > > > > > + > > > > > + reset-gpios: > > > > > + maxItems: 1 > > > > > + > > > > > + port: > > > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > > + additionalProperties: false > > > > > + > > > > > + properties: > > > > > + endpoint: > > > > > + $ref: /schemas/media/video-interfaces.yaml# > > > > > + additionalProperties: false > > > > > + > > > > > + properties: > > > > > + bus-type: > > > > > + enum: > > > > > + - 1 # MIPI CSI-2 C-PHY > > > > > + - 4 # MIPI CSI-2 D-PHY > > > > > + data-lanes: true > > > > > + link-frequencies: true > > > > > + clock-noncontinuous: true > > > > > + remote-endpoint: true > > > > > + > > > > > +required: > > > > > + - compatible > > > > > + - reg > > > > > + - clocks > > > > > + - port > > > > > + > > > > > +unevaluatedProperties: false > > > > > + > > > > > +examples: > > > > > + - | > > > > > + #include <dt-bindings/gpio/gpio.h> > > > > > + > > > > > + i2c { > > > > > + #address-cells = <1>; > > > > > + #size-cells = <0>; > > > > > + > > > > > + camera@36 { > > > > > + compatible = "ovti,ov64a40"; > > > > > + reg = <0x36>; > > > > > + clocks = <&camera_clk>; > > > > > + dovdd-supply = <&vgen4_reg>; > > > > > + avdd-supply = <&vgen3_reg>; > > > > > + dvdd-supply = <&vgen2_reg>; > > > > > + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > > > > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > > > > + rotation = <180>; > > > > > + orientation = <2>; > > > > > + > > > > > + port { > > > > > + endpoint { > > > > > + remote-endpoint = <&mipi_csi2_in>; > > > > > + bus-type = <4>; > > > > > + data-lanes = <1 2 3 4>; > > > > > > > > This is missing link-frequencies. > > > > > > > > > > I was not sure about this, in facts. > > > > > > Bindings are about HW while link-frequencies is only about restricting > > > how the driver configures the sensor. Thus, I've not listed it as > > > mandatory however the driver mandates its presence. > > > > > > Should I make it mandatory in bindings ? > > > > See > > <URL:https://hverkuil.home.xs4all.nl/spec/driver-api/camera-sensor.html#handling-clocks>. > > > > IOW it's about the driver, too, but only secondarily. > > > > Should link-frequencies be made mandatory by video-interfaces.yaml if > the bus type is CSI-2 (D-PHY as well as C-PHY I presume ?) Works for me. There are certainly old bindings that don't have it at all so there would be warnings. Some drivers support just a single frequency, that's often the case with register list based drivers so things work just fine until someone goes and adds another to support a different system.
On Thu, Dec 07, 2023 at 10:58:29AM +0000, Sakari Ailus wrote: > Hi Jacopo, > > On Thu, Dec 07, 2023 at 11:42:35AM +0100, Jacopo Mondi wrote: > > Hi Sakari > > > > On Thu, Dec 07, 2023 at 10:35:03AM +0000, Sakari Ailus wrote: > > > Hi Jacopo, > > > > > > On Thu, Dec 07, 2023 at 11:13:21AM +0100, Jacopo Mondi wrote: > > > > Hi Sakari > > > > > > > > On Thu, Dec 07, 2023 at 09:57:06AM +0000, Sakari Ailus wrote: > > > > > Hi Jacopo, > > > > > > > > > > On Wed, Dec 06, 2023 at 04:58:59PM +0100, Jacopo Mondi wrote: > > > > > > Add bindings for OmniVision OV64A40. > > > > > > > > > > > > Co-developed-by: Lee Jackson <lee.jackson@arducam.com> > > > > > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > > > > --- > > > > > > .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ > > > > > > 1 file changed, 97 insertions(+) > > > > > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > new file mode 100644 > > > > > > index 000000000000..e6c9d540a2dd > > > > > > --- /dev/null > > > > > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > @@ -0,0 +1,97 @@ > > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > > +%YAML 1.2 > > > > > > +--- > > > > > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# > > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > + > > > > > > +title: OmniVision OV64A40 Image Sensor > > > > > > + > > > > > > +maintainers: > > > > > > + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > > > + > > > > > > +allOf: > > > > > > + - $ref: /schemas/media/video-interface-devices.yaml# > > > > > > + > > > > > > +properties: > > > > > > + compatible: > > > > > > + const: ovti,ov64a40 > > > > > > + > > > > > > + reg: > > > > > > + maxItems: 1 > > > > > > + > > > > > > + clocks: > > > > > > + maxItems: 1 > > > > > > + > > > > > > + avdd-supply: > > > > > > + description: Analog voltage supply, 2.8 volts > > > > > > + > > > > > > + dvdd-supply: > > > > > > + description: Digital core voltage supply, 1.1 volts > > > > > > + > > > > > > + dovdd-supply: > > > > > > + description: Digital I/O voltage supply, 1.8 volts > > > > > > + > > > > > > + powerdown-gpios: > > > > > > + maxItems: 1 > > > > > > + > > > > > > + reset-gpios: > > > > > > + maxItems: 1 > > > > > > + > > > > > > + port: > > > > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > > > + additionalProperties: false > > > > > > + > > > > > > + properties: > > > > > > + endpoint: > > > > > > + $ref: /schemas/media/video-interfaces.yaml# > > > > > > + additionalProperties: false > > > > > > + > > > > > > + properties: > > > > > > + bus-type: > > > > > > + enum: > > > > > > + - 1 # MIPI CSI-2 C-PHY > > > > > > + - 4 # MIPI CSI-2 D-PHY > > > > > > + data-lanes: true > > > > > > + link-frequencies: true > > > > > > + clock-noncontinuous: true > > > > > > + remote-endpoint: true > > > > > > + > > > > > > +required: > > > > > > + - compatible > > > > > > + - reg > > > > > > + - clocks > > > > > > + - port > > > > > > + > > > > > > +unevaluatedProperties: false > > > > > > + > > > > > > +examples: > > > > > > + - | > > > > > > + #include <dt-bindings/gpio/gpio.h> > > > > > > + > > > > > > + i2c { > > > > > > + #address-cells = <1>; > > > > > > + #size-cells = <0>; > > > > > > + > > > > > > + camera@36 { > > > > > > + compatible = "ovti,ov64a40"; > > > > > > + reg = <0x36>; > > > > > > + clocks = <&camera_clk>; > > > > > > + dovdd-supply = <&vgen4_reg>; > > > > > > + avdd-supply = <&vgen3_reg>; > > > > > > + dvdd-supply = <&vgen2_reg>; > > > > > > + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > > > > > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > > > > > + rotation = <180>; > > > > > > + orientation = <2>; > > > > > > + > > > > > > + port { > > > > > > + endpoint { > > > > > > + remote-endpoint = <&mipi_csi2_in>; > > > > > > + bus-type = <4>; > > > > > > + data-lanes = <1 2 3 4>; > > > > > > > > > > This is missing link-frequencies. > > > > > > > > > > > > > I was not sure about this, in facts. > > > > > > > > Bindings are about HW while link-frequencies is only about restricting > > > > how the driver configures the sensor. Thus, I've not listed it as > > > > mandatory however the driver mandates its presence. > > > > > > > > Should I make it mandatory in bindings ? > > > > > > See > > > <URL:https://hverkuil.home.xs4all.nl/spec/driver-api/camera-sensor.html#handling-clocks>. > > > > > > IOW it's about the driver, too, but only secondarily. > > > > > > > Should link-frequencies be made mandatory by video-interfaces.yaml if > > the bus type is CSI-2 (D-PHY as well as C-PHY I presume ?) > > Works for me. There are certainly old bindings that don't have it at all so > there would be warnings. Some drivers support just a single frequency, > that's often the case with register list based drivers so things work just > fine until someone goes and adds another to support a different system. > mmm, with a single link freq what the would be the point of specifying it in dts ? Maybe making it mandatory for everyone is not the best idea.. > -- > Regards, > > Sakari Ailus
On Thu, Dec 07, 2023 at 12:05:07PM +0100, Jacopo Mondi wrote: > On Thu, Dec 07, 2023 at 10:58:29AM +0000, Sakari Ailus wrote: > > Hi Jacopo, > > > > On Thu, Dec 07, 2023 at 11:42:35AM +0100, Jacopo Mondi wrote: > > > Hi Sakari > > > > > > On Thu, Dec 07, 2023 at 10:35:03AM +0000, Sakari Ailus wrote: > > > > Hi Jacopo, > > > > > > > > On Thu, Dec 07, 2023 at 11:13:21AM +0100, Jacopo Mondi wrote: > > > > > Hi Sakari > > > > > > > > > > On Thu, Dec 07, 2023 at 09:57:06AM +0000, Sakari Ailus wrote: > > > > > > Hi Jacopo, > > > > > > > > > > > > On Wed, Dec 06, 2023 at 04:58:59PM +0100, Jacopo Mondi wrote: > > > > > > > Add bindings for OmniVision OV64A40. > > > > > > > > > > > > > > Co-developed-by: Lee Jackson <lee.jackson@arducam.com> > > > > > > > Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > > > > Acked-by: Conor Dooley <conor.dooley@microchip.com> > > > > > > > --- > > > > > > > .../bindings/media/i2c/ovti,ov64a40.yaml | 97 +++++++++++++++++++ > > > > > > > 1 file changed, 97 insertions(+) > > > > > > > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > > new file mode 100644 > > > > > > > index 000000000000..e6c9d540a2dd > > > > > > > --- /dev/null > > > > > > > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml > > > > > > > @@ -0,0 +1,97 @@ > > > > > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > > > > > +%YAML 1.2 > > > > > > > +--- > > > > > > > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# > > > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > > + > > > > > > > +title: OmniVision OV64A40 Image Sensor > > > > > > > + > > > > > > > +maintainers: > > > > > > > + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> > > > > > > > + > > > > > > > +allOf: > > > > > > > + - $ref: /schemas/media/video-interface-devices.yaml# > > > > > > > + > > > > > > > +properties: > > > > > > > + compatible: > > > > > > > + const: ovti,ov64a40 > > > > > > > + > > > > > > > + reg: > > > > > > > + maxItems: 1 > > > > > > > + > > > > > > > + clocks: > > > > > > > + maxItems: 1 > > > > > > > + > > > > > > > + avdd-supply: > > > > > > > + description: Analog voltage supply, 2.8 volts > > > > > > > + > > > > > > > + dvdd-supply: > > > > > > > + description: Digital core voltage supply, 1.1 volts > > > > > > > + > > > > > > > + dovdd-supply: > > > > > > > + description: Digital I/O voltage supply, 1.8 volts > > > > > > > + > > > > > > > + powerdown-gpios: > > > > > > > + maxItems: 1 > > > > > > > + > > > > > > > + reset-gpios: > > > > > > > + maxItems: 1 > > > > > > > + > > > > > > > + port: > > > > > > > + $ref: /schemas/graph.yaml#/$defs/port-base > > > > > > > + additionalProperties: false > > > > > > > + > > > > > > > + properties: > > > > > > > + endpoint: > > > > > > > + $ref: /schemas/media/video-interfaces.yaml# > > > > > > > + additionalProperties: false > > > > > > > + > > > > > > > + properties: > > > > > > > + bus-type: > > > > > > > + enum: > > > > > > > + - 1 # MIPI CSI-2 C-PHY > > > > > > > + - 4 # MIPI CSI-2 D-PHY > > > > > > > + data-lanes: true > > > > > > > + link-frequencies: true > > > > > > > + clock-noncontinuous: true > > > > > > > + remote-endpoint: true > > > > > > > + > > > > > > > +required: > > > > > > > + - compatible > > > > > > > + - reg > > > > > > > + - clocks > > > > > > > + - port > > > > > > > + > > > > > > > +unevaluatedProperties: false > > > > > > > + > > > > > > > +examples: > > > > > > > + - | > > > > > > > + #include <dt-bindings/gpio/gpio.h> > > > > > > > + > > > > > > > + i2c { > > > > > > > + #address-cells = <1>; > > > > > > > + #size-cells = <0>; > > > > > > > + > > > > > > > + camera@36 { > > > > > > > + compatible = "ovti,ov64a40"; > > > > > > > + reg = <0x36>; > > > > > > > + clocks = <&camera_clk>; > > > > > > > + dovdd-supply = <&vgen4_reg>; > > > > > > > + avdd-supply = <&vgen3_reg>; > > > > > > > + dvdd-supply = <&vgen2_reg>; > > > > > > > + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; > > > > > > > + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; > > > > > > > + rotation = <180>; > > > > > > > + orientation = <2>; > > > > > > > + > > > > > > > + port { > > > > > > > + endpoint { > > > > > > > + remote-endpoint = <&mipi_csi2_in>; > > > > > > > + bus-type = <4>; > > > > > > > + data-lanes = <1 2 3 4>; > > > > > > > > > > > > This is missing link-frequencies. > > > > > > > > > > > > > > > > I was not sure about this, in facts. > > > > > > > > > > Bindings are about HW while link-frequencies is only about restricting > > > > > how the driver configures the sensor. Thus, I've not listed it as > > > > > mandatory however the driver mandates its presence. > > > > > > > > > > Should I make it mandatory in bindings ? > > > > > > > > See > > > > <URL:https://hverkuil.home.xs4all.nl/spec/driver-api/camera-sensor.html#handling-clocks>. > > > > > > > > IOW it's about the driver, too, but only secondarily. > > > > > > > > > > Should link-frequencies be made mandatory by video-interfaces.yaml if > > > the bus type is CSI-2 (D-PHY as well as C-PHY I presume ?) > > > > Works for me. There are certainly old bindings that don't have it at all so > > there would be warnings. Some drivers support just a single frequency, > > that's often the case with register list based drivers so things work just > > fine until someone goes and adds another to support a different system. > > > > mmm, with a single link freq what the would be the point of specifying it > in dts ? Maybe making it mandatory for everyone is not the best idea.. Because DT describes devices, not drivers?
diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml new file mode 100644 index 000000000000..e6c9d540a2dd --- /dev/null +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov64a40.yaml @@ -0,0 +1,97 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/i2c/ovti,ov64a40.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: OmniVision OV64A40 Image Sensor + +maintainers: + - Jacopo Mondi <jacopo.mondi@ideasonboard.com> + +allOf: + - $ref: /schemas/media/video-interface-devices.yaml# + +properties: + compatible: + const: ovti,ov64a40 + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + avdd-supply: + description: Analog voltage supply, 2.8 volts + + dvdd-supply: + description: Digital core voltage supply, 1.1 volts + + dovdd-supply: + description: Digital I/O voltage supply, 1.8 volts + + powerdown-gpios: + maxItems: 1 + + reset-gpios: + maxItems: 1 + + port: + $ref: /schemas/graph.yaml#/$defs/port-base + additionalProperties: false + + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + additionalProperties: false + + properties: + bus-type: + enum: + - 1 # MIPI CSI-2 C-PHY + - 4 # MIPI CSI-2 D-PHY + data-lanes: true + link-frequencies: true + clock-noncontinuous: true + remote-endpoint: true + +required: + - compatible + - reg + - clocks + - port + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + camera@36 { + compatible = "ovti,ov64a40"; + reg = <0x36>; + clocks = <&camera_clk>; + dovdd-supply = <&vgen4_reg>; + avdd-supply = <&vgen3_reg>; + dvdd-supply = <&vgen2_reg>; + powerdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; + rotation = <180>; + orientation = <2>; + + port { + endpoint { + remote-endpoint = <&mipi_csi2_in>; + bus-type = <4>; + data-lanes = <1 2 3 4>; + }; + }; + }; + }; + +...