Skip to content

Commit 5bbaffe

Browse files
trunghieulenxphenrikbrixandersen
authored andcommitted
drivers: video: csi: Add support for changing frame rate
Add support for changing frame rate Signed-off-by: Trung Hieu Le <[email protected]> Signed-off-by: Phi Bang Nguyen <[email protected]>
1 parent 29f38b8 commit 5bbaffe

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

drivers/video/video_mcux_csi.c

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,42 @@ static int video_mcux_csi_set_signal(const struct device *dev, enum video_endpoi
431431
}
432432
#endif
433433

434+
static int video_mcux_csi_set_frmival(const struct device *dev, enum video_endpoint_id ep,
435+
struct video_frmival *frmival)
436+
{
437+
const struct video_mcux_csi_config *config = dev->config;
438+
439+
return video_set_frmival(config->source_dev, ep, frmival);
440+
}
441+
442+
static int video_mcux_csi_get_frmival(const struct device *dev, enum video_endpoint_id ep,
443+
struct video_frmival *frmival)
444+
{
445+
const struct video_mcux_csi_config *config = dev->config;
446+
447+
return video_get_frmival(config->source_dev, ep, frmival);
448+
}
449+
450+
static int video_mcux_csi_enum_frmival(const struct device *dev, enum video_endpoint_id ep,
451+
struct video_frmival_enum *fie)
452+
{
453+
const struct video_mcux_csi_config *config = dev->config;
454+
const struct video_format *fie_fmt = fie->format;
455+
int ret;
456+
457+
#if defined(CONFIG_VIDEO_MCUX_MIPI_CSI2RX)
458+
struct video_format converted_fmt = *fie->format;
459+
460+
video_pix_fmt_convert(&converted_fmt, false);
461+
fie->format = &converted_fmt;
462+
#endif
463+
464+
ret = video_enum_frmival(config->source_dev, ep, fie);
465+
fie->format = fie_fmt;
466+
467+
return ret;
468+
}
469+
434470
static const struct video_driver_api video_mcux_csi_driver_api = {
435471
.set_format = video_mcux_csi_set_fmt,
436472
.get_format = video_mcux_csi_get_fmt,
@@ -442,6 +478,9 @@ static const struct video_driver_api video_mcux_csi_driver_api = {
442478
.set_ctrl = video_mcux_csi_set_ctrl,
443479
.get_ctrl = video_mcux_csi_get_ctrl,
444480
.get_caps = video_mcux_csi_get_caps,
481+
.set_frmival = video_mcux_csi_set_frmival,
482+
.get_frmival = video_mcux_csi_get_frmival,
483+
.enum_frmival = video_mcux_csi_enum_frmival,
445484
#ifdef CONFIG_POLL
446485
.set_signal = video_mcux_csi_set_signal,
447486
#endif

0 commit comments

Comments
 (0)