[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250206-v6-8-topic-rk3568-vicap-v3-0-69d1f19e5c40@wolfvision.net>
Date: Thu, 06 Feb 2025 10:57:38 +0100
From: Michael Riesch <michael.riesch@...fvision.net>
To: Mehdi Djait <mehdi.djait@...ux.intel.com>,
Maxime Chevallier <maxime.chevallier@...tlin.com>,
Théo Lebrun <theo.lebrun@...tlin.com>,
Gerald Loacker <gerald.loacker@...fvision.net>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
Rob Herring <robh+dt@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Heiko Stuebner <heiko@...ech.de>,
Kever Yang <kever.yang@...k-chips.com>,
Nicolas Dufresne <nicolas.dufresne@...labora.com>,
Sebastian Fricke <sebastian.fricke@...labora.com>,
Sebastian Reichel <sebastian.reichel@...labora.com>,
Paul Kocialkowski <paulk@...-base.io>,
Alexander Shiyan <eagle.alexander923@...il.com>,
Val Packett <val@...kett.cool>, Rob Herring <robh@...nel.org>,
Philipp Zabel <p.zabel@...gutronix.de>,
Sakari Ailus <sakari.ailus@...ux.intel.com>
Cc: linux-media@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-rockchip@...ts.infradead.org,
Michael Riesch <michael.riesch@...fvision.net>,
Mehdi Djait <mehdi.djait@...tlin.com>
Subject: [PATCH v3 0/7] media: rockchip: add a driver for the rockchip
camera interface
Habidere,
This series introduces support for the Rockchip Camera Interface (CIF),
which is featured in many Rockchip SoCs in different variations.
For example, the PX30 Video Input Processor (VIP) is able to receive
video data via the Digital Video Port (DVP, a parallel data interface
and transfer it into system memory using a double-buffering mechanism
called ping-pong mode.
The RK3568 Video Capture (VICAP) unit, on the other hand, features a
DVP and a MIPI CSI-2 receiver that can receive video data independently
(both using the ping-pong scheme).
The different variants may have additional features, such as scaling
and/or cropping.
Finally, the RK3588 VICAP unit constitutes an essential piece of the
camera interface with one DVP, six MIPI CSI-2 receivers, scale/crop
units, and different data path multiplexers (to system memory, to
ISP, ...).
After yet another major refactoring and renaming the driver "cif" ->
"rkcif", the v3 of the series now adds a basic media controller centric
V4L2 driver for the Rockchip CIF with
- support for the PX30 VIP (not tested, though, due to the lack of HW)
- support for the RK3568 VICAP DVP
- abstraction for the ping-pong scheme to allow for future extensions
- abstraction for the INTERFACE and CROP parts to allow for future
extensions
- initial support for different virtual channels (not tested, though,
due to the lack of HW)
The patches are functional and have been tested successfully on a
custom RK3568 board including the ITE Tech. IT6801 HDMI receiver as
attached subdevice. The IT6801 driver still needs some loving care but
shall be submitted as well at some point.
However, several features are not yet addressed, such as
- support for the RK3568 MIPI CSI-2 receiver (I managed to get it
working, but patches need cleanup -> next item on my TODO)
- support for the RK3588 variant (-> next but one item on my TODO)
- support for the scaling units that can be found in some
variants
Looking forward to your comments!
[0] https://lore.kernel.org/linux-media/20201229161724.511102-1-maxime.chevallier@bootlin.com/
[1] https://lore.kernel.org/linux-media/cover.1707677804.git.mehdi.djait.k@gmail.com/
[2] https://lore.kernel.org/all/20240220-v6-8-topic-rk3568-vicap-v1-0-2680a1fa640b@wolfvision.net/
To: Mehdi Djait <mehdi.djait@...ux.intel.com>
To: Maxime Chevallier <maxime.chevallier@...tlin.com>
To: Théo Lebrun <theo.lebrun@...tlin.com>
To: Gerald Loacker <gerald.loacker@...fvision.net>
To: Thomas Petazzoni <thomas.petazzoni@...tlin.com>
To: Sakari Ailus <sakari.ailus@....fi>
To: Laurent Pinchart <laurent.pinchart@...asonboard.com>
To: Mauro Carvalho Chehab <mchehab@...nel.org>
To: Rob Herring <robh+dt@...nel.org>
To: Krzysztof Kozlowski <krzk+dt@...nel.org>
To: Conor Dooley <conor+dt@...nel.org>
To: Heiko Stuebner <heiko@...ech.de>
To: Kever Yang <kever.yang@...k-chips.com>
To: Nicolas Dufresne <nicolas.dufresne@...labora.com>
To: Sebastian Fricke <sebastian.fricke@...labora.com>
To: Sebastian Reichel <sebastian.reichel@...labora.com>
To: Paul Kocialkowski <paulk@...-base.io>
To: Alexander Shiyan <eagle.alexander923@...il.com>
To: Val Packett <val@...kett.cool>
To: Rob Herring <robh@...nel.org>
To: Philipp Zabel <p.zabel@...gutronix.de>
Cc: linux-media@...r.kernel.org
Cc: devicetree@...r.kernel.org
Cc: linux-kernel@...r.kernel.org
Cc: linux-arm-kernel@...ts.infradead.org
Cc: linux-rockchip@...ts.infradead.org
Signed-off-by: Michael Riesch <michael.riesch@...fvision.net>
Changes in v3:
- renamed the driver "cif" -> "rkcif"
- rebased onto v6.14-rc1
- abstracted the generic INTERFACE+CROP part
- addressed comments by Rob and Sakari
- added V4L2 MPLANE formats to DVP
- added patch that enables the RK3568 VICAP DVP on PF5 IO Expander
- fixed formatting issues raised by media-ci bot
- Link to v2: https://lore.kernel.org/r/20241217-v6-8-topic-rk3568-vicap-v2-0-b1d488fcc0d3@wolfvision.net
Changes in v2:
- merged with Mehdi's v13
- refactored the complete driver towards a media controller centric driver
- abstracted the generic ping-pong stream (can be used for DVP as well as for CSI-2)
- switched to MPLANE API
- added support for notifications
- Link to v1: https://lore.kernel.org/r/20240220-v6-8-topic-rk3568-vicap-v1-0-2680a1fa640b@wolfvision.net
---
Mehdi Djait (2):
media: dt-bindings: media: add bindings for rockchip px30 vip
arm64: dts: rockchip: add the vip node to px30
Michael Riesch (5):
media: dt-bindings: media: video-interfaces: add defines for sampling modes
media: dt-bindings: media: add bindings for rockchip rk3568 vicap
media: rockchip: add a driver for the rockchip camera interface
arm64: dts: rockchip: add vicap node to rk356x
arm64: dts: rockchip: enable vicap dvp on wolfvision pf5 io expander
.../bindings/media/rockchip,px30-vip.yaml | 123 +++
.../bindings/media/rockchip,rk3568-vicap.yaml | 167 ++++
MAINTAINERS | 9 +
arch/arm64/boot/dts/rockchip/px30.dtsi | 12 +
.../rk3568-wolfvision-pf5-io-expander.dtso | 20 +
arch/arm64/boot/dts/rockchip/rk356x-base.dtsi | 44 ++
drivers/media/platform/rockchip/Kconfig | 1 +
drivers/media/platform/rockchip/Makefile | 1 +
drivers/media/platform/rockchip/rkcif/Kconfig | 15 +
drivers/media/platform/rockchip/rkcif/Makefile | 7 +
.../platform/rockchip/rkcif/rkcif-capture-dvp.c | 862 +++++++++++++++++++++
.../platform/rockchip/rkcif/rkcif-capture-dvp.h | 24 +
.../platform/rockchip/rkcif/rkcif-capture-mipi.c | 25 +
.../platform/rockchip/rkcif/rkcif-capture-mipi.h | 20 +
.../media/platform/rockchip/rkcif/rkcif-common.h | 228 ++++++
drivers/media/platform/rockchip/rkcif/rkcif-dev.c | 306 ++++++++
.../platform/rockchip/rkcif/rkcif-interface.c | 406 ++++++++++
.../platform/rockchip/rkcif/rkcif-interface.h | 30 +
drivers/media/platform/rockchip/rkcif/rkcif-regs.h | 131 ++++
.../media/platform/rockchip/rkcif/rkcif-stream.c | 618 +++++++++++++++
.../media/platform/rockchip/rkcif/rkcif-stream.h | 31 +
include/dt-bindings/media/video-interfaces.h | 4 +
22 files changed, 3084 insertions(+)
---
base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
change-id: 20240220-v6-8-topic-rk3568-vicap-b9b3f9925f44
Best regards,
--
Michael Riesch <michael.riesch@...fvision.net>
Powered by blists - more mailing lists