diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig index e883b5ce6243..6f215745844f 100644 --- a/drivers/media/i2c/Kconfig +++ b/drivers/media/i2c/Kconfig @@ -725,6 +725,17 @@ config VIDEO_APTINA_PLL config VIDEO_SMIAPP_PLL tristate +config VIDEO_GC2093 + tristate "GalaxyCore GC2093 sensor support" + depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API + depends on MEDIA_CAMERA_SUPPORT + select V4L2_FWNODE + help + Support for the GalaxyCore GC2093 sensor. + + To compile this driver as a module, choose M here: the + module will be called gc2093. + config VIDEO_GC2145 tristate "GalaxyCore GC2145 sensor support" depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile index 738b1f05dcf3..3d8209073454 100644 --- a/drivers/media/i2c/Makefile +++ b/drivers/media/i2c/Makefile @@ -111,6 +111,7 @@ obj-$(CONFIG_VIDEO_I2C) += video-i2c.o obj-$(CONFIG_VIDEO_ML86V7667) += ml86v7667.o obj-$(CONFIG_VIDEO_OV2659) += ov2659.o obj-$(CONFIG_VIDEO_TC358743) += tc358743.o +obj-$(CONFIG_VIDEO_GC2093) += gc2093.o obj-$(CONFIG_VIDEO_GC2145) += gc2145.o obj-$(CONFIG_VIDEO_GC2385) += gc2385.o obj-$(CONFIG_VIDEO_GC4663) += gc4663.o diff --git a/drivers/media/i2c/gc2093.c b/drivers/media/i2c/gc2093.c index 8ee869ff73d9..c8d15ca23520 100644 --- a/drivers/media/i2c/gc2093.c +++ b/drivers/media/i2c/gc2093.c @@ -1095,14 +1095,14 @@ static int gc2093_g_frame_interval(struct v4l2_subdev *sd, return 0; } -static int gc2093_g_mbus_config(struct v4l2_subdev *sd, +static int gc2093_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad_id, struct v4l2_mbus_config *config) { struct gc2093 *gc2093 = to_gc2093(sd); u32 val = 1 << (GC2093_LANES - 1) | V4L2_MBUS_CSI2_CHANNEL_0 | V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; - config->type = V4L2_MBUS_CSI2; + config->type = V4L2_MBUS_CSI2_DPHY; config->flags = (gc2093->cur_mode->hdr_mode == NO_HDR) ? val : (val | V4L2_MBUS_CSI2_CHANNEL_1); @@ -1296,7 +1296,6 @@ static const struct v4l2_subdev_core_ops gc2093_core_ops = { static const struct v4l2_subdev_video_ops gc2093_video_ops = { .s_stream = gc2093_s_stream, .g_frame_interval = gc2093_g_frame_interval, - .g_mbus_config = gc2093_g_mbus_config, }; static const struct v4l2_subdev_pad_ops gc2093_pad_ops = { @@ -1305,6 +1304,7 @@ static const struct v4l2_subdev_pad_ops gc2093_pad_ops = { .enum_frame_interval = gc2093_enum_frame_interval, .get_fmt = gc2093_get_fmt, .set_fmt = gc2093_set_fmt, + .get_mbus_config = gc2093_g_mbus_config, }; static const struct v4l2_subdev_ops gc2093_subdev_ops = {