- Android系统级深入开发
- 韩超 梁泉
- 442字
- 2020-08-26 21:43:43
6.4.2 摄像头和视频输出的驱动程序
从OMAP3处理器的角度,摄像头部分和视频输出部分属于两个子系统:摄像头属于ISP(Image Signal Processing,图像信号处理)子系统,视频输出属于DSS。ISP子系统连接的硬件是摄像头传感器,DSS连接的硬件是屏幕。
在驱动程序的实现上,它们提供给用户空间的接口,均基于video for Linux 2的驱动程序框架,前者实现视频输入的功能,调用显示相关的库;后者实现视频输出的功能,调用DSS相关的库。
提示:OMAP的DSS系统连接一个显示屏,视频输出层和图形层(基本显示区域),通过硬件实现混合获得显示效果。
video for Linux 2 的驱动程序需要使能CONFIG_VIDEO_DEV和CONFIG_VIDEO_V4L2_COMMON等编译配置宏。
ISP部分的驱动程序由drivers/media/video/目录中的isp.c ,isph3a.c,isppreview.c, ispresizer.c等文件来实现,而drivers/media/video/目录中的omap34xxcam.c是OMAP平台摄像头驱动程序的v4l2驱动主文件。
drivers/media/video/目录中的lv8093.c和imx046.c文件为不同Sensor的驱动程序。它们是由i2c总线实现控制的摄像头传感器,基于v4l2-int-device框架来实现的。它们的i2c_driver名称分别定义为lv8093和imx046,与omap/arch/arm/mach-omap2目录中的board-zoom2-camera.c文件中的内容相对应。
视频叠加层(视频输出)的驱动程序由drivers/media/video/omap-vout目录中的omapvout-mem.c,omapvout-vbq.c,omapvout-dss.c,omapvout.c,vout.c等文件构成。它们是v4l2的驱动程序,设备节点是/dev/video1和/dev/video2。