zephyrproject-rtos / zephyr

Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
https://docs.zephyrproject.org
Apache License 2.0
10.48k stars 6.42k forks source link

drivers: video: image sensor list (from Linux, others) #76378

Open josuah opened 1 month ago

josuah commented 1 month ago

Is your enhancement proposal related to a problem? Please describe.

Zephyr is supporting few image sensors (although the number is growing).

Describe the solution you'd like

Port more drivers.

Describe alternatives you've considered

Export I2C controls over USB, so that Linux drivers can be used directly, Zephyr only acting as a bridge and MIPI <-> UVC adapter.

Additional context

There are now more interest coming towards the Video subsystem started by @loicpoulain and I thought that documenting the sensors porting could be interesting.

josuah commented 1 month ago
name type source docs thread module pr
:x:Analog Devices SAD5820focus motor driver ad5820.c pdf patch - -
:x:Asahi-Kasei AK7375focus motor driver ak7375.c dts - lwn arducam -
:x:Alviuim Ccamera module alvium-csi2.c page repo - - -
:x:Onsemi AR0521image sensor ar0521.c dts page lwn - -
:x:MIPI CCS/SMIA/SMIA++image sensor standard ccs ccs-pll.c dts - lwn - -
:x:Dongwoon DW9714focus motor driver dw9714.c dts pdf lwn - -
:x:Dongwoon DW9719focus motor driver dw9719.c - lwn - -
:x:Dongwoon DW9768focus motor driver dw9768.c dts pdf lwn - -
:x:Dongwoon DW9807focus motor driver dw9807-vcm.c dts - patch - -
:x:Toshiba ET8EK8image sensor et8ek8 dts wiki lwn - -
:x:Galaxycore GC0308image sensor gc0308.c dts - lwn - -
:x:Galaxycore GC05A2image sensor gc05a2.c - lwn - -
:x:Galaxycore GC08A3image sensor gc08a3.c - lwn - -
:heavy_check_mark:Galaxycore GC2145image sensor gc2145.c dts pdf lwn arducam #77770
:x:Hynix HI556image sensor hi556.c page lwn - -
:x:Hynix HI846image sensor hi846.c dts page lwn - -
:x:Hynix HI847image sensor hi847.c page - - -
:x:Sony IMX208image sensor imx208.c - lwn - -
:x:Sony IMX214image sensor imx214.c dts pdf lwn - -
:x: Sony IMX219image sensor imx219.c dts page lwn arducam -
:x:Sony IMX258image sensor imx258.c dts pdf - arducam -
:x:Sony IMX274image sensor imx274.c dts pdf pdf patch - -
:x:Sony IMX283image sensor imx283.c pdf lwn - -
:x:Sony IMX290image sensor imx290.c dts pdf lwn - -
:x:Sony IMX296image sensor imx296.c dts pdf lwn - -
:x:Sony IMX319image sensor imx319.c - lwn - -
:x:Sony IMX334image sensor imx334.c dts pdf pdf lwn - -
:x:Sony IMX335image sensor imx335.c dts pdf pdf pdf lwn - -
:x:Sony IMX355image sensor imx355.c - patch - -
:x:Sony IMX412image sensor imx412.c dts pdf pdf pdf - - -
:x:Sony IMX415image sensor imx415.c dts pdf pdf pdf lwn - -
:x:Onsemi/Aptina/Micron MT9M001image sensor mt9m001.c dts pdf - - -
:x:Onsemi/Aptina/Micron MT9M111image sensor mt9m111.c dts pdf pdf lwn - -
:heavy_check_mark: Onsemi/Aptina/Micron MT9M114image sensor mt9m114.c dts pdf lwn - #17194 #70237 #55873 #55719 #55719 #47154 #23778 #20706 #20706 #17194
:x:Onsemi/Aptina/Micron MT9P031image sensor mt9p031.c dts pdf patch - -
:x:Onsemi/Aptina/Micron MT9T112image sensor mt9t112.c pdf lwn lwn - -
:x:Onsemi/Aptina/Micron MT9V011image sensor mt9v011.c dts dts pdf - - -
:x:Onsemi/Aptina/Micron MT9V032image sensor mt9v032.c dts pdf lwn - -
:x:Onsemi/Aptina/Micron MT9V111image sensor mt9v111.c pdf pdf lwn lwn - -
:x:Omnivision OG01A1Bimage sensor og01a1b.c pdf - - -
:x:Omnivision OV01A10image sensor ov01a10.c pdf lwn - -
:x:Omnivision OV02A10image sensor ov02a10.c dts pdf lwn - -
:x:Omnivision OV08D10image sensor ov08d10.c pdf - - -
:x:Omnivision OV08X40image sensor ov08x40.c pdf lwn - -
:x:Omnivision OV13858image sensor ov13858.c pdf lwn - -
:x:Omnivision OV13B10image sensor ov13b10.c pdf lwn - -
:heavy_check_mark: Omnivision OV2640image sensor ov2640.c dts repo repo pdf - arducam #36423 #71962 #47157
:x:Omnivision OV2659image sensor ov2659.c dts pdf lwn - -
:x:Omnivision OV2680image sensor ov2680.c dts pdf lwn - -
:x:Omnivision OV2685image sensor ov2685.c dts pdf lwn - -
:x:Omnivision OV2740image sensor ov2740.c pdf lwn - -
:x:Omnivision OV4689image sensor ov4689.c dts pdf lwn - -
:heavy_check_mark: Omnivision OV5640image sensor ov5640.c dts zephyr pdf - - #71854 #76124 #76144
:x:Omnivision OV5645image sensor ov5645.c dts pdf lwn lwn lwn - -
:x: Omnivision OV5647image sensor ov5647.c dts pdf pdf lwn - -
:x:Omnivision OV5648image sensor ov5648.c dts pdf lwn waveshare -
:x:Omnivision OV5670image sensor ov5670.c dts pdf lwn - -
:x:Omnivision OV5675image sensor ov5675.c dts pdf patch - -
:x:Omnivision OV5693image sensor ov5693.c dts pdf lwn - -
:x:Omnivision OV5695image sensor ov5695.c dts pdf lwn lwn - -
:x:Omnivision OV64A40image sensor ov64a40.c dts pdf lwn - -
:x:Omnivision OV6650image sensor ov6650.c pdf pdf patch - -
:x:Omnivision OV7251image sensor ov7251.c dts pdf lwn - -
:x:Omnivision OV7640image sensor ov7640.c pdf lwn - -
:heavy_check_mark: Omnivision OV7670image sensor ov7670.c dts pdf lwn - #72826
:heavy_check_mark: Omnivision OV772Ximage sensor ov772x.c dts pdf pdf lwn - #30744 #47156
:x:Omnivision OV7740image sensor ov7740.c dts pdf lwn - -
:x:Omnivision OV8856image sensor ov8856.c dts pdf lwn - -
:x:Omnivision OV8858image sensor ov8858.c dts pdf lwn - -
:x:Omnivision OV8865image sensor ov8865.c dts pdf lwn - -
:x:Omnivision OV9282image sensor ov9282.c dts pdf lwn - -
:x:Omnivision OV9640image sensor ov9640.c pdf lwn - -
:x:Omnivision OV9650/OV9655image sensor ov9650.c dts pdf pdf lwn lwn arducam -
:x:Omnivision OV9734image sensor ov9734.c pdf issue - -
:x:IMI RDACM20camera module rdacm20.c dts - lwn - -
:x:IMI RDACM21camera module rdacm21.c dts - lwn - -
:x:Sharp RJ54N1CB0Cimage sensor rj54n1cb0c.c - lwn - -
:x:Samsung S5C73M3image sensor s5c73m3 dts - lwn - -
:x:Samsung S5K5BAFimage sensor s5k5baf.c dts - lwn - -
:x:Samsung S5K6A3image sensor s5k6a3.c dts - patch - -
:x:ST Microelectronics VGXY61image sensor vgxy61.c dts page lwn - -
:x:Panasonic AMG88XXthermal image sensor video-i2c.c dts page - - -
:x:Melexis MLX90640thermal image sensor video-i2c.c dts page - - -
thedjnK commented 1 month ago

None of those can be copied as they are gpl 2 so not sure what the point in this is?

josuah commented 1 month ago

Not only that, but some sensors init here were contributed directly by the manufacturer possibly for inclusion on Android, or unobtainium.

Still, can the Linux source act as documentation even if not importing any code from it? This also help reviewing the diversity of what exists in Linux to plan APIs in Zephyr. Zephyr has different APIs so would require the drivers changed either way.

Over time, I intend flagging those that can actually be used with a Zephyr-supported hardware, i.e. finding modules, adapters, devboards with MIPI/DMCI flex cables...