Re: [PATCH v2 2/4] media: dt-bindings: Add OmniVision OV08X40
From: Sakari Ailus
Date: Tue Oct 01 2024 - 09:22:44 EST
Hi Bryan,
On Tue, Oct 01, 2024 at 02:15:50PM +0100, Bryan O'Donoghue wrote:
> Add bindings for the already upstream OV08X40 to enable usage of this
> sensor on DT based systems.
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> ---
> .../bindings/media/i2c/ovti,ov08x40.yaml | 120 +++++++++++++++++++++
> 1 file changed, 120 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov08x40.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov08x40.yaml
> new file mode 100644
> index 0000000000000000000000000000000000000000..bc499e4b5d48ed57250dec33a91c92552f137cf9
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov08x40.yaml
> @@ -0,0 +1,120 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright (c) 2024 Linaro Ltd.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/media/i2c/ovti,ov08x40.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Omnivision OV08X40 CMOS Sensor
> +
> +maintainers:
> + - Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> +
> +description: |
> + The Omnivision OV08X40 is a 9.2 megapixel, CMOS image sensor which supports:
> + - Automatic black level calibration (ABLC)
> + - Programmable controls for frame rate, mirror and flip, binning, cropping
> + and windowing
> + - Output formats 10-bit 4C RGB RAW, 10-bit Bayer RAW
> + - 4-lane MIPI D-PHY TX @ 1 Gbps per lane
> + - 2-lane MPIP D-PHY TX @ 2 Gbps per lane
> + - Dynamic defect pixel cancellation
> + - Standard SCCB command interface
> +
> +properties:
> + compatible:
> + const: ovti,ov08x40
> +
> + reg:
> + maxItems: 1
> +
> + assigned-clocks: true
> + assigned-clock-parents: true
> + assigned-clock-rates: true
As much as I'd like to see these mandatory, there seem to be cases where
they can't be used. Therefore I'd leave them in the example only.
If that turns out to be the only change to do, I can also handle that while
applying.
> +
> + clocks:
> + maxItems: 1
> +
> + avdd-supply:
> + description: Analogue circuit voltage supply.
> +
> + dovdd-supply:
> + description: I/O circuit voltage supply.
> +
> + dvdd-supply:
> + description: Digital circuit voltage supply.
> +
> + reset-gpios:
> + description: Active low GPIO connected to XSHUTDOWN pad of the sensor.
> +
> + port:
> + $ref: /schemas/graph.yaml#/$defs/port-base
> + additionalProperties: false
> +
> + properties:
> + endpoint:
> + $ref: /schemas/media/video-interfaces.yaml#
> + unevaluatedProperties: false
> +
> + properties:
> + data-lanes:
> + oneOf:
> + - items:
> + - const: 1
> + - const: 2
> + - items:
> + - const: 1
> + - const: 2
> + - const: 3
> + - const: 4
> +
> + link-frequencies: true
> +
> + required:
> + - data-lanes
> + - link-frequencies
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - port
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ov08x40: camera@36 {
> + compatible = "ovti,ov08x40";
> + reg = <0x36>;
> +
> + reset-gpios = <&tlmm 111 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cam_rgb_defaultt>;
> +
> + clocks = <&ov08x40_clk>;
> +
> + assigned-clocks = <&ov9282_clk>;
> + assigned-clock-parents = <&ov9282_clk_parent>;
> + assigned-clock-rates = <19200000>;
> +
> + avdd-supply = <&vreg_l7b_2p8>;
> + dvdd-supply = <&vreg_l7b_1p8>;
> + dovdd-supply = <&vreg_l3m_1p8>;
> +
> + port {
> + ov08x40_ep: endpoint {
> + remote-endpoint = <&csiphy4_ep>;
> + data-lanes = <1 2 3 4>;
> + link-frequencies = /bits/ 64 <400000000>;
> + };
> + };
> + };
> + };
> +...
>
--
Kind regards,
Sakari Ailus