[PATCH v3 0/5] Add support for DCMIPP camera interface of STMicroelectronics STM32 SoC series

Alain Volmat
2023-09-01T15:58:41Z

This patchset introduces support for Digital Camera Memory Interface
Pixel Processor (DCMIPP) of STMicroelectronics STM32 SoC series.

This initial support implements a single capture pipe
allowing RGB565, YUV, Y, RAW8 and JPEG capture with
frame skipping, prescaling and cropping.

DCMIPP is exposed through 3 subdevices:
- dcmipp_dump_parallel: parallel interface handling
- dcmipp_dump_postproc: frame skipping, prescaling and cropping control
- dcmipp_dump_capture: video device capture node

v3:
- Have same To & Cc in all patches emails of the serie so that everybody
has coherent view of the serie
- bindings: correct wording, clock-names & label removal
- driver: replace of_graph call with fwnode_graph
- driver: use defined bus-type when calling v4l2_fwnode_endpoint_parse
- driver: remove clock name
- dtsi: remove clock-names property

v2:
- removal of pclk-max-frequency from yaml example dts
- codying-style fixes
- correction in enum functions (format, mbus, frame_size ...) handling
- drop of v4l2_pipeline_pm_ calls, and specific open/close handler of
vdev
- video dev s_stream handling updated to call s_stream of remote subdev
instead of loop until sensor subdev
- code update following media_pipeline & v4l2_async_ api changes since v1
- removal of IP reset call upon error
- removal of link_validate handlers
- addition of V4L2_CAP_IO_MC device_caps
- removal of the frame skip control for the time being, will be added
back in another commit once control method will be agreed
- change byteproc entity type to MEDIA_ENT_F_PROC_VIDEO_SCALER
- various fixes from Dan & Sakari remarks

Alain Volmat (2):
dt-bindings: media: add bindings for stm32 dcmipp
media: MAINTAINERS: add entry for STM32 DCMIPP driver

Hugues Fruchet (3):
media: stm32-dcmipp: STM32 DCMIPP camera interface driver
ARM: dts: stm32: add dcmipp support to stm32mp135
ARM: multi_v7_defconfig: enable STM32 DCMIPP media support

.../bindings/media/st,stm32-dcmipp.yaml | 89 ++
MAINTAINERS | 9 +
arch/arm/boot/dts/st/stm32mp135.dtsi | 8 +
arch/arm/configs/multi_v7_defconfig | 1 +
drivers/media/platform/st/stm32/Kconfig | 15 +
drivers/media/platform/st/stm32/Makefile | 1 +
.../platform/st/stm32/stm32-dcmipp/Makefile | 5 +
.../st/stm32/stm32-dcmipp/dcmipp-bytecap.c | 1040 +++++++++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-byteproc.c | 692 +++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-common.c | 105 ++
.../st/stm32/stm32-dcmipp/dcmipp-common.h | 227 ++++
.../st/stm32/stm32-dcmipp/dcmipp-core.c | 675 +++++++++++
.../st/stm32/stm32-dcmipp/dcmipp-parallel.c | 523 +++++++++
13 files changed, 3390 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/st,stm32-dcmipp.yaml
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/Makefile
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-bytecap.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-byteproc.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.h
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
create mode 100644 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-parallel.c

--
2.25.1