-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve the ov5640 video driver to provide parallel interface (DVP) support. #74353
Comments
I have worked a bit with that sensor in the past in parallel (non-MIPI) mode, so could give a hand. This might be the first sensor that would be possible to configure in either modes. There is a On Linux, the MIPI parameters are passed as part of the endpoint:
That opens these possibilities:
|
Thanks for your availability, @josuah! I am not a specialist, but could be a good opportunity to learn more about camera sensor and Zephyr drivers as well. |
This was the partial DTS that I'm using in the initial tests with OV5640 sensor and ST DCMI driver on STM32H7B3I-DK board.
document_5147857391924020551.mp4 |
@josuah, if I got your suggestion, the previous DTS should be updated to something like below? I'm using the Parallel interface is used.
Parallel interface is used.
|
That would be something like this in Linux (with the
And another example when MIPI is used:
Although Zephyr does not have any of these, and configuring them here might not be necessary to get them to work. Even having any |
Thanks, @josuah ! I'll take a better look at those links. |
In Linux, the sensor detects whether it is configured on a MIPI bus or on a DVP/DMCI bus: This means a OV5640 camera devicetree node would be nested into either a MIPI or DMCI node/block, and this would sets which type it is configured with. I think there lack a devicetree bindings declaration But of course, MIPI devices aare "on-bus" for their configuration interface: I2C, not MIPI or CSI! This is the "on-bus" for their remote-endpopint that is considered here: sensor->ep.bus_type This means we would probably need something like this to be merged first: #73023 Maybe a simple devicetree configuration could be done in the meantime? So that you are not blocked by this. |
+1 from me. I think this would be a nice extension for ov5640. FYI, we are currently adding framerate changing to this driver but this shouldn't be a problem.
@josuah , @CharlesDias : For this CSI / DVP (parallel) extension, as you said, we just need a "bus-type" property defined in the devicetree. We should group all these common properties into a "video-interfaces.yaml" binding (to avoid repeating them for each driver), some thing like this which I picked from Linux. Then, in the driver, we can get the property by : This will be similar to what actually done for display, as here. Support of remote-endpoint in Zephyr would be nicer but I think it is not a blocking point for this case. |
Exciting! This is some good way to structure the various video drivers.
I agree and this is good to have it this way in the meantime. @CharlesDias would a Something like this:
|
@josuah, I think so! Thank you, @josuah and @ngphibang! I'll wait a little more for other members' to confirm that no one is working on this. |
Hi, @josuah and @ngphibang. I hope you can help me with the following question. On the Linux driver, from the link above, we have duplicate properties declared for both endpoints, dcmi and i2c. I thought this duplication strange. My questions are:
Thanks!
|
So, in any of above cases, I think we should define |
For the "duplicated" properties, do you mean |
Also make sense for me to define the
I did not know that! :-) Thanks so much @ngphibang for the explanation! |
Hi @CharlesDias , You could also rebase the DCMI binding on this common binding if you want. Thanks ! |
Thanks, @ngphibang! Well done! |
@CharlesDias I am trying to use the ov5460 on a STM32H7a3zi. Im using latest Zephyr master but I get Is there any PR I need for this to run thats not yet in master? Or did I do something wrong? Im using the lvgl sample but removed all lvgl code as I dont have a display. |
@CodingGhost I suspect this is related to a different PR/issue, and opened a discussion about it here: Do feel free to comment the OV5640 video driver and DVP support here, though let's troubleshoot your issue on #80371 if that's ok. :) |
Is your enhancement proposal related to a problem? Please describe.
The current ov5640 does not support the parallel interface, it supports MIPI CSI-2 interface.
Describe the solution you'd like
Improve the ov5640 video driver to provide parallel interface support as well.
Additional context
Anyone planning on implementing this improvement?
Recently, the OV5640 video driver was added. However, it only supports the MIPI CSI-2 interface. I plan to implement this driver update, if no one is implementing it, and validate it on a STMicroelectronics board via DCMI driver.
/cc @ngphibang @kartben @erwango @ABOSTM @FRASTM @josuah @loicpoulain @danieldegrasse
The text was updated successfully, but these errors were encountered: