diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index 4236d15d4f37..b29d52c43392 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -1000,6 +1000,18 @@ config VIDEO_IMX347 To compile this driver as a module, choose M here: the module will be called imx347. +config VIDEO_IMX378 + tristate "Sony IMX378 sensor support" + depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API + depends on MEDIA_CAMERA_SUPPORT + select V4L2_FWNODE + help + This is a Video4Linux2 sensor driver for the Sony + IMX378 camera. + + To compile this driver as a module, choose M here: the + module will be called imx378. + config VIDEO_IMX355 tristate "Sony IMX355 sensor support" depends on I2C && VIDEO_V4L2 diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 072f7227beef..d923fedabf47 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -135,6 +135,7 @@ obj-$(CONFIG_VIDEO_IMX327) += imx327.o obj-$(CONFIG_VIDEO_IMX334) += imx334.o obj-$(CONFIG_VIDEO_IMX335) += imx335.o obj-$(CONFIG_VIDEO_IMX347) += imx347.o +obj-$(CONFIG_VIDEO_IMX378) += imx378.o obj-$(CONFIG_VIDEO_IMX355) += imx355.o obj-$(CONFIG_VIDEO_MAX9286) += max9286.o rdacm20-camera_module-objs := rdacm20.o max9271.o diff --git a/drivers/media/i2c/imx378.c b/drivers/media/i2c/imx378.c index d941d7c36e7d..48674ef6aa82 100644 --- a/drivers/media/i2c/imx378.c +++ b/drivers/media/i2c/imx378.c @@ -2098,7 +2098,7 @@ static int imx378_g_frame_interval(struct v4l2_subdev *sd, return 0; } -static int imx378_g_mbus_config(struct v4l2_subdev *sd, +static int imx378_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad_id, struct v4l2_mbus_config *config) { struct imx378 *imx378 = to_imx378(sd); @@ -2116,7 +2116,7 @@ static int imx378_g_mbus_config(struct v4l2_subdev *sd, V4L2_MBUS_CSI2_CONTINUOUS_CLOCK | V4L2_MBUS_CSI2_CHANNEL_1; - config->type = V4L2_MBUS_CSI2; + config->type = V4L2_MBUS_CSI2_DPHY; config->flags = val; return 0; @@ -2570,7 +2570,6 @@ static const struct v4l2_subdev_core_ops imx378_core_ops = { static const struct v4l2_subdev_video_ops imx378_video_ops = { .s_stream = imx378_s_stream, .g_frame_interval = imx378_g_frame_interval, - .g_mbus_config = imx378_g_mbus_config, }; static const struct v4l2_subdev_pad_ops imx378_pad_ops = { @@ -2579,6 +2578,7 @@ static const struct v4l2_subdev_pad_ops imx378_pad_ops = { .enum_frame_interval = imx378_enum_frame_interval, .get_fmt = imx378_get_fmt, .set_fmt = imx378_set_fmt, + .get_mbus_config = imx378_g_mbus_config, }; static const struct v4l2_subdev_ops imx378_subdev_ops = {