Skip to content

Commit 9ca2252

Browse files
authored
Merge pull request #293 from Radxa-Alvin/main
radxa cm3i io: modify camera config for dual cameras
2 parents 1ad78f2 + 75dfbcc commit 9ca2252

File tree

6 files changed

+254
-145
lines changed

6 files changed

+254
-145
lines changed

arch/arm64/boot/dts/rockchip/overlays/radxa-cm3i-io-radxa-camera-8m-cam1.dts

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,22 @@
1515
};
1616

1717
&{/} {
18-
ext_cam_clk_imx219: ext-cam-clk-imx219 {
18+
ext_cam_clk_imx219_1: ext-cam-clk-imx219-1 {
1919
status = "okay";
2020
compatible = "fixed-clock";
2121
clock-frequency = <24000000>;
22-
clock-output-names = "ext_cam_clk_imx219";
22+
clock-output-names = "ext_cam_clk_imx219_1";
2323
#clock-cells = <0>;
2424
};
2525

26-
camera_pwdn_gpio: camera-pwdn-gpio {
26+
imx219_1_pwdn_gpio: imx219-1-pwdn-gpio {
2727
status = "okay";
2828
compatible = "regulator-fixed";
29-
regulator-name = "camera_pwdn_gpio";
29+
regulator-name = "imx219_1_pwdn_gpio";
3030
regulator-always-on;
3131
regulator-boot-on;
3232
enable-active-high;
33-
pwdn-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
34-
pinctrl-names = "default";
35-
pinctrl-0 = <&cam_pwdn_gpio>;
33+
gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
3634
};
3735
};
3836

@@ -44,23 +42,19 @@
4442
#address-cells = <1>;
4543
#size-cells = <0>;
4644

47-
imx219: imx219@10 {
45+
imx219_1: imx219-1@10 {
4846
status = "okay";
4947
compatible = "sony,imx219";
5048
reg = <0x10>;
51-
52-
clocks = <&ext_cam_clk_imx219>;
53-
clock-names = "ext_cam_clk_imx219";
54-
55-
rotation = <180>;
56-
57-
rockchip,camera-module-index = <1>;
58-
rockchip,camera-module-facing = "back";
49+
clocks = <&ext_cam_clk_imx219_1>;
50+
clock-names = "xvclk";
51+
rockchip,camera-module-index = <0>;
52+
rockchip,camera-module-facing = "front";
5953
rockchip,camera-module-name = "RADXA-CAMERA-8M";
6054
rockchip,camera-module-lens-name = "default";
6155

6256
port {
63-
imx219_out: endpoint {
57+
imx219_1_out: endpoint {
6458
remote-endpoint = <&csi2dphy1_uCAM1>;
6559
data-lanes = <1 2>;
6660
};
@@ -86,7 +80,7 @@
8680

8781
csi2dphy1_uCAM1: endpoint@1 {
8882
reg = <1>;
89-
remote-endpoint = <&imx219_out>;
83+
remote-endpoint = <&imx219_1_out>;
9084
data-lanes = <1 2>;
9185
};
9286
};
@@ -133,11 +127,3 @@
133127
&rkcif {
134128
status = "okay";
135129
};
136-
137-
&pinctrl {
138-
camera {
139-
cam_pwdn_gpio: cam-pwdn-gpio {
140-
rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
141-
};
142-
};
143-
};

arch/arm64/boot/dts/rockchip/overlays/radxa-cm3i-io-radxa-camera-8m-cam2.dts

Lines changed: 65 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,22 @@
1515
};
1616

1717
&{/} {
18-
ext_cam_clk_imx219: ext-cam-clk-imx219 {
18+
ext_cam_clk_imx219_2: ext-cam-clk-imx219-2 {
1919
status = "okay";
2020
compatible = "fixed-clock";
2121
clock-frequency = <24000000>;
22-
clock-output-names = "ext_cam_clk_imx219";
22+
clock-output-names = "ext_cam_clk_imx219_2";
2323
#clock-cells = <0>;
2424
};
2525

26-
camera_pwdn_gpio: camera-pwdn-gpio {
26+
imx219_2_pwdn_gpio: imx219-2-pwdn-gpio {
2727
status = "okay";
2828
compatible = "regulator-fixed";
29-
regulator-name = "camera_pwdn_gpio";
29+
regulator-name = "imx219_2_pwdn_gpio";
3030
regulator-always-on;
3131
regulator-boot-on;
3232
enable-active-high;
33-
pwdn-gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
34-
pinctrl-names = "default";
35-
pinctrl-0 = <&cam_pwdn_gpio>;
33+
gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
3634
};
3735
};
3836

@@ -43,24 +41,19 @@
4341

4442
#address-cells = <1>;
4543
#size-cells = <0>;
46-
47-
imx219: imx219@10 {
44+
imx219_2: imx219-2@10 {
4845
status = "okay";
4946
compatible = "sony,imx219";
5047
reg = <0x10>;
51-
52-
clocks = <&ext_cam_clk_imx219>;
53-
clock-names = "ext_cam_clk_imx219";
54-
55-
rotation = <180>;
56-
48+
clocks = <&ext_cam_clk_imx219_2>;
49+
clock-names = "xvclk";
5750
rockchip,camera-module-index = <1>;
5851
rockchip,camera-module-facing = "back";
5952
rockchip,camera-module-name = "RADXA-CAMERA-8M";
6053
rockchip,camera-module-lens-name = "default";
6154

6255
port {
63-
imx219_out: endpoint {
56+
imx219_2_out: endpoint {
6457
remote-endpoint = <&csi2dphy2_uCAM2>;
6558
data-lanes = <1 2>;
6659
};
@@ -74,19 +67,17 @@
7467

7568
&csi2_dphy2 {
7669
status = "okay";
77-
7870
ports {
7971
#address-cells = <1>;
8072
#size-cells = <0>;
81-
8273
port@0 {
8374
reg = <0>;
8475
#address-cells = <1>;
8576
#size-cells = <0>;
8677

8778
csi2dphy2_uCAM2: endpoint@1 {
8879
reg = <1>;
89-
remote-endpoint = <&imx219_out>;
80+
remote-endpoint = <&imx219_2_out>;
9081
data-lanes = <1 2>;
9182
};
9283
};
@@ -98,22 +89,73 @@
9889

9990
csi2dphy2_out: endpoint@1 {
10091
reg = <1>;
101-
remote-endpoint = <&isp0_in>;
92+
remote-endpoint = <&mipi_csi2_input>;
10293
};
10394
};
10495
};
10596
};
10697

107-
&rkisp_vir0 {
98+
&mipi_csi2 {
99+
status = "okay";
100+
ports {
101+
#address-cells = <1>;
102+
#size-cells = <0>;
103+
104+
port@0 {
105+
reg = <0>;
106+
#address-cells = <1>;
107+
#size-cells = <0>;
108+
109+
mipi_csi2_input: endpoint@1 {
110+
reg = <1>;
111+
remote-endpoint = <&csi2dphy2_out>;
112+
data-lanes = <1 2>;
113+
};
114+
};
115+
116+
port@1 {
117+
reg = <1>;
118+
#address-cells = <1>;
119+
#size-cells = <0>;
120+
mipi_csi2_output: endpoint@0 {
121+
reg = <0>;
122+
remote-endpoint = <&cif_mipi_in>;
123+
data-lanes = <1 2>;
124+
};
125+
};
126+
};
127+
};
128+
129+
&rkcif_mipi_lvds {
130+
status = "okay";
131+
port {
132+
cif_mipi_in: endpoint {
133+
remote-endpoint = <&mipi_csi2_output>;
134+
data-lanes = <1 2>;
135+
};
136+
};
137+
};
138+
139+
&rkcif_mipi_lvds_sditf {
140+
status = "okay";
141+
port {
142+
mipi_lvds_sditf: endpoint {
143+
remote-endpoint = <&isp1_in>;
144+
data-lanes = <1 2>;
145+
};
146+
};
147+
};
148+
149+
&rkisp_vir1 {
108150
status = "okay";
109151

110152
port {
111153
#address-cells = <1>;
112154
#size-cells = <0>;
113155

114-
isp0_in: endpoint@0 {
156+
isp1_in: endpoint@0 {
115157
reg = <0>;
116-
remote-endpoint = <&csi2dphy2_out>;
158+
remote-endpoint = <&mipi_lvds_sditf>;
117159
};
118160
};
119161
};
@@ -133,11 +175,3 @@
133175
&rkcif {
134176
status = "okay";
135177
};
136-
137-
&pinctrl {
138-
camera {
139-
cam_pwdn_gpio: cam-pwdn-gpio {
140-
rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
141-
};
142-
};
143-
};

arch/arm64/boot/dts/rockchip/overlays/radxa-cm3i-io-rpi-camera-v1p3-cam1.dts

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
/ {
88
metadata {
9-
title = "Enable Raspberry Pi Camera v1.3 on CAM1";
9+
title = "Enable Raspberry Pi Camera v1.3 on CAM1.";
1010
compatible = "radxa,cm3i-io";
1111
category = "camera";
1212
exclusive = "csi2_dphy1";
@@ -15,36 +15,47 @@
1515
};
1616

1717
&{/} {
18-
ext_cam_ov5647_clk: external-camera-ov5647-clock {
18+
ext_cam_ov5647_clk_1: ext-cam-ov5647-clk-1 {
1919
status = "okay";
2020
compatible = "fixed-clock";
2121
clock-frequency = <25000000>;
22-
clock-output-names = "ext_cam_ov5647_clk";
22+
clock-output-names = "ext_cam_ov5647_clk_1";
2323
#clock-cells = <0>;
2424
};
25+
26+
ov5647_1_pwdn_gpio: ov5647-1-pwdn-gpio {
27+
status = "okay";
28+
compatible = "regulator-fixed";
29+
regulator-name = "ov5647_1_pwdn_gpio";
30+
regulator-always-on;
31+
regulator-boot-on;
32+
enable-active-high;
33+
gpio = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
34+
};
2535
};
2636

2737
&i2c0 {
2838
status = "okay";
2939
pinctrl-names = "default";
40+
pinctrl-0 = <&i2c0_xfer>;
41+
3042
#address-cells = <1>;
3143
#size-cells = <0>;
3244

33-
ov5647: ov5647@36 {
45+
ov5647_1: ov5647-1@36 {
3446
status = "okay";
3547
compatible = "ovti,ov5647";
3648
reg = <0x36>;
37-
clocks = <&ext_cam_ov5647_clk>;
38-
clock-names = "ext_cam_ov5647_clk";
39-
pwdn-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
49+
clocks = <&ext_cam_ov5647_clk_1>;
50+
clock-names = "xvclk";
4051
rockchip,camera-module-index = <0>;
41-
rockchip,camera-module-facing = "back";
52+
rockchip,camera-module-facing = "front";
4253
rockchip,camera-module-name = "rpi-camera-v1p3";
4354
rockchip,camera-module-lens-name = "default";
4455

4556
port {
46-
ov5647_out: endpoint {
47-
remote-endpoint = <&csi2dphy1_ucam1>;
57+
ov5647_1_out: endpoint {
58+
remote-endpoint = <&csi2dphy1_uCAM1>;
4859
data-lanes = <1 2>;
4960
};
5061
};
@@ -67,9 +78,9 @@
6778
#address-cells = <1>;
6879
#size-cells = <0>;
6980

70-
csi2dphy1_ucam1: endpoint@1 {
81+
csi2dphy1_uCAM1: endpoint@1 {
7182
reg = <1>;
72-
remote-endpoint = <&ov5647_out>;
83+
remote-endpoint = <&ov5647_1_out>;
7384
data-lanes = <1 2>;
7485
};
7586
};

0 commit comments

Comments
 (0)