rk3568 添加gc2053摄像头驱动

在设备树文件代码中添加 gc2053 设备节点

    &i2c2 {
        status = "okay";
        pinctrl-0 = <&i2c2m1_xfer>;
        /* split mode: lane0/1 */
        gc2053: gc2053@37 {
            status = "okay";
            compatible = "galaxycore,gc2053";// 需要与驱动中的匹配字符串一致
            reg = <0x37>; // sensor I2C 设备地址,7位
            
            //查看硬件配置引脚,特别注意clocks与pinctrl-0一一对应,
            //CLK_CAM0_OUT->cam_clkout0, CLK_CAM1_OUT->cam_clkout1, CLK_CIF_OUT->cif_clk, CLK_MIPICSI_OUT->mipicsi_clk0
            clocks = <&cru CLK_CAM0_OUT>; // sensor mclk 配置 
            clock-names = "xvclk";
            power-domains = <&power RK3568_PD_VI>;
            pinctrl-names = "default";
            pinctrl-0 = <&cam_clkout0>;// pinctl设置
            // reset管脚分配及有效电平,要适配驱动操作输出
            reset-gpios = <&gpio4 RK_PB1 GPIO_ACTIVE_LOW>;
            // power管脚分配及有效电平
            pwdn-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_LOW>;
            /*power-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;*/
            // 模组编号,该编号不要重复
            rockchip,camera-module-index = <0>;
            // 模组朝向,有"back"和"front"
            rockchip,camera-module-facing = "front";
            //module与lens命令要与设备/etc/iqfiles中对应sensor的iq文件名后面相同,如gc2053_YT-RV1109-2-V1_40IR-2MP-F20.xml
            rockchip,camera-module-name = "YT-RV1109-2-V1";
            rockchip,camera-module-lens-name = "40IR-2MP-F20";
            port {
                gc2053_out: endpoint {
                    remote-endpoint = <&dphy1_in>;
                    data-lanes = <1 2>;
                };
            };
        };
    }

重点笔记

编译

在sdk目录下

$ cd kernel

$ make ARCH=arm64 rockchip_defconfig rk356x_evb.config android-11.config

$ ./mk_kernel.sh ido-evb3568-v1b-dsi1-1200-1920.img

在sdk目录下

$ source build/envsetup.sh

$ lunch rk3568_r-userdebug

$ make

$ ./mkimage.sh

$ cd RKTools/linux/Linux_Pack_Firmware/rockdev/

$ ./mkupdate_rk356x.sh

下载路径:/home/scooper/jkD7/SDK/ido_evb3568_android11_211025_sdk/RKTools/linux/

Linux_Pack_Firmware/rockdev

参考文档:IDO-EVB3568-V1- Android SDK 编译说明 · INDUSTIO

设备树

路径:/home/scooper/jkD7/SDK/ido_evb3568_android11_211025_sdk/kernel/arch/arm64/

boot/dts/rockchip/ido-evb3568-v1b-dsi1-1200-1920.dts

效果文件

对齐

路径 : /home/scooper/jkD7/SDK/ido_evb3568_android11_211025_sdk/external/camera_engine_rkaiq/

iqfiles/isp21

在以前的 Linux 驱动中效果文件是xml,但是想着新的版本是json

参考链接

rk3568 调试 gc2053rk3568mipi摄像头调试(gc2385 + gc2053) - M-kobe - 博客园

rk3566 调试 gc2053RK3566调试GC2053_火柴棍mcu的博客-CSDN博客_gc2053

个人感悟实际中,参考的文献很多,但是有效的博客很少,为了避免浪费过多时间在过滤无效博客的过程中。所以列举参考链接,方便大家学习,以上其他博主的博客的内容写的比较详细,而且里面的调试方法非常有帮助,在整个开发过程中能学习到很多知识框架
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
瑞芯微的DRM框架代码流程如下: 1. DRM初始化:在系统启动时,DRM核心会被初始化,包括一些全局变量的初始化、DRM驱动程序的注册和DRM设备的创建等。此外,还需要初始化GEM(Graphics Execution Manager)和KMS(Kernel Mode Setting)等组件。 2. DRM设备初始化:DRM设备初始化主要包括对硬件的初始化、分配内存等操作。具体来说,会对GPU进行初始化,包括内存分配、显示缓冲区的创建和映射等。同时还会对渲染引擎、视频解码器等进行初始化,以及对硬件加速的相关参数进行设置。 3. 模式设置:模式设置是DRM框架中的一个重要功能,它主要负责显示输出参数的设置,包括分辨率、颜色空间、刷新率等。具体来说,模式设置的流程包括: (1)查询可用的显示模式:DRM核心会通过KMS接口查询可用的显示模式,包括分辨率、刷新率等参数。 (2)选择最佳的显示模式:DRM客户端会选择最佳的显示模式,并向DRM核心发送相应的请求。 (3)设置显示模式:DRM核心会根据请求设置显示模式,并将结果返回给DRM客户端。 4. DRM缓冲区管理:DRM缓冲区管理主要负责GPU缓冲区的分配、映射和释放等操作。具体来说,缓冲区管理的流程包括: (1)创建缓冲区:DRM客户端会请求DRM核心创建一个新的缓冲区,并指定缓冲区的属性和大小等参数。 (2)分配内存:DRM核心会分配一块内存用于存储缓冲区数据,同时还会为缓冲区分配一个唯一的ID。 (3)映射缓冲区:DRM客户端会将缓冲区映射到用户空间,用于读取或写入缓冲区数据。 (4)释放缓冲区:当缓冲区不再使用时,DRM客户端会请求DRM核心释放缓冲区,同时释放相关的内存和资源。 5. DRM加密和解密:DRM框架还支持数字内容的加密和解密功能,以保护数字内容的安全性和合法性。具体来说,加密和解密的流程如下: (1)加密:DRM核心会根据加密算法对数字内容进行加密,并生成一个加密密钥。 (2)授权:DRM客户端会向DRM核心发送授权请求,要求访问加密的数字内容。 (3)解密:如果授权通过,DRM核心会根据密钥对数字内容进行解密,并将解密后的数字内容传输到GPU缓冲区中。 6. DRM事件处理:DRM框架还支持事件处理功能,包括显示事件、输入事件、错误事件等。具体来说,事件处理的流程如下: (1)监听事件:DRM客户端通过DRM接口监听事件,包括显示事件、输入事件、错误事件等。 (2)处理事件:当有事件发生时,DRM客户端会收到相应的事件通知,并进行相应的处理,例如更新显示内容、处理输入事件等。 这些流程是DRM框架的核心流程,通过它们可以实现对数字内容的保护和控制,从而提高数字内容的安全性和合法性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值