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 Device Tree Bindings
9
10maintainers:
11  - Dongchun Zhu <dongchun.zhu@mediatek.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    type: object
61    additionalProperties: false
62    description:
63      A node containing an output port node with an endpoint definition
64      as documented in
65      Documentation/devicetree/bindings/media/video-interfaces.txt
66
67    properties:
68      endpoint:
69        type: object
70
71        properties:
72          data-lanes:
73            description: |-
74              The driver only supports four-lane operation.
75            items:
76              - const: 1
77              - const: 2
78              - const: 3
79              - const: 4
80
81          link-frequencies:
82            $ref: /schemas/types.yaml#/definitions/uint64-array
83            description:
84              Allowed data bus frequencies. 360000000, 180000000 Hz or both
85              are supported by the driver.
86
87
88        required:
89          - link-frequencies
90
91    required:
92      - endpoint
93
94required:
95  - compatible
96  - reg
97  - clocks
98  - clock-names
99  - clock-frequency
100  - dovdd-supply
101  - avdd-supply
102  - dvdd-supply
103  - reset-gpios
104  - port
105
106additionalProperties: false
107
108examples:
109  - |
110    #include <dt-bindings/gpio/gpio.h>
111
112    i2c {
113        #address-cells = <1>;
114        #size-cells = <0>;
115
116        ov8856: camera@10 {
117            compatible = "ovti,ov8856";
118            reg = <0x10>;
119
120            reset-gpios = <&pio 111 GPIO_ACTIVE_LOW>;
121            pinctrl-names = "default";
122            pinctrl-0 = <&clk_24m_cam>;
123
124            clocks = <&cam_osc>;
125            clock-names = "xvclk";
126            clock-frequency = <19200000>;
127
128            avdd-supply = <&mt6358_vcama2_reg>;
129            dvdd-supply = <&mt6358_vcamd_reg>;
130            dovdd-supply = <&mt6358_vcamio_reg>;
131
132            port {
133                wcam_out: endpoint {
134                    remote-endpoint = <&mipi_in_wcam>;
135                    data-lanes = <1 2 3 4>;
136                    link-frequencies = /bits/ 64 <360000000>;
137                };
138            };
139        };
140    };
141...