技术专栏
RK3568 开发板-安卓系统之mipi接口的摄像头驱动调试(十五)
4.12 mipi摄像头驱动调试
4.12.1 查看原理图,获取需要配置的信息
4.12.2 需要配置的信息如下
1、两中mipi摄像头均挂在i2c4下
2、Camera0的复位GPIO是GPIO3_D4, 时钟信号是CLK_CIF_OUT
3、Camera1的复位GPIO是GPIO3_D2, 时钟信号是CIF_WIFI
4、通过查阅GC2053的规格书,及摄像头硬件,确认地址为0x3f和0x37
由于两个都是GC2053, 但配置的时候不能出现两个相同的节点,且由于是同一路I2C,所以也不能出现两个相同的地址。需要修改其中一个摄像头的地址
4.12.3 GC2053的最终配置如下
参考RKDocs/common/camera/HAL3/目录下的相关文档,最终确认配置如下
&i2c4 {
status = "okay";
pinctrl-0 = <&i2c4m1_xfer>;
gc2053: gc2053@37 {
status = "okay";
compatible = "galaxycore,gc2053";
reg = <0x37>;
power-domains = <&power RK3568_PD_VI>;
pinctrl-names = "default";
clock-names = "xvclk";
pinctrl-0 = <&cif_clk>;
clocks = <&cru CLK_CIF_OUT>;
reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_LOW>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "front";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "JX8006";
port {
gc2053_out: endpoint {
remote-endpoint = <&dphy1_in>;
data-lanes = <1 2>;
};
};
};
gc2053_2: gc2053_2@3f {
status = "okay";
compatible = "galaxycore,gc2053";
reg = <0x3f>;
power-domains = <&power RK3568_PD_VI>;
pinctrl-names = "default";
clock-names = "xvclk";
pinctrl-0 = <&refclk_pins>;
clocks = <&pmucru CLK_WIFI>;
reset-gpios = <&gpio3 RK_PD2 GPIO_ACTIVE_LOW>;
rockchip,camera-module-index = <1>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "JX8006";
port {
gc2053_2_out: endpoint {
remote-endpoint = <&dphy2_in>;
data-lanes = <1 2>;
};
};
};
};
&csi2_dphy_hw {
status = "okay";
};
&csi2_dphy0 {
status = "disabled";
};
&csi2_dphy1 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
dphy1_in: endpoint@1 {
reg = <1>;
remote-endpoint = <&gc2053_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
dphy1_out: endpoint@1 {
reg = <1>;
remote-endpoint = <&isp0_in>;
};
};
};
};
&rkisp_vir0 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp0_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&dphy1_out>;
};
};
};
&csi2_dphy2 {
status = "okay";
/*
* dphy2 only used for split mode,
* can be used concurrently with dphy1
* full mode and split mode are mutually exclusive
*/
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
dphy2_in: endpoint@1 {
reg = <1>;
remote-endpoint = <&gc2053_2_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
dphy2_out: endpoint@1 {
reg = <1>;
remote-endpoint = <&mipi_csi2_input>;
// remote-endpoint = <&isp1_in>;
};
};
};
};
&mipi_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&dphy2_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in>;
data-lanes = <1 2>;
};
};
};
};
&rkcif_mipi_lvds {
status = "okay";
port {
cif_mipi_in: endpoint {
remote-endpoint = <&mipi_csi2_output>;
data-lanes = <1 2>;
};
};
};
&rkcif_mipi_lvds_sditf {
status = "okay";
port {
mipi_lvds_sditf: endpoint {
remote-endpoint = <&isp1_in>;
data-lanes = <1 2>;
};
};
};
&rkisp_vir1 {
status = "okay";
/* gc2053_2->dphy2->csi2->vicap */
/* vicap sditf->isp_vir1 */
port {
#address-cells = <1>;
#size-cells = <0>;
isp1_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_lvds_sditf>;
// remote-endpoint = <&dphy2_out>;
};
};
};
&rkisp {
status = "okay";
};
&rkisp_mmu {
status = "okay";
};
&rkcif {
status = "okay";
};
&rkcif_mmu {
status = "okay";
};
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
<
4.12.4 查看gc2053是否注册成功
rk3568_aybering:/ # dmesg | grep "gc2053"
[ 1.900008] gc2053 4-0037: driver version: 00.01.01
[ 1.900060] gc2053 4-0037: Failed to get pwdn-gpios, maybe no used
[ 1.900079] gc2053 4-0037: Failed to get power-gpios
[ 1.900120] gc2053 4-0037: 4-0037 supply dovdd not found, using dummy regulator
[ 1.900172] gc2053 4-0037: Linked as a consumer to regulator.0
[ 1.900199] gc2053 4-0037: 4-0037 supply avdd not found, using dummy regulator
[ 1.900255] gc2053 4-0037: 4-0037 supply dvdd not found, using dummy regulator
[ 1.900290] gc2053 4-0037: lane_num(2) pixel_rate(118800000)
[ 1.900307] gc2053 4-0037: could not get default pinstate
[ 1.900317] gc2053 4-0037: could not get sleep pinstate
[ 1.907643] gc2053 4-0037: Detected GC2053 sensor
[ 1.907694] rockchip-csi2-dphy csi2-dphy1: dphy1 matches m00_f_gc2053 4-0037:bus type 4
[ 1.908472] gc2053 4-003f: driver version: 00.01.01
[ 1.908527] gc2053 4-003f: Failed to get pwdn-gpios, maybe no used
[ 1.908546] gc2053 4-003f: Failed to get power-gpios
[ 1.908582] gc2053 4-003f: 4-003f supply dovdd not found, using dummy regulator
[ 1.908631] gc2053 4-003f: Linked as a consumer to regulator.0
[ 1.908657] gc2053 4-003f: 4-003f supply avdd not found, using dummy regulator
[ 1.908700] gc2053 4-003f: 4-003f supply dvdd not found, using dummy regulator
[ 1.908749] gc2053 4-003f: lane_num(2) pixel_rate(118800000)
[ 1.908767] gc2053 4-003f: could not get default pinstate
[ 1.908777] gc2053 4-003f: could not get sleep pinstate
[ 1.914329] gc2053 4-003f: Detected GC2053 sensor
[ 1.914362] rockchip-csi2-dphy csi2-dphy2: dphy2 matches m01_b_gc2053 4-003f:bus type 4
rk3568_aybering:/ #
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
<
通过以上信息,可以看到成功注册了两个GC2053摄像头, 地址分别为0x37和0x3f
4.12.5 修改摄像头配置文件
修改摄像头配置文件hardware/rockchip/camera/etc/camera/camera3_profiles_rk356x.xml, 具体参考RKDocs/common/camera/HAL3/目录下的相关文档
4.12.6 测试摄像头
整体编译后生成update.img,烧写后就可以进行摄像头测试了
打开系统自带的相机,经过授权后,可以看到图像了
点击切换按钮,即可切换到另一个摄像头。
本开发板由易百纳技术社区提供,可前往:易百纳 AI 查看更多开发板信息。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
1
评论
打赏
- 分享
- 举报
评论
0个
手气红包

相关专栏
-
浏览量:18772次2022-09-30 16:51:48
-
浏览量:2816次2022-09-30 16:48:25
-
浏览量:4280次2022-10-11 10:48:08
-
浏览量:6985次2022-10-08 14:00:42
-
浏览量:2958次2022-10-28 09:28:29
-
浏览量:8352次2022-10-13 19:26:04
-
浏览量:10168次2022-10-12 09:28:15
-
浏览量:11173次2022-10-09 15:56:41
-
浏览量:10543次2022-10-10 11:27:15
-
浏览量:5321次2022-10-14 08:34:42
-
浏览量:8024次2022-10-10 20:15:42
-
浏览量:7070次2022-10-09 10:20:09
-
浏览量:5164次2022-09-30 16:40:59
-
浏览量:12036次2022-10-18 09:33:58
-
浏览量:6400次2022-10-08 13:56:28
-
浏览量:2753次2022-09-30 16:46:03
-
浏览量:5424次2022-07-13 15:47:15
-
浏览量:33688次2022-06-11 11:06:24
-
浏览量:9217次2022-06-11 10:47:27
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者

万万没想到
您的支持将鼓励我继续创作!
打赏金额:
¥1

¥5

¥10

¥50

¥100

支付方式:

举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注