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