Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / irs1125-overlay.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Definitions for IRS1125 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                         irs1125: irs1125@3d {
17                                 compatible = "infineon,irs1125";
18                                 reg = <0x3d>;
19                                 status = "okay";
20
21                                 pwdn-gpios = <&gpio 5 0>;
22                                 clocks = <&cam1_clk>;
23
24                                 port {
25                                         irs1125_0: endpoint {
26                                                 remote-endpoint = <&csi1_ep>;
27                                                 clock-lanes = <0>;
28                                                 data-lanes = <1 2>;
29                                                 clock-noncontinuous;
30                                                 link-frequencies =
31                                                         /bits/ 64 <297000000>;
32                                         };
33                                 };
34                         };
35                 };
36         };
37
38         csi_frag: fragment@1 {
39                 target = <&csi1>;
40                 csi: __overlay__ {
41                         status = "okay";
42
43                         port {
44                                 csi1_ep: endpoint {
45                                         remote-endpoint = <&irs1125_0>;
46                                         data-lanes = <1 2>;
47                                         clock-noncontinuous;
48                                 };
49                         };
50                 };
51         };
52
53         fragment@2 {
54                 target = <&i2c0if>;
55                 __overlay__ {
56                         status = "okay";
57                 };
58         };
59
60         fragment@3 {
61                 target = <&i2c0mux>;
62                 __overlay__ {
63                         status = "okay";
64                 };
65         };
66
67         fragment@4 {
68                 target-path="/__overrides__";
69                 __overlay__ {
70                         cam0-pwdn-ctrl = <&irs1125>,"pwdn-gpios:0";
71                         cam0-pwdn      = <&irs1125>,"pwdn-gpios:4";
72                 };
73         };
74
75         clk_frag: fragment@5 {
76                 target = <&cam1_clk>;
77                 __overlay__ {
78                         status = "okay";
79                         clock-frequency = <26000000>;
80                 };
81         };
82
83         __overrides__ {
84                 media-controller = <&csi>,"brcm,media-controller?";
85                 cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>,
86                        <&csi_frag>, "target:0=",<&csi0>,
87                        <&clk_frag>, "target:0=",<&cam0_clk>,
88                        <&irs1125>, "clocks:0=",<&cam0_clk>;
89         };
90 };