RK3588 适配imx464 摄像头
前言
总结一下自己最近在RK3588 上适配imx464的经验。
简介
imx464在rk3588上面适配还是比较简单,不需要花费太多的时间,因为驱动已经有了,也有可以参考的设备树借鉴,再加上官方的文档rk3588_docs-main\Common\CAMERA\ISP3X\Rockchip_Driver_Guide_VI_CN_v1.1.1.pdf
和已经有调试好的imx464的isp文件,我这边主要是根据硬件这边提供的板子还是摄像头板子做了一些调整,适配了一下,花了两天的时间实现能够正常取图使用,后面想调一调isp玩一下的,但拿到软件后苦于没有资料和技术支持发现搞不动就放弃了,点到即止了则。
硬件
RK3588 + imx464,使用的接口是 dphy1线上的mipi,mipi为4lane的。
软件
驱动
官方的SDK里面是有imx464的驱动的,在这个路径下kernel/drivers/media/i2c/imx464.c,我们只需要在menuconfig里面去开启即可,编译后烧录到板子中,在启动日志里面就能看到imx464的信息了,但是还不能用,因为还没有配置硬件。
设备树
设备树的话参考官方的文档还有sdk里面现有的设备树。
这张图是《Rockchip_Driver_Guide_VI_CN_v1.1.1.pdf》里面有的,大家可以参考里面,我这里要配置的是mipi camera4这一条路,我使用dphy1的full mode模式,4线,所以就是选择这一条,具体要配置哪一条通道是根据自己的硬件来决定的,文档里面有详细说明。
首先是配置i2c,我是挂载在了i2c5m0上,然后imx464的iic地址是0x1a(不算读写位)。
camera4 -> csi2_dphy4
&i2c5 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c5m0_xfer>;
/* */
imx464: imx464@1a {
compatible = "sony,imx464"; //名称
reg = <0x1a>; //i2c地址
status = "okay";
clocks = <&cru CLK_MIPI_CAMARAOUT_M4>; //MIPI_CAMERA4_CLK_M1,时钟配置
clock-names = "xvclk";
pinctrl-names = "default";
pinctrl-0 = <&mipim1_camera4_clk>; //要根据自己实际的情况来
// avdd-supply = <&vcc_mipicsi1>;
power-domains = <&power RK3588_PD_VI>;
pwdn-gpios= <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
//匹配的是external\camera_engine_rkaiq\iqfiles\isp3x下面的iq文件
//imx464_CMK-OT1980-PX1_SHG102.json
//默认厂家提供的文件系统里面也已经放置了这个文件 /etc/iqfiles/imx464_CMK-OT1980-PX1_SHG102.json
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back"; //前置或后置
rockchip,camera-module-name = "CMK-OT1980-PX1";
rockchip,camera-module-lens-name = "SHG102";
// ir-cut = <&cam_ircut0>; //可以配置ir-cut的引脚,我的是自己控制gpio的,没有集成瑞芯微的这一套,想用瑞芯微那一套去控制的就需要按照规则去配置gpio和加载驱动
port {
imx464_out: endpoint {
remote-endpoint = <&csidphy3_in>;//参考那个流程图链接到下一个目标,out->in
data-lanes = <1 2 3 4>;//4lane
};
};
};
};
csi2_dphy4 -> mipi4_csi2
// 使用dphy1的full mode模式,4线
// 当dphy1_hw使用full mode时,链路需要按照csi2_dphy4这条链路来配置,但是节点名称
// csi2_dphy4需要修改为csi2_dphy3,软件上是通过phy的序号来区分phy使用的模式。
&csi2_dphy1_hw {
status = "okay";
};
&csi2_dphy3 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
csidphy3_in: endpoint@1 {
reg = <1>;
remote-endpoint = <&imx464_out>;
data-lanes = <1 2 3 4>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csidphy3_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi4_csi2_input>;
};
};
};
};
mipi4_csi2 -> rkcif_mipi_lvds4
&mipi4_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi4_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csidphy3_out>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi4_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi_in4>;
};
};
};
};
rkcif_mipi_lvds4 -> rkcif_mipi_lvds4_sditf
&rkcif {
status = "okay";
};
&rkcif_mipi_lvds4 {
status = "okay";
port {
cif_mipi_in4: endpoint {
remote-endpoint = <&mipi4_csi2_output>;
};
};
};
&rkcif_mipi_lvds4_sditf {
status = "okay";
port {
mipi_lvds4_sditf: endpoint {
remote-endpoint = <&isp1_vir1>;
};
};
};
&rkcif_mmu {
status = "okay";
};
rkcif_mipi_lvds4_sditf -> rkisp1_vir1
&rkisp1 {
status = "okay";
/* the max input w h and fps of mulit sensor */
//max-input = <2688 1520 30>;多摄sensor分辨率不一样,需要配置
};
&isp1_mmu {
status = "okay";
};
&rkisp1_vir1 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp1_vir1: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_lvds4_sditf>;
};
};
};
设备树配置到这里就可以了,编译烧录启动,就成功在/dev/下对应的video设备了,通过gst命令测试可以正常出图,好了,收工。
sudo gst-launch-1.0 v4l2src device=/dev/video11 ! video/x-raw,format=NV12,width=1920,height=1080, framerate=30/1 ! mpph264enc ! filesink location=test.h264
结尾
虽然正常出图了,但是还是有点小问题media-ctl用不了,不知道为啥,希望有大神可以指点一下,有什么问题也欢迎大家帮我指正。
参考链接和文档:
https://zhuanlan.zhihu.com/p/634169058
《Rockchip_Driver_Guide_VI_CN_v1.1.1.pdf》
- 分享
- 举报
-
李卓凡 2024-04-15 22:51:39回复 举报不错的
-
浏览量:2299次2024-01-09 16:38:47
-
浏览量:905次2023-12-26 18:03:31
-
浏览量:2082次2020-04-01 10:07:10
-
浏览量:2964次2023-12-28 17:46:27
-
浏览量:2102次2023-04-19 09:08:35
-
浏览量:759次2023-06-12 14:35:58
-
浏览量:3414次2020-10-29 17:26:12
-
浏览量:3454次2022-09-03 09:03:36
-
浏览量:1110次2024-01-11 17:32:51
-
浏览量:2019次2017-12-22 21:28:55
-
浏览量:2241次2022-03-05 08:31:20
-
浏览量:1344次2023-04-17 16:03:03
-
浏览量:3950次2021-04-02 09:47:41
-
浏览量:2597次2024-02-26 14:13:38
-
浏览量:3207次2022-05-17 09:01:02
-
浏览量:1231次2023-08-24 13:51:18
-
浏览量:1388次2024-02-19 10:16:21
-
浏览量:760次2023-12-13 14:01:46
-
浏览量:1030次2023-12-08 16:23:35
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
毛巾卷
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明