1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2# Copyright (c) 2019 MediaTek Inc.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/media/i2c/ov8856.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Omnivision OV8856 CMOS Sensor
9
10maintainers:
11  - Sakari Ailus <sakari.ailus@linux.intel.com>
12
13description: |-
14  The Omnivision OV8856 is a high performance, 1/4-inch, 8 megapixel, CMOS
15  image sensor that delivers 3264x2448 at 30fps. It provides full-frame,
16  sub-sampled, and windowed 10-bit MIPI images in various formats via the
17  Serial Camera Control Bus (SCCB) interface. This chip is programmable
18  through I2C and two-wire SCCB. The sensor output is available via CSI-2
19  serial data output (up to 4-lane).
20
21properties:
22  compatible:
23    const: ovti,ov8856
24
25  reg:
26    maxItems: 1
27
28  clocks:
29    maxItems: 1
30
31  clock-names:
32    description:
33      Input clock for the sensor.
34    items:
35      - const: xvclk
36
37  clock-frequency:
38    description:
39      Frequency of the xvclk clock in Hertz.
40
41  dovdd-supply:
42    description:
43      Definition of the regulator used as interface power supply.
44
45  avdd-supply:
46    description:
47      Definition of the regulator used as analog power supply.
48
49  dvdd-supply:
50    description:
51      Definition of the regulator used as digital power supply.
52
53  reset-gpios:
54    description:
55      The phandle and specifier for the GPIO that controls sensor reset.
56      This corresponds to the hardware pin XSHUTDOWN which is physically
57      active low.
58
59  port:
60    $ref: /schemas/graph.yaml#/$defs/port-base
61    additionalProperties: false
62
63    properties:
64      endpoint:
65        $ref: /schemas/media/video-interfaces.yaml#
66        unevaluatedProperties: false
67
68        properties:
69          data-lanes:
70            oneOf:
71              - items:
72                  - const: 1
73              - items:
74                  - const: 1
75                  - const: 2
76              - items:
77                  - const: 1
78                  - const: 2
79                  - const: 3
80                  - const: 4
81
82        required:
83          - link-frequencies
84
85required:
86  - compatible
87  - reg
88  - clocks
89  - clock-names
90  - clock-frequency
91  - dovdd-supply
92  - avdd-supply
93  - dvdd-supply
94  - reset-gpios
95  - port
96
97additionalProperties: false
98
99examples:
100  - |
101    #include <dt-bindings/gpio/gpio.h>
102
103    i2c {
104        #address-cells = <1>;
105        #size-cells = <0>;
106
107        ov8856: camera@10 {
108            compatible = "ovti,ov8856";
109            reg = <0x10>;
110
111            reset-gpios = <&pio 111 GPIO_ACTIVE_LOW>;
112            pinctrl-names = "default";
113            pinctrl-0 = <&clk_24m_cam>;
114
115            clocks = <&cam_osc>;
116            clock-names = "xvclk";
117            clock-frequency = <19200000>;
118
119            avdd-supply = <&mt6358_vcama2_reg>;
120            dvdd-supply = <&mt6358_vcamd_reg>;
121            dovdd-supply = <&mt6358_vcamio_reg>;
122
123            port {
124                wcam_out: endpoint {
125                    remote-endpoint = <&mipi_in_wcam>;
126                    data-lanes = <1 2 3 4>;
127                    link-frequencies = /bits/ 64 <360000000>;
128                };
129            };
130        };
131    };
132...
133