dts: 2712: Update for device tree
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / ov5647-overlay.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Definitions for OV5647 camera module on VC I2C bus
3 /dts-v1/;
4 /plugin/;
5
6 /{
7         compatible = "brcm,bcm2835";
8
9         i2c_frag: fragment@0 {
10                 target = <&i2c_csi_dsi>;
11                 __overlay__ {
12                         #address-cells = <1>;
13                         #size-cells = <0>;
14                         status = "okay";
15
16                         #include "ov5647.dtsi"
17
18                         vcm: ad5398@c {
19                                 compatible = "adi,ad5398";
20                                 reg = <0x0c>;
21                                 status = "disabled";
22                                 VANA-supply = <&cam1_reg>;
23                         };
24                 };
25         };
26
27         csi_frag: fragment@1 {
28                 target = <&csi1>;
29                 csi: __overlay__ {
30                         status = "okay";
31                         brcm,media-controller;
32
33                         port {
34                                 csi_ep: endpoint {
35                                         remote-endpoint = <&cam_endpoint>;
36                                         data-lanes = <1 2>;
37                                 };
38                         };
39                 };
40         };
41
42         fragment@2 {
43                 target = <&i2c0if>;
44                 __overlay__ {
45                         status = "okay";
46                 };
47         };
48
49         fragment@3 {
50                 target = <&i2c0mux>;
51                 __overlay__ {
52                         status = "okay";
53                 };
54         };
55
56         reg_frag: fragment@4 {
57                 target = <&cam1_reg>;
58                 __overlay__ {
59                         startup-delay-us = <20000>;
60                 };
61         };
62
63         clk_frag: fragment@5 {
64                 target = <&cam1_clk>;
65                 __overlay__ {
66                         status = "okay";
67                         clock-frequency = <25000000>;
68                 };
69         };
70
71         __overrides__ {
72                 rotation = <&cam_node>,"rotation:0";
73                 orientation = <&cam_node>,"orientation:0";
74                 media-controller = <&csi>,"brcm,media-controller?";
75                 cam0 = <&i2c_frag>, "target:0=",<&i2c_csi_dsi0>,
76                        <&csi_frag>, "target:0=",<&csi0>,
77                        <&reg_frag>, "target:0=",<&cam0_reg>,
78                        <&clk_frag>, "target:0=",<&cam0_clk>,
79                        <&cam_node>, "clocks:0=",<&cam0_clk>,
80                        <&cam_node>, "avdd-supply:0=",<&cam0_reg>;
81                 vcm = <&vcm>, "status=okay",
82                       <&cam_node>,"lens-focus:0=", <&vcm>;
83         };
84 };
85
86 &cam_node {
87         status = "okay";
88 };
89
90 &cam_endpoint {
91         remote-endpoint = <&csi_ep>;
92 };