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            allOf:
83              - $ref: /schemas/types.yaml#/definitions/uint64-array
84            description:
85              Allowed data bus frequencies. 360000000, 180000000 Hz or both
86              are supported by the driver.
87
88
89        required:
90          - link-frequencies
91
92    required:
93      - endpoint
94
95required:
96  - compatible
97  - reg
98  - clocks
99  - clock-names
100  - clock-frequency
101  - dovdd-supply
102  - avdd-supply
103  - dvdd-supply
104  - reset-gpios
105  - port
106
107additionalProperties: false
108
109examples:
110  - |
111    #include <dt-bindings/gpio/gpio.h>
112
113    i2c {
114        #address-cells = <1>;
115        #size-cells = <0>;
116
117        ov8856: camera@10 {
118            compatible = "ovti,ov8856";
119            reg = <0x10>;
120
121            reset-gpios = <&pio 111 GPIO_ACTIVE_LOW>;
122            pinctrl-names = "default";
123            pinctrl-0 = <&clk_24m_cam>;
124
125            clocks = <&cam_osc>;
126            clock-names = "xvclk";
127            clock-frequency = <19200000>;
128
129            avdd-supply = <&mt6358_vcama2_reg>;
130            dvdd-supply = <&mt6358_vcamd_reg>;
131            dovdd-supply = <&mt6358_vcamio_reg>;
132
133            port {
134                wcam_out: endpoint {
135                    remote-endpoint = <&mipi_in_wcam>;
136                    data-lanes = <1 2 3 4>;
137                    link-frequencies = /bits/ 64 <360000000>;
138                };
139            };
140        };
141    };
142...