mirror of
https://github.com/torvalds/linux.git
synced 2026-04-24 01:25:49 -04:00
The Omnivision OV5640 is supported by Linux thanks to its device tree binding. Now that we have the DT validation in place, let's convert the device tree bindings for that driver over to a YAML schema. Cc: linux-media@vger.kernel.org Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: Steve Longerbeam <slongerbeam@gmail.com> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20211015072830.8580-1-maxime@cerno.tech Signed-off-by: Rob Herring <robh@kernel.org>
155 lines
3.6 KiB
YAML
155 lines
3.6 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/media/i2c/ovti,ov5640.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: OmniVision OV5640 Image Sensor Device Tree Bindings
|
|
|
|
maintainers:
|
|
- Steve Longerbeam <slongerbeam@gmail.com>
|
|
|
|
allOf:
|
|
- $ref: /schemas/media/video-interface-devices.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
const: ovti,ov5640
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
description: XCLK Input Clock
|
|
|
|
clock-names:
|
|
const: xclk
|
|
|
|
AVDD-supply:
|
|
description: Analog voltage supply, 2.8 volts
|
|
|
|
DVDD-supply:
|
|
description: Digital core voltage supply, 1.5 volts
|
|
|
|
DOVDD-supply:
|
|
description: Digital I/O voltage supply, 1.8 volts
|
|
|
|
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]
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- clocks
|
|
- clock-names
|
|
- AVDD-supply
|
|
- DVDD-supply
|
|
- DOVDD-supply
|
|
- port
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/clock/imx6qdl-clock.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
camera@3c {
|
|
compatible = "ovti,ov5640";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_ov5640>;
|
|
reg = <0x3c>;
|
|
clocks = <&clks IMX6QDL_CLK_CKO>;
|
|
clock-names = "xclk";
|
|
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
|
|
AVDD-supply = <&vgen3_reg>; /* 2.8v */
|
|
DVDD-supply = <&vgen2_reg>; /* 1.5v */
|
|
powerdown-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
|
|
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
|
|
rotation = <180>;
|
|
|
|
port {
|
|
/* MIPI CSI-2 bus endpoint */
|
|
ov5640_to_mipi_csi2: endpoint {
|
|
remote-endpoint = <&mipi_csi2_from_ov5640>;
|
|
clock-lanes = <0>;
|
|
data-lanes = <1 2>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
- |
|
|
i2c {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
camera@3c {
|
|
compatible = "ovti,ov5640";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_ov5640>;
|
|
reg = <0x3c>;
|
|
clocks = <&clk_ext_camera>;
|
|
clock-names = "xclk";
|
|
DOVDD-supply = <&vgen4_reg>; /* 1.8v */
|
|
AVDD-supply = <&vgen3_reg>; /* 2.8v */
|
|
DVDD-supply = <&vgen2_reg>; /* 1.5v */
|
|
|
|
port {
|
|
/* Parallel bus endpoint */
|
|
ov5640_to_parallel: endpoint {
|
|
remote-endpoint = <¶llel_from_ov5640>;
|
|
bus-width = <8>;
|
|
data-shift = <2>; /* lines 9:2 are used */
|
|
hsync-active = <0>;
|
|
vsync-active = <0>;
|
|
pclk-sample = <1>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
...
|