Merge tag 'v5.15.57' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / arch / arm / boot / dts / overlays / tc358743-overlay.dts
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Definitions for Toshiba TC358743 HDMI to CSI2 bridge 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                         tc358743: tc358743@f {
17                                 compatible = "toshiba,tc358743";
18                                 reg = <0x0f>;
19                                 status = "okay";
20
21                                 clocks = <&cam1_clk>;
22                                 clock-names = "refclk";
23
24                                 port {
25                                         tc358743_0: endpoint {
26                                                 remote-endpoint = <&csi1_ep>;
27                                                 clock-lanes = <0>;
28                                                 clock-noncontinuous;
29                                                 link-frequencies =
30                                                         /bits/ 64 <486000000>;
31                                         };
32                                 };
33                         };
34                 };
35         };
36
37         csi_frag: fragment@1 {
38                 target = <&csi1>;
39                 csi: __overlay__ {
40                         status = "okay";
41
42                         port {
43                                 csi1_ep: endpoint {
44                                         remote-endpoint = <&tc358743_0>;
45                                 };
46                         };
47                 };
48         };
49
50         fragment@2 {
51                 target = <&tc358743_0>;
52                 __overlay__ {
53                         data-lanes = <1 2>;
54                 };
55         };
56
57         fragment@3 {
58                 target = <&tc358743_0>;
59                 __dormant__ {
60                         data-lanes = <1 2 3 4>;
61                 };
62         };
63
64         fragment@4 {
65                 target = <&i2c0if>;
66                 __overlay__ {
67                         status = "okay";
68                 };
69         };
70
71         fragment@5 {
72                 target = <&i2c0mux>;
73                 __overlay__ {
74                         status = "okay";
75                 };
76         };
77
78         clk_frag: fragment@6 {
79                 target = <&cam1_clk>;
80                 __overlay__ {
81                         status = "okay";
82                         clock-frequency = <27000000>;
83                 };
84         };
85
86         fragment@7 {
87                 target = <&csi1_ep>;
88                 __overlay__ {
89                         data-lanes = <1 2>;
90                 };
91         };
92
93         fragment@8 {
94                 target = <&csi1_ep>;
95                 __dormant__ {
96                         data-lanes = <1 2 3 4>;
97                 };
98         };
99
100         __overrides__ {
101                 4lane = <0>, "-2+3-7+8";
102                 link-frequency = <&tc358743_0>,"link-frequencies#0";
103                 media-controller = <&csi>,"brcm,media-controller?";
104                 cam0 = <&i2c_frag>, "target:0=",<&i2c_vc>,
105                        <&csi_frag>, "target:0=",<&csi0>,
106                        <&clk_frag>, "target:0=",<&cam0_clk>,
107                        <&tc358743>, "clocks:0=",<&cam0_clk>;
108         };
109 };