Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / imx258-overlay.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Definitions for IMX258 camera module on VC I2C bus
3 /dts-v1/;
4 /plugin/;
5
6 #include <dt-bindings/gpio/gpio.h>
7
8 /{
9         compatible = "brcm,bcm2835";
10
11         fragment@0 {
12                 target = <&i2c0if>;
13                 __overlay__ {
14                         status = "okay";
15                 };
16         };
17
18         clk_frag: fragment@1 {
19                 target = <&cam1_clk>;
20                 cam_clk: __overlay__ {
21                         clock-frequency = <24000000>;
22                         status = "okay";
23                 };
24         };
25
26         fragment@2 {
27                 target = <&i2c0mux>;
28                 __overlay__ {
29                         status = "okay";
30                 };
31         };
32
33         fragment@11 {
34                 target = <&cam_endpoint>;
35                 __overlay__ {
36                         data-lanes = <1 2>;
37                         link-frequencies = /bits/ 64 <633600000
38                                                       320000000>;
39                 };
40         };
41
42         fragment@12 {
43                 target = <&cam_endpoint>;
44                 __dormant__ {
45                         data-lanes = <1 2 3 4>;
46                         link-frequencies =
47                                 /bits/ 64 <633600000 320000000>;
48                 };
49         };
50
51         fragment@13 {
52                 target = <&csi_ep>;
53                 __overlay__ {
54                         data-lanes = <1 2>;
55                 };
56         };
57
58         fragment@14 {
59                 target = <&csi_ep>;
60                 __dormant__ {
61                         data-lanes = <1 2 3 4>;
62                 };
63         };
64
65         csi_frag: fragment@101 {
66                 target = <&csi1>;
67                 csi: __overlay__ {
68                         status = "okay";
69                         brcm,media-controller;
70
71                         port {
72                                 csi_ep: endpoint {
73                                         remote-endpoint = <&cam_endpoint>;
74                                         clock-lanes = <0>;
75                                         clock-noncontinuous;
76                                 };
77                         };
78                 };
79         };
80
81         reg_frag: fragment@5 {
82                 target = <&cam1_reg>;
83                 cam_reg: __overlay__ {
84                         regulator-name = "imx258_vana";
85                         startup-delay-us = <300000>;
86                         regulator-min-microvolt = <2700000>;
87                         regulator-max-microvolt = <2700000>;
88                 };
89         };
90
91         i2c_frag: fragment@100 {
92                 target = <&i2c_csi_dsi>;
93                 __overlay__ {
94                         #address-cells = <1>;
95                         #size-cells = <0>;
96                         status = "okay";
97
98                         #include "imx258.dtsi"
99
100                         vcm: ad5398@c {
101                                 compatible = "adi,ad5398";
102                                 reg = <0x0c>;
103                                 status = "disabled";
104                                 VANA-supply = <&cam1_reg>;
105                         };
106                 };
107         };
108
109         __overrides__ {
110                 rotation = <&cam_node>,"rotation:0";
111                 orientation = <&cam_node>,"orientation:0";
112                 media-controller = <&csi>,"brcm,media-controller?";
113                 cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>,
114                        <&csi_frag>, "target:0=",<&csi0>,
115                        <&clk_frag>, "target:0=",<&cam0_clk>,
116                        <&reg_frag>, "target:0=",<&cam0_reg>,
117                        <&cam_node>, "clocks:0=",<&cam0_clk>,
118                        <&cam_node>, "vana-supply:0=",<&cam0_reg>;
119                 vcm = <&vcm>, "status=okay",
120                       <&cam_node>,"lens-focus:0=", <&vcm>;
121                 4lane = <0>, "-11+12-13+14";
122         };
123 };
124
125 &cam_node {
126         status = "okay";
127 };
128
129 &cam_endpoint {
130         remote-endpoint = <&csi_ep>;
131 };