drivers: video: csi: Add support for changing frame rate
Add support for changing frame rate Signed-off-by: Trung Hieu Le <trunghieu.le@nxp.com> Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
This commit is contained in:
parent
29f38b81e2
commit
5bbaffe7c3
1 changed files with 39 additions and 0 deletions
|
|
@ -431,6 +431,42 @@ static int video_mcux_csi_set_signal(const struct device *dev, enum video_endpoi
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static int video_mcux_csi_set_frmival(const struct device *dev, enum video_endpoint_id ep,
|
||||||
|
struct video_frmival *frmival)
|
||||||
|
{
|
||||||
|
const struct video_mcux_csi_config *config = dev->config;
|
||||||
|
|
||||||
|
return video_set_frmival(config->source_dev, ep, frmival);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int video_mcux_csi_get_frmival(const struct device *dev, enum video_endpoint_id ep,
|
||||||
|
struct video_frmival *frmival)
|
||||||
|
{
|
||||||
|
const struct video_mcux_csi_config *config = dev->config;
|
||||||
|
|
||||||
|
return video_get_frmival(config->source_dev, ep, frmival);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int video_mcux_csi_enum_frmival(const struct device *dev, enum video_endpoint_id ep,
|
||||||
|
struct video_frmival_enum *fie)
|
||||||
|
{
|
||||||
|
const struct video_mcux_csi_config *config = dev->config;
|
||||||
|
const struct video_format *fie_fmt = fie->format;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
#if defined(CONFIG_VIDEO_MCUX_MIPI_CSI2RX)
|
||||||
|
struct video_format converted_fmt = *fie->format;
|
||||||
|
|
||||||
|
video_pix_fmt_convert(&converted_fmt, false);
|
||||||
|
fie->format = &converted_fmt;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
ret = video_enum_frmival(config->source_dev, ep, fie);
|
||||||
|
fie->format = fie_fmt;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct video_driver_api video_mcux_csi_driver_api = {
|
static const struct video_driver_api video_mcux_csi_driver_api = {
|
||||||
.set_format = video_mcux_csi_set_fmt,
|
.set_format = video_mcux_csi_set_fmt,
|
||||||
.get_format = video_mcux_csi_get_fmt,
|
.get_format = video_mcux_csi_get_fmt,
|
||||||
|
|
@ -442,6 +478,9 @@ static const struct video_driver_api video_mcux_csi_driver_api = {
|
||||||
.set_ctrl = video_mcux_csi_set_ctrl,
|
.set_ctrl = video_mcux_csi_set_ctrl,
|
||||||
.get_ctrl = video_mcux_csi_get_ctrl,
|
.get_ctrl = video_mcux_csi_get_ctrl,
|
||||||
.get_caps = video_mcux_csi_get_caps,
|
.get_caps = video_mcux_csi_get_caps,
|
||||||
|
.set_frmival = video_mcux_csi_set_frmival,
|
||||||
|
.get_frmival = video_mcux_csi_get_frmival,
|
||||||
|
.enum_frmival = video_mcux_csi_enum_frmival,
|
||||||
#ifdef CONFIG_POLL
|
#ifdef CONFIG_POLL
|
||||||
.set_signal = video_mcux_csi_set_signal,
|
.set_signal = video_mcux_csi_set_signal,
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue