官术网_书友最值得收藏!

5.4.5 攝像頭的驅動程序

MSM的攝像頭系統構成的方式為經典的Camera驅動+Sensor驅動方式。其驅動程序是基于Video for Linux2的攝像頭驅動程序。

除了v4l2的共用部分以外,msm的主要文件是在drivers/media/video/msm/目錄中。包含了msm_v4l2.c,msm_camera.c,s5k3e2fx.c,msm_vfe8x_proc.c等文件。

msm_camera.c是公用的庫函數,創建出/dev/msm_camera中的各個設備文件:

    # ls -l /dev/msm_camera
    crw-rw---- system   system   249,   2 2010-01-13 18:39 frame0
    crw-rw---- system   system   249,   1 2010-01-13 18:39 config0
    crw-rw---- system   system   249,   0 2010-01-13 18:39 control0

這里包含了3個自定義的字符設備:frame0為幀數據設備,config0為配置設備,control0為控制設備。

include/media目錄中的msm_camera.h,是MSM攝像頭相關的頭文件,其中定義了各種額外的ioctl命令。

msm_v4l2.c是v4l2驅動程序的實現文件,實現了標準的Video for Linux 2的驅動程序,它實際上是在調用msm_camera.c中內容的基礎上實現的。

s5k3e2fx是攝像頭傳感器的驅動程序,platform_driver的名稱為msm_camera_s5k3e2fx,這個名稱和board-mahimahi.c中定義的platform_device相匹配。

s5k3e2fx是連接在i2c總線上的,其地址為0-0010,在sys文件系統中,可以看到如下信息:

    # cat /sys/bus/i2c/devices/0-0010/name
    s5k3e2fx
主站蜘蛛池模板: 乐业县| 永寿县| 隆昌县| 香格里拉县| 阿勒泰市| 同江市| 徐闻县| 嘉峪关市| 连云港市| 岳阳县| 弥渡县| 河北省| 长治县| 东港市| 珠海市| 西峡县| 新津县| 潼南县| 十堰市| 鹰潭市| 博罗县| 淮滨县| 黄骅市| 延安市| 苏尼特左旗| 莲花县| 永吉县| 柳州市| 方城县| 宣汉县| 东山县| 阳泉市| 罗山县| 织金县| 新余市| 陆良县| 永泰县| 青铜峡市| 叶城县| 镇远县| 绥芬河市|