Hi Fabio, On Wed, Aug 02, 2023 at 01:03:26PM -0300, Fabio Estevam wrote: > As explained in the description text from trivial-devices.yaml: > > "This is a list of trivial I2C and SPI devices that have simple device tree > bindings, consisting only of a compatible field, an address and possibly an > interrupt line." > > A camera device does not fall into this category as it needs other > properties such as regulators, reset and powerdown GPIOs, clocks, > media endpoint. > > Remove the OV5642 entry from trivial-devices.yaml and add its own > ovti,ov5642.yaml. > > Signed-off-by: Fabio Estevam <festevam@xxxxxxx> > Reviewed-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx> > --- > Changes since v2: > - Made ovti,ov5642.yaml dual-licensed (Conor) > - Fixed whitespace warning (Conor) > - Squased both patches (Conor) > - Added Conor's Reviewed-by tag. > - Added linux-media on Cc. > > .../bindings/media/i2c/ovti,ov5642.yaml | 118 ++++++++++++++++++ > .../devicetree/bindings/trivial-devices.yaml | 2 - > 2 files changed, 118 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov5642.yaml > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov5642.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov5642.yaml > new file mode 100644 > index 000000000000..b48f1bc6aca4 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov5642.yaml > @@ -0,0 +1,118 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov5642.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: OmniVision OV5642 Image Sensor > + > +maintainers: > + - Fabio Estevam <festevam@xxxxxxxxx> > + > +allOf: > + - $ref: /schemas/media/video-interface-devices.yaml# > + > +properties: > + compatible: > + const: ovti,ov5642 > + > + reg: > + maxItems: 1 > + > + clocks: > + description: XCLK Input Clock > + > + clock-names: > + const: xclk > + > + AVDD-supply: > + description: Analog voltage supply, 2.8V. > + > + DVDD-supply: > + description: Digital core voltage supply, 1.5V. > + > + DOVDD-supply: > + description: Digital I/O voltage supply, 1.8V. > + > + powerdown-gpios: > + maxItems: 1 > + description: Reference to the GPIO connected to the powerdown pin, if any. > + > + reset-gpios: > + maxItems: 1 > + description: Reference to the GPIO connected to the reset pin, if any. > + > + rotation: > + enum: > + - 0 > + - 180 > + > + port: > + description: Digital Output Port > + $ref: /schemas/graph.yaml#/$defs/port-base > + additionalProperties: false > + > + 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] > + > + bus-width: > + enum: [8, 10] > + > + data-shift: > + enum: [0, 2] You seem to have properties here that are specific to both parallel and CSI-2 buses. Which one does the sensor use? > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - port > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + camera@3c { > + compatible = "ovti,ov5642"; > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_ov5642>; > + reg = <0x3c>; > + clocks = <&clk_ext_camera>; > + clock-names = "xclk"; > + DOVDD-supply = <&vgen4_reg>; > + AVDD-supply = <&vgen3_reg>; > + DVDD-supply = <&vgen2_reg>; > + powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>; > + reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; > + > + port { > + /* Parallel bus endpoint */ > + ov5642_to_parallel: endpoint { > + remote-endpoint = <¶llel_from_ov5642>; > + bus-width = <8>; > + data-shift = <2>; /* lines 9:2 are used */ > + hsync-active = <0>; > + vsync-active = <0>; > + pclk-sample = <1>; > + }; > + }; > + }; > + }; > diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml > index 40bc475ee7e1..ab1423a4aa7f 100644 > --- a/Documentation/devicetree/bindings/trivial-devices.yaml > +++ b/Documentation/devicetree/bindings/trivial-devices.yaml > @@ -313,8 +313,6 @@ properties: > - nuvoton,w83773g > # OKI ML86V7667 video decoder > - oki,ml86v7667 > - # OV5642: Color CMOS QSXGA (5-megapixel) Image Sensor with OmniBSI and Embedded TrueFocus > - - ovti,ov5642 > # 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch > - plx,pex8648 > # Pulsedlight LIDAR range-finding sensor -- Regards, Sakari Ailus