|
8 | 8 | /{
|
9 | 9 | compatible = "brcm,bcm2835";
|
10 | 10 |
|
11 |
| - fragment@0 { |
12 |
| - target = <&i2c0if>; |
13 |
| - __overlay__ { |
| 11 | + |
| 12 | + |
| 13 | + clk_frag_0: fragment@30 { |
| 14 | + target = <&cam0_clk>; |
| 15 | + cam_clk_0: __overlay__ { |
| 16 | + clock-frequency = <24000000>; |
14 | 17 | status = "okay";
|
15 | 18 | };
|
16 | 19 | };
|
17 | 20 |
|
18 |
| - clk_frag: fragment@1 { |
| 21 | + clk_frag_1: fragment@31 { |
19 | 22 | target = <&cam1_clk>;
|
20 |
| - cam_clk: __overlay__ { |
| 23 | + cam_clk_1: __overlay__ { |
21 | 24 | clock-frequency = <24000000>;
|
22 | 25 | status = "okay";
|
23 | 26 | };
|
| 27 | + }; |
| 28 | + |
| 29 | + fragment@1 { |
| 30 | + target = <&i2c5>; |
| 31 | + __overlay__ { |
| 32 | + status = "okay"; |
| 33 | + brcm,pins = <10 11>; |
| 34 | + }; |
| 35 | + }; |
| 36 | + |
| 37 | + fragment@3 { |
| 38 | + target = <&i2c0if>; |
| 39 | + __overlay__ { |
| 40 | + status = "okay"; |
| 41 | + }; |
24 | 42 | };
|
25 | 43 |
|
26 |
| - fragment@2 { |
| 44 | + fragment@4 { |
27 | 45 | target = <&i2c0mux>;
|
28 | 46 | __overlay__ {
|
29 | 47 | status = "okay";
|
30 | 48 | };
|
31 | 49 | };
|
32 | 50 |
|
33 |
| - fragment@11 { |
34 |
| - target = <&cam_endpoint>; |
35 |
| - __overlay__ { |
36 |
| - data-lanes = <1 2>; |
37 |
| - link-frequencies = /bits/ 64 <633600000 |
38 |
| - 320000000>; |
| 51 | + reg_frag_0: fragment@6 { |
| 52 | + target = <&cam0_reg>; |
| 53 | + cam_reg_0: __overlay__ { |
| 54 | + regulator-name = "imx258_vana"; |
| 55 | + startup-delay-us = <300000>; |
| 56 | + regulator-min-microvolt = <1800000>; |
| 57 | + regulator-max-microvolt = <1800000>; |
39 | 58 | };
|
40 | 59 | };
|
41 | 60 |
|
42 |
| - fragment@12 { |
43 |
| - target = <&cam_endpoint>; |
44 |
| - __dormant__ { |
45 |
| - data-lanes = <1 2 3 4>; |
46 |
| - link-frequencies = |
47 |
| - /bits/ 64 <633600000 320000000>; |
| 61 | + reg_frag_1: fragment@7 { |
| 62 | + target = <&cam1_reg>; |
| 63 | + cam_reg_1: __overlay__ { |
| 64 | + regulator-name = "imx258_vana"; |
| 65 | + startup-delay-us = <300000>; |
| 66 | + regulator-min-microvolt = <1800000>; |
| 67 | + regulator-max-microvolt = <1800000>; |
48 | 68 | };
|
49 | 69 | };
|
50 | 70 |
|
51 |
| - fragment@13 { |
52 |
| - target = <&csi_ep>; |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | + cam_left: fragment@100 { |
| 75 | + target = <&i2c_csi_dsi>; |
53 | 76 | __overlay__ {
|
54 |
| - data-lanes = <1 2>; |
| 77 | + #address-cells = <1>; |
| 78 | + #size-cells = <0>; |
| 79 | + status = "okay"; |
| 80 | + |
| 81 | + imx258_cam_0: imx258@10 { |
| 82 | + compatible = "sony,imx258"; |
| 83 | + reg = <0x1A>; |
| 84 | + status = "okay"; |
| 85 | + |
| 86 | + clocks = <&cam0_clk>; |
| 87 | + clock-names = "xclk"; |
| 88 | + |
| 89 | + vana-supply = <&cam0_reg>; /* 2.8v */ |
| 90 | + vdig-supply = <&cam_dummy_reg>; /* 1.05v */ |
| 91 | + vif-supply = <&cam_dummy_reg>; /* 1.8v */ |
| 92 | + |
| 93 | + rotation = <0>; |
| 94 | + orientation = <2>; |
| 95 | + |
| 96 | + lens-focus = <&vcm_cam_0>; |
| 97 | + |
| 98 | + port { |
| 99 | + imx258_0: endpoint { |
| 100 | + remote-endpoint = <&csi_ep_0>; |
| 101 | + clock-lanes = <0>; |
| 102 | + clock-noncontinuous; |
| 103 | + link-frequencies = |
| 104 | + /bits/ 64 <633600000 |
| 105 | + 320000000>; |
| 106 | + }; |
| 107 | + }; |
| 108 | + }; |
| 109 | + |
| 110 | + vcm_cam_0: ad5398@c { |
| 111 | + compatible = "adi,ad5398"; |
| 112 | + reg = <0x0c>; |
| 113 | + status = "okay"; |
| 114 | + VANA-supply = <&cam0_reg>; |
| 115 | + }; |
55 | 116 | };
|
56 | 117 | };
|
57 | 118 |
|
58 |
| - fragment@14 { |
59 |
| - target = <&csi_ep>; |
60 |
| - __dormant__ { |
61 |
| - data-lanes = <1 2 3 4>; |
| 119 | + |
| 120 | + cam_right: fragment@110 { |
| 121 | + target = <&i2c5>; |
| 122 | + __overlay__ { |
| 123 | + #address-cells = <1>; |
| 124 | + #size-cells = <0>; |
| 125 | + status = "okay"; |
| 126 | + |
| 127 | + imx258_cam_1: imx258@5 { |
| 128 | + compatible = "sony,imx258"; |
| 129 | + reg = <0x1A>; |
| 130 | + status = "okay"; |
| 131 | + |
| 132 | + clocks = <&cam1_clk>; |
| 133 | + clock-names = "xclk"; |
| 134 | + |
| 135 | + vana-supply = <&cam1_reg>; /* 2.8v */ |
| 136 | + vdig-supply = <&cam_dummy_reg>; /* 1.05v */ |
| 137 | + vif-supply = <&cam_dummy_reg>; /* 1.8v */ |
| 138 | + |
| 139 | + rotation = <0>; |
| 140 | + orientation = <2>; |
| 141 | + |
| 142 | + lens-focus = <&vcm_cam_1>; |
| 143 | + port { |
| 144 | + imx258_1: endpoint { |
| 145 | + remote-endpoint = <&csi_ep_1>; |
| 146 | + clock-lanes = <0>; |
| 147 | + clock-noncontinuous; |
| 148 | + link-frequencies = |
| 149 | + /bits/ 64 <633600000 |
| 150 | + 320000000>; |
| 151 | + }; |
| 152 | + }; |
| 153 | + }; |
| 154 | + |
| 155 | + vcm_cam_1: ad5398@c { |
| 156 | + compatible = "adi,ad5398"; |
| 157 | + reg = <0x0c>; |
| 158 | + status = "okay"; |
| 159 | + VANA-supply = <&cam1_reg>; |
| 160 | + }; |
62 | 161 | };
|
63 | 162 | };
|
64 | 163 |
|
65 |
| - csi_frag: fragment@101 { |
66 |
| - target = <&csi1>; |
67 |
| - csi: __overlay__ { |
| 164 | + |
| 165 | + csi_0_frag: fragment@101 { |
| 166 | + target = <&csi0>; |
| 167 | + csi_0: __overlay__ { |
68 | 168 | status = "okay";
|
69 | 169 | brcm,media-controller;
|
70 | 170 |
|
71 | 171 | port {
|
72 |
| - csi_ep: endpoint { |
73 |
| - remote-endpoint = <&cam_endpoint>; |
| 172 | + csi_ep_0: endpoint { |
| 173 | + remote-endpoint = <&imx258_0>; |
74 | 174 | clock-lanes = <0>;
|
75 | 175 | clock-noncontinuous;
|
76 | 176 | };
|
77 | 177 | };
|
78 | 178 | };
|
79 | 179 | };
|
80 | 180 |
|
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>; |
| 181 | + |
| 182 | + csi_1_frag: fragment@111 { |
| 183 | + target = <&csi1>; |
| 184 | + csi_1: __overlay__ { |
| 185 | + status = "okay"; |
| 186 | + brcm,media-controller; |
| 187 | + |
| 188 | + port { |
| 189 | + csi_ep_1: endpoint { |
| 190 | + remote-endpoint = <&imx258_1>; |
| 191 | + clock-lanes = <0>; |
| 192 | + clock-noncontinuous; |
| 193 | + }; |
| 194 | + }; |
88 | 195 | };
|
89 | 196 | };
|
90 | 197 |
|
91 |
| - i2c_frag: fragment@100 { |
92 |
| - target = <&i2c_csi_dsi>; |
| 198 | + |
| 199 | + fragment@102 { |
| 200 | + target = <&imx258_0>; |
93 | 201 | __overlay__ {
|
94 |
| - #address-cells = <1>; |
95 |
| - #size-cells = <0>; |
96 |
| - status = "okay"; |
| 202 | + data-lanes = <1 2>; |
| 203 | + link-frequencies = /bits/ 64 <633600000 |
| 204 | + 320000000>; |
| 205 | + }; |
| 206 | + }; |
| 207 | + |
| 208 | + fragment@112 { |
| 209 | + target = <&imx258_1>; |
| 210 | + __overlay__ { |
| 211 | + data-lanes = <1 2 3 4>; |
| 212 | + link-frequencies = /bits/ 64 <633600000 |
| 213 | + 320000000>; |
| 214 | + }; |
| 215 | + }; |
97 | 216 |
|
98 |
| - #include "imx258.dtsi" |
| 217 | + fragment@113 { |
| 218 | + target = <&imx258_1>; |
| 219 | + __dormant__ { |
| 220 | + data-lanes = <1 2 3 4>; |
| 221 | + link-frequencies = |
| 222 | + /bits/ 64 <633600000 320000000>; |
| 223 | + }; |
| 224 | + }; |
99 | 225 |
|
100 |
| - vcm: ad5398@c { |
101 |
| - compatible = "adi,ad5398"; |
102 |
| - reg = <0x0c>; |
103 |
| - status = "disabled"; |
104 |
| - VANA-supply = <&cam1_reg>; |
105 |
| - }; |
| 226 | + fragment@104 { |
| 227 | + target = <&csi_ep_0>; |
| 228 | + __overlay__ { |
| 229 | + data-lanes = <1 2>; |
106 | 230 | };
|
107 | 231 | };
|
108 | 232 |
|
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_csi_dsi0>, |
114 |
| - <&csi_frag>, "target:0=",<&csi0>, |
115 |
| - <&clk_frag>, "target:0=",<&cam0_clk>, |
116 |
| - <®_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"; |
| 233 | + fragment@114 { |
| 234 | + target = <&csi_ep_1>; |
| 235 | + __overlay__ { |
| 236 | + data-lanes = <1 2 3 4>; |
| 237 | + }; |
| 238 | + }; |
| 239 | + |
| 240 | + fragment@115 { |
| 241 | + target = <&csi_ep_1>; |
| 242 | + __dormant__ { |
| 243 | + data-lanes = <1 2 3 4>; |
| 244 | + }; |
122 | 245 | };
|
123 |
| -}; |
124 | 246 |
|
125 |
| -&cam_node { |
126 |
| - status = "okay"; |
127 |
| -}; |
128 | 247 |
|
129 |
| -&cam_endpoint { |
130 |
| - remote-endpoint = <&csi_ep>; |
| 248 | + |
| 249 | + __overrides__ { |
| 250 | + rotation = <&imx258_cam_1>,"rotation:0",<&imx258_cam_0>,"rotation:0"; |
| 251 | + orientation = <&imx258_cam_1>,"orientation:0",<&imx258_cam_0>,"orientation:0"; |
| 252 | + }; |
131 | 253 | };
|
0 commit comments