Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / imx290_327-overlay.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Partial definitions for IMX290 or IMX327 camera module on VC I2C bus
3 // The compatible string should be set in an overlay that then includes this one
4 /dts-v1/;
5 /plugin/;
6
7 #include <dt-bindings/gpio/gpio.h>
8
9 /{
10         compatible = "brcm,bcm2835";
11
12         i2c_frag: fragment@0 {
13                 target = <&i2c_csi_dsi>;
14                 __overlay__ {
15                         #address-cells = <1>;
16                         #size-cells = <0>;
17                         status = "okay";
18
19                         #include "imx290_327.dtsi"
20                 };
21         };
22
23         csi_frag: fragment@1 {
24                 target = <&csi1>;
25                 csi: __overlay__ {
26                         status = "okay";
27                         brcm,media-controller;
28
29                         port {
30                                 csi_ep: endpoint {
31                                         remote-endpoint = <&cam_endpoint>;
32                                 };
33                         };
34                 };
35         };
36
37         fragment@2 {
38                 target = <&i2c0if>;
39                 __overlay__ {
40                         status = "okay";
41                 };
42         };
43
44         clk_frag: fragment@3 {
45                 target = <&cam1_clk>;
46                 cam_clk: __overlay__ {
47                         status = "okay";
48                         clock-frequency = <37125000>;
49                 };
50         };
51
52         fragment@4 {
53                 target = <&i2c0mux>;
54                 __overlay__ {
55                         status = "okay";
56                 };
57         };
58
59         fragment@6 {
60                 target = <&cam_endpoint>;
61                 __overlay__ {
62                         data-lanes = <1 2>;
63                         link-frequencies =
64                                 /bits/ 64 <445500000 297000000>;
65                 };
66         };
67
68         fragment@7 {
69                 target = <&cam_endpoint>;
70                 __dormant__ {
71                         data-lanes = <1 2 3 4>;
72                         link-frequencies =
73                                 /bits/ 64 <222750000 148500000>;
74                 };
75         };
76
77         fragment@8 {
78                 target = <&csi_ep>;
79                 __overlay__ {
80                         data-lanes = <1 2>;
81                 };
82         };
83
84         fragment@9 {
85                 target = <&csi_ep>;
86                 __dormant__ {
87                         data-lanes = <1 2 3 4>;
88                 };
89         };
90
91         __overrides__ {
92                 4lane = <0>, "-6+7-8+9";
93                 clock-frequency = <&cam_clk>,"clock-frequency:0",
94                                   <&cam_node>,"clock-frequency:0";
95                 rotation = <&cam_node>,"rotation:0";
96                 orientation = <&cam_node>,"orientation:0";
97                 media-controller = <&csi>,"brcm,media-controller?";
98                 cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>,
99                        <&csi_frag>, "target:0=",<&csi0>,
100                        <&clk_frag>, "target:0=",<&cam0_clk>,
101                        <&cam_node>, "clocks:0=",<&cam0_clk>,
102                        <&cam_node>, "vdda-supply:0=",<&cam0_reg>;
103         };
104 };
105
106 &cam_node {
107         status = "okay";
108 };
109
110 &cam_endpoint {
111         remote-endpoint = <&csi_ep>;
112 };