-
Notifications
You must be signed in to change notification settings - Fork 6.1k
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
drivers: video: video_mcux_smartdma: add SMARTDMA video driver #72827
base: main
Are you sure you want to change the base?
drivers: video: video_mcux_smartdma: add SMARTDMA video driver #72827
Conversation
96d24ea
to
ecdd67f
Compare
The following west manifest projects have been modified in this Pull Request:
Note: This message is automatically posted and updated by the Manifest GitHub Action. |
Introduce driver for ov7670 camera, supporting QCIF,QVGA,CIF, and VGA resolution in YUV and RGB mode. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add ov7670 camera driver to build test for video drivers Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Video sources on some smaller embedded systems cannot feasibly stream a full frame into RAM (as there is not enough space). On these systems, a scheme can be used where each video buffer corresponds to a new horizontal "slice" of the full frame, which the system can then process. In order to support this use case, add "vbufs_per_frame" field to video capabilities structure. All video source drivers are also updated in this PR to set the vbufs_per_frame field to 1, as this is the expected default value when a single video buffer corresponds to one frame. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Use vbufs_per_frame field to determine buffer size allocated within the video capture sample Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
The SMARTDMA is a programmable DMA engine, and supports custom firmware in order to run complex DMA operations. Update the driver to increase the flexibility users have when configuring the SMARTDMA with custom firmware, and remove the RT500 display firmware specific definitions and functionality from the driver. This display setup is now handled from the MIPI DSI driver, since the firmware used for this case is specific to the MIPI DSI IP. This change also requires an update to the RT500 devicetree, as the register definition for the SMARTDMA has changed, so the base address must as well. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add SMARTDMA video driver. This driver uses the SMARTDMA engine as a parallel camera interface, which can read QVGA frames from a camera device. Due to SRAM constraints, the video driver divides the camera stream into multiple horizontal video buffers as it streams them back to an application. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add definition for SMARTDMA device to the MCXN94x devicetree. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add support for LPI2C7. This peripheral is used for interfacing with cameras connected to the J9 header. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add support for SMARTDMA camera engine, and a OV7670 parallel camera definition for the frdm_mcnx947 board. This support has been tested with the video capture sample. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add support for using the SMARTDMA engine on the FRDM-MCXN947 board with the video capture sample. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
ecdd67f
to
7755b6a
Compare
Some news about it there, with a proposed API: #66994 (comment) |
Introduce driver for ov7670 camera, supporting QCIF,QVGA,CIF, and VGA resolution in YUV and RGB mode. Support was verified on the FRDM-MCXN947, using the SmartDMA camera engine, which is enabled in the following PR: zephyrproject-rtos#72827 Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
here (need to click on "load diff") is a new API that seems underway: if (drv_data->fifo_length == 0) {
vbuf->flags = VIDEO_BUF_EOF;
} else {
vbuf->flags = VIDEO_BUF_FRAG;
k_work_submit_to_queue(&ac_work_q, &drv_data->buf_work);
} |
Yes, have marked resolved |
Add SMARTDMA video driver. This driver uses the SMARTDMA engine as a
parallel camera interface, which can read QVGA frames from a camera
device. Due to SRAM constraints, the video driver divides the camera
stream into multiple horizontal video buffers as it streams them back to
an application.
Note that this PR also contains two additional major changes:
This PR depends on #72826 for camera support
PR has been tested on the following boards:
frdm_mcxn947//cpu0
:samples/subsys/video/capture
mimxrt595_evk//cm33
:samples/subsys/display/lvgl
(using G1120B0MIPI shield)