Linux 的camera sensor 驱动代码分析:基于rv1108

本文档详细分析了RV1108 SDK中的camera ISP文件目录,介绍了如何在Linux kernel中注册和配置camera sensor驱动,特别是i2c_driver结构。探讨了驱动匹配过程、状态机转换以及电源管理。同时,提到了硬件排查步骤,包括电源、GPIO、reset引脚、i2c地址和时钟配置的检查。
摘要由CSDN通过智能技术生成
  • rv1108的sdk中关于camera isp的文件目录:
rv1108_cvr:
    kernel
        arch/arm/boot/dts           //dts配置文件
        drivers/media               
            platform/rk-isp11       //isp host drivers
            i2c/soc_camera/rockchip //camera sensor drivers
    external
        libcamerahal/out
            inc/CameraHal           //camerahal header file
            lib/libcam_hal.so       //cameahal src files
  • 关于mipi的dts注册

参考:https://blog.csdn.net/u010299133/article/details/86593608

  • camera 设备驱动

在kernel/arch/arm/boot/dts/rv1108-evb-v12.dts

  1. 驱动框架

根据实际的硬件连接、 sensor 要求,的各项信息,尤其注意 i2c 地址、 pinctrl、 DVDD 配置、 pd、 reset 引脚及其有效电平。

Sensor 设备驱动采用 i2c 设备驱动方式, 因此驱动中以 struct i2c_driver 的驱动架构实现, 如下代码:

static struct i2c_driver imx179_i2c_driver = {
    .driver = {
        .name = IMX179_DRIVER_NAME,
        .owner = THIS_MODULE,
        .of_match_table = imx179_of_match
    },
    .probe = imx179_probe,
    .remove = imx179_remove,
    .id_table = imx179_id,
};

其中 i2c_driver 中有.driver、 .probe、 .remove、 .id_table 四个子成员。 .driver主要是标识名称、 .probe 主要是用于 sensor run 涉及的处理函数, .remove 移出当前设备,释放相应空间。

static int imx179_probe
  • 0
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值