On Sat, May 09, 2020 at 04:06:26PM +0800, Dongchun Zhu wrote: > Add DT bindings documentation for Omnivision OV02A10 image sensor. > > Signed-off-by: Dongchun Zhu <dongchun.zhu@xxxxxxxxxxxx> > --- > .../bindings/media/i2c/ovti,ov02a10.yaml | 184 +++++++++++++++++++++ > MAINTAINERS | 7 + > 2 files changed, 191 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > > diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > new file mode 100644 > index 0000000..5468d1b > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > @@ -0,0 +1,184 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +# Copyright (c) 2020 MediaTek Inc. > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/i2c/ovti,ov02a10.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Omnivision OV02A10 CMOS Sensor Device Tree Bindings > + > +maintainers: > + - Dongchun Zhu <dongchun.zhu@xxxxxxxxxxxx> > + > +description: |- > + The Omnivision OV02A10 is a low-cost, high performance, 1/5-inch, 2 megapixel > + image sensor, which is the latest production derived from Omnivision's CMOS > + image sensor technology. Ihis chip supports high frame rate speeds up to 30fps > + @ 1600x1200 (UXGA) resolution transferred over a 1-lane MIPI interface. The > + sensor output is available via CSI-2 serial data output. > + > +properties: > + compatible: > + const: ovti,ov02a10 > + > + reg: > + description: I2C device address Drop this. Nothing specific to this device. > + maxItems: 1 > + > + clocks: > + items: > + - description: top mux camtg clock > + - description: devider clock typo > + > + clock-names: > + items: > + - const: eclk > + - const: freq_mux > + > + clock-frequency: > + description: > + Frequency of the eclk clock in Hertz. > + > + dovdd-supply: > + description: > + Definition of the regulator used as interface power supply. > + > + avdd-supply: > + description: > + Definition of the regulator used as analog power supply. > + > + dvdd-supply: > + description: > + Definition of the regulator used as digital power supply. > + > + powerdown-gpios: > + maxItems: 1 > + > + reset-gpios: > + maxItems: 1 > + > + rotation: > + description: > + Definition of the sensor's placement, valid values are 0 and 180. > + allOf: > + - $ref: "/schemas/types.yaml#/definitions/uint32" > + - enum: > + - 0 # Sensor Mounted Upright (default) > + - 180 # Sensor Mounted Upside Down > + > + ovti,mipi-tx-speed: > + description: > + Indication of MIPI transmission speed select, which is to control D-PHY > + timing setting by adjusting MIPI clock voltage to improve the clock > + driver capability. > + allOf: > + - $ref: "/schemas/types.yaml#/definitions/uint32" > + - enum: > + - 0 # 20MHz - 30MHz > + - 1 # 30MHz - 50MHz > + - 2 # 50MHz - 75MHz > + - 3 # 75MHz - 100MHz > + - 4 # 100MHz - 130MHz (suggested) > + - 5 # Manual > + > + # See ../video-interfaces.txt for details > + port: > + type: object > + additionalProperties: false > + description: > + A node containing an output port node with an endpoint definition > + as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt No need for repeating a generic description of a common property. > + > + properties: > + endpoint: > + type: object > + > + properties: > + data-lanes: > + description: |- > + The driver only supports 1-lane operation. What the driver supports is not relevant. > + items: > + - const: 1 > + - const: 2 > + - const: 3 > + - const: 4 > + > + clock-noncontinuous: > + type: boolean > + description: |- > + MIPI CSI-2 clock is non-continuous if this property is present, > + otherwise it's continuous. Assume this has a common definition, so just need: clock-noncontinuous: true > + > + link-frequencies: > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint64-array > + description: > + Allowed data bus frequencies. 39000000 Hz is supported by > + the driver. This too is a common property. Though 39000000 looks like a constraint. However, what the driver supports is not relevant. > + > + required: > + - link-frequencies > + > + required: > + - endpoint > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - clock-frequency > + - dovdd-supply > + - avdd-supply > + - dvdd-supply > + - powerdown-gpios > + - reset-gpios > + - port > + > +additionalProperties: false > + > +examples: > + - | > + > + #include <dt-bindings/clock/mt8183-clk.h> > + #include <dt-bindings/gpio/gpio.h> > + > + i2c { > + clock-frequency = <400000>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + ov02a10: camera-sensor@3d { > + compatible = "ovti,ov02a10"; > + reg = <0x3d>; > + pinctrl-names = "default"; > + pinctrl-0 = <&clk_24m_cam>; > + > + clocks = <&topckgen CLK_TOP_MUX_CAMTG>, > + <&topckgen CLK_TOP_UNIVP_192M_D8>; > + clock-names = "eclk", "freq_mux"; > + clock-frequency = <24000000>; > + > + rotation = <180>; > + ovti,mipi-tx-speed = <3>; > + > + dovdd-supply = <&mt6358_vcamio_reg>; > + avdd-supply = <&mt6358_vcama1_reg>; > + dvdd-supply = <&mt6358_vcn18_reg>; > + > + powerdown-gpios = <&pio 107 GPIO_ACTIVE_LOW>; > + reset-gpios = <&pio 109 GPIO_ACTIVE_HIGH>; > + > + port { > + wcam_out: endpoint { > + remote-endpoint = <&mipi_in_wcam>; > + data-lanes = <1>; This doesn't match the schema which says this should be 4 entries. > + clock-noncontinuous; > + link-frequencies = /bits/ 64 <390000000>; > + }; > + }; > + }; > + }; > + > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index e64e5db..63a2335 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -12389,6 +12389,13 @@ M: Harald Welte <laforge@xxxxxxxxxxxx> > S: Maintained > F: drivers/char/pcmcia/cm4040_cs.* > > +OMNIVISION OV02A10 SENSOR DRIVER > +M: Dongchun Zhu <dongchun.zhu@xxxxxxxxxxxx> > +L: linux-media@xxxxxxxxxxxxxxx > +S: Maintained > +T: git git://linuxtv.org/media_tree.git > +F: Documentation/devicetree/bindings/media/i2c/ovti,ov02a10.yaml > + > OMNIVISION OV13858 SENSOR DRIVER > M: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx> > L: linux-media@xxxxxxxxxxxxxxx > -- > 2.9.2