1. 程式人生 > >各個平臺camera驅動編寫註意事項

各個平臺camera驅動編寫註意事項

void 形式 pro 接口 over 控制器 交互 方式 imx6

各個平臺camera驅動編寫註意事項

camera驅動開發

1)另外註意,在imx6平臺中,4.1.15kernel版本的代碼,mxc的mxc_v4l2_capture.c camera主控制器和ov5642.c的sensor驅動之間,通過v4l2-int-device.h和v4l2-int-device.c中的master和slave註冊attach連接的方式來關聯,關聯後,master(camera isp主控制器)通過ioctl來控制slave(sensor)。master和slave只有struct v4l2_int_ioctl_dest的ioctl的交互,這些交互包括init、power控制、g_fmt_cap、g_s_parm、g_ctrl等等。slave sensor驅動也僅僅是實現這些ioctl功能即可。

2)然而高通平臺和mtk平臺並沒有使用v4l2-int-device.c的方式和sensor驅動通信。高通平臺的msm isp以v4l2_subdev的形式出現,參見msm_isp.c公共文件和具體的msm_isp47.c版本。高通的msm_sensor.c以subdev的形式出現(見msm_sd_register()),然後各個具體的camera sensor則是以msm_sensor_platform_probe(struct platform_device, const void data),其實data是struct msm_sensor_ctrl_t類型來傳入個msm_sensor.c作為回調。
3)mtk平臺目前沒有看到他是否使用了v4l2的框架。
雖然每個平臺的接口有區別,要求你提供的驅動代碼框架有一定區別,但是可以從平臺中找個參考的驅動去實現。例如攝像頭ov5640驅動,例如imx6的drivers/media/platform/mxc/capture/ov5640.c或者ov5640_mipi.c。例如參考ov5640_mipi.c來實現pr2000k_mipi.c驅動。
另外:一個視頻捕獲驅動對進入的視頻流有兩種工作模式: Preview模式(非overlay模式)和overlay模式。 別的地方叫法不同。overlay模式可能叫preview模式。

具體請參考我的免費的linux各種驅動開發課程如下:

https://edu.51cto.com/course/17138.html

另外我的相關培訓視頻請看:
歡迎觀看我發布的各個課程: https://edu.51cto.com/lecturer/8896847.html

各個平臺camera驅動編寫註意事項