Re: [PATCH v2 2/2] media: i2c: Add Samsung S5KJN5 image sensor driver
Wenmeng Liu <[email protected]> Mon, 3 Aug 2026 10:53:07 +0800
| Newsgroups | org.kernel.vger.linux-media,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/1/2026 1:39 AM, Vladimir Zapolskiy wrote: > Hi Wenmeng, > > On 7/31/26 11:24, Wenmeng Liu wrote: >> >> Hi Vladimir, >> On 7/25/2026 3:22 PM, Vladimir Zapolskiy wrote: >>> Hi Wenmeng. >>> >>> On 7/24/26 12:50, Wenmeng Liu wrote: >>>> Add a V4L2 sub-device driver for the Samsung S5KJN5, a 50 MP GBRG >>>> 10-bit >>> >>> I believe "GBRG" detalization here will be incorrect, if you consider >>> image >>> flips or odd crops. >>> >>>> RAW MIPI CSI-2 image sensor. The driver supports the 4096x3072 mode and >>>> exposes the standard controls (exposure, gain, vblank/hblank, test >>>> pattern). >>>> >>>> Signed-off-by: Wenmeng Liu <[email protected]> >>>> --- >>>> MAINTAINERS | 1 + >>>> drivers/media/i2c/Kconfig | 11 + >>>> drivers/media/i2c/Makefile | 1 + >>>> drivers/media/i2c/s5kjn5.c | 2835 ++++++++++++++++++++++++++++++++++ >>>> ++++++++++ >>>> 4 files changed, 2848 insertions(+) >>>> >>>> diff --git a/MAINTAINERS b/MAINTAINERS >>>> index >>>> 244c7ed5872aa0972a7b055d7e0b19d530820a08..6f6edae5de13efc0cda6c91ab8c9a40bfe2cbff9 100644 >>>> --- a/MAINTAINERS >>>> +++ b/MAINTAINERS >>>> @@ -24195,6 +24195,7 @@ M: Wenmeng Liu >>>> <[email protected]> >>>> L: [email protected] >>>> S: Supported >>>> F: Documentation/devicetree/bindings/media/i2c/ >>>> samsung,s5kjn5.yaml >>>> +F: drivers/media/i2c/s5kjn5.c >>>> SAMSUNG S5P Security SubSystem (SSS) DRIVER >>>> M: Krzysztof Kozlowski <[email protected]> >>>> diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig >>>> index >>>> 7ffccba897ae5637bd0cb913e1e04f9c7d0c89f5..06b5dbc32cab328df8d10da04d91a708bff6fdda 100644 >>>> --- a/drivers/media/i2c/Kconfig >>>> +++ b/drivers/media/i2c/Kconfig >>>> @@ -824,6 +824,17 @@ config VIDEO_S5KJN1 >>>> To compile this driver as a module, choose M here: the >>>> module will be called s5kjn1. >>>> +config VIDEO_S5KJN5 >>>> + tristate "Samsung S5KJN5 sensor support" >>>> + depends on GPIOLIB >>>> + select V4L2_CCI_I2C >>>> + help >>>> + This is a V4L2 sensor driver for Samsung S5KJN5 50MP GBRG >>> >>> Same comment as above, I believe "GBRG" should be either removed or >>> generalized to "Bayer" or "raw". >>> >>>> + 10-bit RAW MIPI CSI-2 camera sensor. >>>> + >>>> + To compile this driver as a module, choose M here: the >>>> + module will be called s5kjn5. >>>> + >>>> config VIDEO_T4KA3 >>>> tristate "Toshiba T4KA3 sensor support" >>>> depends on ACPI || COMPILE_TEST >>>> diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile >>>> index >>>> d04bd5724552e88fc2ad39f9bbaf9b4ce1763939..45019ce20a6c34c8139b8247b6904c3abb1a8fe7 100644 >>>> --- a/drivers/media/i2c/Makefile >>>> +++ b/drivers/media/i2c/Makefile >>>> @@ -133,6 +133,7 @@ obj-$(CONFIG_VIDEO_S5K3M5) += s5k3m5.o >>>> obj-$(CONFIG_VIDEO_S5K5BAF) += s5k5baf.o >>>> obj-$(CONFIG_VIDEO_S5K6A3) += s5k6a3.o >>>> obj-$(CONFIG_VIDEO_S5KJN1) += s5kjn1.o >>>> +obj-$(CONFIG_VIDEO_S5KJN5) += s5kjn5.o >>>> obj-$(CONFIG_VIDEO_SAA6588) += saa6588.o >>>> obj-$(CONFIG_VIDEO_SAA6752HS) += saa6752hs.o >>>> obj-$(CONFIG_VIDEO_SAA7110) += saa7110.o >>>> diff --git a/drivers/media/i2c/s5kjn5.c b/drivers/media/i2c/s5kjn5.c >>>> new file mode 100644 >>>> index >>>> 0000000000000000000000000000000000000000..865db808aabcf7d910acbdab8126b9fa308ef875 >>>> --- /dev/null >>>> +++ b/drivers/media/i2c/s5kjn5.c >>>> @@ -0,0 +1,2835 @@ >>>> +// SPDX-License-Identifier: GPL-2.0 >>>> +/* >>>> + * Samsung S5KJN5 50 MP GBRG 10-bit RAW MIPI CSI-2 sensor driver >>> >>> Same comment as above. >>> >>>> + * >>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries >>>> + */ >>>> + >>>> +#include <linux/clk.h> >>>> +#include <linux/delay.h> >>>> +#include <linux/gpio/consumer.h> >>>> +#include <linux/i2c.h> >>>> +#include <linux/module.h> >>>> +#include <linux/pm_runtime.h> >>>> +#include <linux/regmap.h> >>>> +#include <linux/regulator/consumer.h> >>>> +#include <media/v4l2-cci.h> >>>> +#include <media/v4l2-ctrls.h> >>>> +#include <media/v4l2-device.h> >>> >>> Let me ask, which interface or declaration from media/v4l2-ctrls.h >>> is used in the driver? I have a feeling that it's unused. >>> >> >> It is required. The driver call many interfaces form it, like >> v4l2_ctrl_new_int_menu/__v4l2_ctrl_handler_setup... > > my bad, I stopped at media/v4l2-device.h above, and my question is about > this media/v4l2-device.h header actually, can you please double check, > if the driver uses anything from that header or not? > > I wrongly copied a definitely used media/v4l2-ctrls.h to my question, > it was not my intention, sorry. > Yes, you're right. This header file is unnecessary. Thanks for catching that. I'll fix it in the next version. Thanks, wenmeng