| From: |
| Vladimir Zapolskiy <vladimir.zapolskiy-AT-linaro.org> |
| To: |
| Mauro Carvalho Chehab <mchehab-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Sakari Ailus <sakari.ailus-AT-linux.intel.com> |
| Subject: |
| [PATCH v2 0/2] media: i2c: Add Samsung S5K3M5 13MP camera sensor driver |
| Date: |
| Wed, 03 Dec 2025 06:02:38 +0200 |
| Message-ID: |
| <20251203040241.71018-1-vladimir.zapolskiy@linaro.org> |
| Cc: |
| Conor Dooley <conor+dt-AT-kernel.org>, Hans Verkuil <hverkuil-AT-kernel.org>, Neil Armstrong <neil.armstrong-AT-linaro.org>, devicetree-AT-vger.kernel.org, linux-media-AT-vger.kernel.org |
| Archive-link: |
| Article |
Samsung S5K3M5 (ISOCELL 3M5) is a 13MP image sensor, it produces
Bayer GRBG (2x2) frames in RAW10 output format, the maximum supported
output resolution is 4208x3120 at 30 frames per second rate.
The changeset supports two output resolutions 4208x3120@30 and 2104x1184@60,
PLL configuration is done for 24MHz external clock, in future it would be
possible to add a setup for 19.2MHz external clock also.
The next V4L2 controls are supported by the driver: vertical/horizontal flip,
exposure, analogue gain, vertical/horizontal blanking and test pattern.
The sensor is present and tested on SM8550-QRD and on SM8550-HDK board with
a Rear Camera Card.
Changes from v1 to v2:
1) added Tested-by and Reviewed-by tags from Neil and Krzysztof respectively,
2) specified optional data-lanes property (Sakari),
3) renamed voltage supply properties to match pad names by Samsung (Luca),
4) added minor requested updates to s5k3m5_probe() (Sakari),
5) added minor requested updated s5k3m5_init_controls() (Sakari),
6) added a simple .get_selection to support the basic crop controls (Sakari),
7) set default number of CSI lanes (Sakari),
8) changed a helper function to calculate pixel rate to get frequency parameter,
9) removed .link_freq_index since there is only one supported option.
Link to v1:
- https://lore.kernel.org/linux-media/20251012231102.179740...
----8<----8<----8<----8<----8<----8<----
% v4l2-compliance -d /dev/v4l-subdev30
v4l2-compliance SHA: not available, 64 bits, 64-bit time_t
Compliance test for device /dev/v4l-subdev30:
Required ioctls:
Allow for multiple opens:
test second /dev/v4l-subdev30 open: OK
test for unlimited opens: OK
test invalid ioctls: OK
Debug ioctls:
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK (Not Supported)
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls:
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: OK
test VIDIOC_QUERYCTRL: OK
test VIDIOC_G/S_CTRL: OK
test VIDIOC_G/S/TRY_EXT_CTRLS: OK
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 12 Private Controls: 0
Format ioctls:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK (Not Supported)
test VIDIOC_G/S_PARM: OK (Not Supported)
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK (Not Supported)
test VIDIOC_TRY_FMT: OK (Not Supported)
test VIDIOC_S_FMT: OK (Not Supported)
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK (Not Supported)
test Composing: OK (Not Supported)
test Scaling: OK (Not Supported)
Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls:
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK (Not Supported)
test VIDIOC_EXPBUF: OK (Not Supported)
test Requests: OK (Not Supported)
Total for device /dev/v4l-subdev30: 41, Succeeded: 41, Failed: 0, Warnings: 0
Vladimir Zapolskiy (2):
dt-bindings: media: i2c: Add Samsung S5K3M5 image sensor
media: i2c: Add Samsung S5K3M5 13MP camera sensor driver
.../bindings/media/i2c/samsung,s5k3m5.yaml | 103 ++
MAINTAINERS | 8 +
drivers/media/i2c/Kconfig | 10 +
drivers/media/i2c/Makefile | 1 +
drivers/media/i2c/s5k3m5.c | 1377 +++++++++++++++++
5 files changed, 1499 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/i2c/samsung,s5k3m5.yaml
create mode 100644 drivers/media/i2c/s5k3m5.c
--
2.49.0