Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / arducam-pivariety-overlay.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Definitions for Arducam Pivariety 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                         arducam_pivariety: arducam_pivariety@c {
17                                 compatible = "arducam,arducam-pivariety";
18                                 reg = <0x0c>;
19                                 status = "okay";
20
21                                 clocks = <&cam1_clk>;
22                                 clock-names = "xclk";
23
24                                 VANA-supply = <&cam1_reg>;      /* 2.8v */
25                                 VDIG-supply = <&cam_dummy_reg>; /* 1.8v */
26                                 VDDL-supply = <&cam_dummy_reg>; /* 1.2v */
27
28                                 rotation = <0>;
29                                 orientation = <2>;
30
31                                 port {
32                                         arducam_pivariety_0: endpoint {
33                                                 remote-endpoint = <&csi1_ep>;
34                                                 clock-lanes = <0>;
35                                                 data-lanes = <1 2>;
36                                                 clock-noncontinuous;
37                                                 link-frequencies =
38                                                         /bits/ 64 <493500000>;
39                                         };
40                                 };
41                         };
42                 };
43         };
44
45         csi_frag: fragment@1 {
46                 target = <&csi1>;
47                 csi: __overlay__ {
48                         status = "okay";
49                         brcm,media-controller;
50
51                         port{
52                                 csi1_ep: endpoint{
53                                         remote-endpoint = <&arducam_pivariety_0>;
54                                         clock-lanes = <0>;
55                                         data-lanes = <1 2>;
56                                         clock-noncontinuous;
57                                 };
58                         };
59                 };
60         };
61
62         fragment@2 {
63                 target = <&i2c0if>;
64                 __overlay__ {
65                         status = "okay";
66                 };
67         };
68
69         clk_frag: fragment@3 {
70                 target = <&cam1_clk>;
71                 __overlay__ {
72                         clock-frequency = <24000000>;
73                         status = "okay";
74                 };
75         };
76
77         fragment@4 {
78                 target = <&i2c0mux>;
79                 __overlay__ {
80                         status = "okay";
81                 };
82         };
83
84         __overrides__ {
85                 rotation = <&arducam_pivariety>,"rotation:0";
86                 orientation = <&arducam_pivariety>,"orientation:0";
87                 media-controller = <&csi>,"brcm,media-controller?";
88                 cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>,
89                        <&csi_frag>, "target:0=",<&csi0>,
90                        <&clk_frag>, "target:0=",<&cam0_clk>,
91                        <&arducam_pivariety>, "clocks:0=",<&cam0_clk>,
92                        <&arducam_pivariety>, "VANA-supply:0=",<&cam0_reg>;
93         };
94 };