Skip to content

Commit 36503e0

Browse files
committed
Updated imx overlay to force i2c5
1 parent fbd8b3f commit 36503e0

File tree

1 file changed

+190
-68
lines changed

1 file changed

+190
-68
lines changed

arch/arm/boot/dts/overlays/imx258-overlay.dts

Lines changed: 190 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -8,124 +8,246 @@
88
/{
99
compatible = "brcm,bcm2835";
1010

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>;
1417
status = "okay";
1518
};
1619
};
1720

18-
clk_frag: fragment@1 {
21+
clk_frag_1: fragment@31 {
1922
target = <&cam1_clk>;
20-
cam_clk: __overlay__ {
23+
cam_clk_1: __overlay__ {
2124
clock-frequency = <24000000>;
2225
status = "okay";
2326
};
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+
};
2442
};
2543

26-
fragment@2 {
44+
fragment@4 {
2745
target = <&i2c0mux>;
2846
__overlay__ {
2947
status = "okay";
3048
};
3149
};
3250

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>;
3958
};
4059
};
4160

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>;
4868
};
4969
};
5070

51-
fragment@13 {
52-
target = <&csi_ep>;
71+
72+
73+
74+
cam_left: fragment@100 {
75+
target = <&i2c_csi_dsi>;
5376
__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+
};
55116
};
56117
};
57118

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+
};
62161
};
63162
};
64163

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__ {
68168
status = "okay";
69169
brcm,media-controller;
70170

71171
port {
72-
csi_ep: endpoint {
73-
remote-endpoint = <&cam_endpoint>;
172+
csi_ep_0: endpoint {
173+
remote-endpoint = <&imx258_0>;
74174
clock-lanes = <0>;
75175
clock-noncontinuous;
76176
};
77177
};
78178
};
79179
};
80180

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+
};
88195
};
89196
};
90197

91-
i2c_frag: fragment@100 {
92-
target = <&i2c_csi_dsi>;
198+
199+
fragment@102 {
200+
target = <&imx258_0>;
93201
__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+
};
97216

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+
};
99225

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>;
106230
};
107231
};
108232

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-
<&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";
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+
};
122245
};
123-
};
124246

125-
&cam_node {
126-
status = "okay";
127-
};
128247

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+
};
131253
};

0 commit comments

Comments
 (0)