I recently also has requests to access to camera interfaces on Qcom platform SD845, and thanks to people’s response, I has following knowledge about Qcom and camera. I think professional people has more general view about this subject, and a new learner like me has a knowledge gap between them and me.
If I am wrong please correct me:
In my knowledge, there are two situations: whether you have license for one SoC from Qualcomm or MTK. If you do you can modify there drivers to support any features they supported.
For open source/linaro releases, there are two domains: SoC drivers and Camera drivers.
One camera inputs data into SoC involving MIPI-CSI for camera data interface, I2C for camera control interface, ISP which could provide conversion ( RAW bayer data into YUV, RGB or other image data), image processing ( transforming, scaling, etc ), then maybe Video/Image Encoder.
For Snapdragon platforms, I think all three products ( 410c, 820c, 845c ) are well supported in I2C and encoded supports, which are provided along releases of Linaro.
I think 410c and 820c ( this product seems discontinued ), are both supported for CSI access, I don’t have these boards but I see some threads in forum and kernel drivers provided.
845c, for now, is not provided with CSI support, @ndec told me this will be supported but not in a short term.
I see some posts, the ISP is not supposed to be supported ( I am not sure in fact ) because Qualcomm sees it as proprietary. So for these processes I guess it should be implemented in software. So although you can access CSI, you need to decide whether you want to use RAW bayer data or YUV like data. If former, you can use supported SoCs to access camera data through CSI directly, but if latter, you’d better choose one camera chip which can output YUV like image data format ( which has ISP inside it).
One other thing is the Camera driver, as long as you can access camera directly, you need to find whether there are already implemented driver for one camera, if not, you need to implement yourself.
IMO, snapdragon platform is powerful SoC, but very commercial licensed oriented platform ( although I think it is better than other similar SoCs, at least they actively involving in linux development)
If you want to stick to snapdragon, I suppose 820c ( if you can get one) and 410c is better than 845c.
If you need more open SoCs, I suggest you take a look at the ones such as Rockchip’s RK3328, RK3399, they are better supported to Open Source Community.