1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*cb7aa33aSEmmanuel Vadot%YAML 1.2
3*cb7aa33aSEmmanuel Vadot---
4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/media/i2c/ovti,ov8858.yaml#
5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*cb7aa33aSEmmanuel Vadot
7*cb7aa33aSEmmanuel Vadottitle: OmniVision OV8858 Image Sensor
8*cb7aa33aSEmmanuel Vadot
9*cb7aa33aSEmmanuel Vadotmaintainers:
10*cb7aa33aSEmmanuel Vadot  - Jacopo Mondi <jacopo.mondi@ideasonboard.com>
11*cb7aa33aSEmmanuel Vadot  - Nicholas Roth <nicholas@rothemail.net>
12*cb7aa33aSEmmanuel Vadot
13*cb7aa33aSEmmanuel Vadotdescription: |
14*cb7aa33aSEmmanuel Vadot  The OmniVision OV8858 is a color CMOS 8 Megapixels (3264x2448) image sensor
15*cb7aa33aSEmmanuel Vadot  controlled through an I2C-compatible SCCB bus. The sensor transmits images
16*cb7aa33aSEmmanuel Vadot  on a MIPI CSI-2 output interface with up to 4 data lanes.
17*cb7aa33aSEmmanuel Vadot
18*cb7aa33aSEmmanuel Vadotproperties:
19*cb7aa33aSEmmanuel Vadot  compatible:
20*cb7aa33aSEmmanuel Vadot    const: ovti,ov8858
21*cb7aa33aSEmmanuel Vadot
22*cb7aa33aSEmmanuel Vadot  reg:
23*cb7aa33aSEmmanuel Vadot    maxItems: 1
24*cb7aa33aSEmmanuel Vadot
25*cb7aa33aSEmmanuel Vadot  clocks:
26*cb7aa33aSEmmanuel Vadot    maxItems: 1
27*cb7aa33aSEmmanuel Vadot    description: XVCLK external clock
28*cb7aa33aSEmmanuel Vadot
29*cb7aa33aSEmmanuel Vadot  clock-names:
30*cb7aa33aSEmmanuel Vadot    const: xvclk
31*cb7aa33aSEmmanuel Vadot
32*cb7aa33aSEmmanuel Vadot  dvdd-supply:
33*cb7aa33aSEmmanuel Vadot    description: Digital Domain Power Supply
34*cb7aa33aSEmmanuel Vadot
35*cb7aa33aSEmmanuel Vadot  avdd-supply:
36*cb7aa33aSEmmanuel Vadot    description: Analog Domain Power Supply
37*cb7aa33aSEmmanuel Vadot
38*cb7aa33aSEmmanuel Vadot  dovdd-supply:
39*cb7aa33aSEmmanuel Vadot    description: I/O Domain Power Supply
40*cb7aa33aSEmmanuel Vadot
41*cb7aa33aSEmmanuel Vadot  powerdown-gpios:
42*cb7aa33aSEmmanuel Vadot    description: PWDNB powerdown GPIO (active low)
43*cb7aa33aSEmmanuel Vadot
44*cb7aa33aSEmmanuel Vadot  reset-gpios:
45*cb7aa33aSEmmanuel Vadot    maxItems: 1
46*cb7aa33aSEmmanuel Vadot    description: XSHUTDN reset GPIO (active low)
47*cb7aa33aSEmmanuel Vadot
48*cb7aa33aSEmmanuel Vadot  port:
49*cb7aa33aSEmmanuel Vadot    description: MIPI CSI-2 transmitter port
50*cb7aa33aSEmmanuel Vadot    $ref: /schemas/graph.yaml#/$defs/port-base
51*cb7aa33aSEmmanuel Vadot    additionalProperties: false
52*cb7aa33aSEmmanuel Vadot
53*cb7aa33aSEmmanuel Vadot    properties:
54*cb7aa33aSEmmanuel Vadot      endpoint:
55*cb7aa33aSEmmanuel Vadot        $ref: /schemas/media/video-interfaces.yaml#
56*cb7aa33aSEmmanuel Vadot        unevaluatedProperties: false
57*cb7aa33aSEmmanuel Vadot
58*cb7aa33aSEmmanuel Vadot        properties:
59*cb7aa33aSEmmanuel Vadot          data-lanes:
60*cb7aa33aSEmmanuel Vadot            minItems: 1
61*cb7aa33aSEmmanuel Vadot            maxItems: 4
62*cb7aa33aSEmmanuel Vadot
63*cb7aa33aSEmmanuel Vadot        required:
64*cb7aa33aSEmmanuel Vadot          - data-lanes
65*cb7aa33aSEmmanuel Vadot
66*cb7aa33aSEmmanuel Vadotrequired:
67*cb7aa33aSEmmanuel Vadot  - compatible
68*cb7aa33aSEmmanuel Vadot  - reg
69*cb7aa33aSEmmanuel Vadot  - clocks
70*cb7aa33aSEmmanuel Vadot  - port
71*cb7aa33aSEmmanuel Vadot
72*cb7aa33aSEmmanuel VadotadditionalProperties: false
73*cb7aa33aSEmmanuel Vadot
74*cb7aa33aSEmmanuel Vadotexamples:
75*cb7aa33aSEmmanuel Vadot  - |
76*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/pinctrl/rockchip.h>
77*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/clock/rk3399-cru.h>
78*cb7aa33aSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
79*cb7aa33aSEmmanuel Vadot
80*cb7aa33aSEmmanuel Vadot    i2c {
81*cb7aa33aSEmmanuel Vadot        #address-cells = <1>;
82*cb7aa33aSEmmanuel Vadot        #size-cells = <0>;
83*cb7aa33aSEmmanuel Vadot
84*cb7aa33aSEmmanuel Vadot        ov8858: camera@36 {
85*cb7aa33aSEmmanuel Vadot            compatible = "ovti,ov8858";
86*cb7aa33aSEmmanuel Vadot            reg = <0x36>;
87*cb7aa33aSEmmanuel Vadot
88*cb7aa33aSEmmanuel Vadot            clocks = <&cru SCLK_CIF_OUT>;
89*cb7aa33aSEmmanuel Vadot            clock-names = "xvclk";
90*cb7aa33aSEmmanuel Vadot            assigned-clocks = <&cru SCLK_CIF_OUT>;
91*cb7aa33aSEmmanuel Vadot            assigned-clock-rates = <24000000>;
92*cb7aa33aSEmmanuel Vadot
93*cb7aa33aSEmmanuel Vadot            dovdd-supply = <&vcc1v8_dvp>;
94*cb7aa33aSEmmanuel Vadot
95*cb7aa33aSEmmanuel Vadot            reset-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>;
96*cb7aa33aSEmmanuel Vadot            powerdown-gpios = <&gpio2 RK_PB4 GPIO_ACTIVE_LOW>;
97*cb7aa33aSEmmanuel Vadot
98*cb7aa33aSEmmanuel Vadot            port {
99*cb7aa33aSEmmanuel Vadot                ucam_out: endpoint {
100*cb7aa33aSEmmanuel Vadot                    remote-endpoint = <&mipi_in_ucam>;
101*cb7aa33aSEmmanuel Vadot                    data-lanes = <1 2 3 4>;
102*cb7aa33aSEmmanuel Vadot                };
103*cb7aa33aSEmmanuel Vadot            };
104*cb7aa33aSEmmanuel Vadot        };
105*cb7aa33aSEmmanuel Vadot    };
106*cb7aa33aSEmmanuel Vadot...
107