[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com>
Date: Thu, 21 Aug 2025 16:15:35 -0400
From: Frank Li <Frank.Li@....com>
To: Rui Miguel Silva <rmfrfs@...il.com>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Martin Kepplinger <martink@...teo.de>, Purism Kernel Team <kernel@...i.sm>,
Mauro Carvalho Chehab <mchehab@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Eugen Hristev <eugen.hristev@...aro.org>, Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Fabio Estevam <festevam@...il.com>, Peng Fan <peng.fan@....com>,
Alice Yuan <alice.yuan@....com>, Vinod Koul <vkoul@...nel.org>,
Kishon Vijay Abraham I <kishon@...nel.org>,
Philipp Zabel <p.zabel@...gutronix.de>,
Steve Longerbeam <slongerbeam@...il.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux-media@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, imx@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-phy@...ts.infradead.org,
linux-staging@...ts.linux.dev, Frank Li <Frank.Li@....com>,
Luis Oliveira <lolivei@...opsys.com>
Subject: [PATCH v3 00/31] media: add imx93 mipi/controller csi support
Totally rewrite CSI part driver compared to V1.
This only includes CSI related patches.
DTS part: see https://lore.kernel.org/imx/20250701-95_cam-v1-6-c5172bab387b@nxp.com/
PHY part: see https://lore.kernel.org/imx/20250701-95_cam-v1-4-c5172bab387b@nxp.com/
AP1302 part: see https://lore.kernel.org/imx/20250701-95_cam-v1-7-c5172bab387b@nxp.com/
upstream: https://lore.kernel.org/imx/20250623-ap1302-v3-0-c9ca5b791494@nxp.com/
First 3 patches add some common helper function to simple code and remove
duplicated code in difference CSI2 drivers.
Clean up stage imx6 old version csi2 driver, and prepare create common
dw csi2 library for difference IP version.
Move stage driver under driver/media/synosis.
Create simple platform driver for common dw csi2 use case.
TODO:
1. create bus, to probe phy driver under "test_if" interface for
specific phys under CSI2.
2. support to combine phy, (which connect to both dw CSI and DSI's
test_if). Need use DSI's test_if to config combo phy to switch to RX mode.
and also need config RX part's phy register by use CSI's testif.
3. move other vendor's csi driver to use this common DWC CSI
library.
Signed-off-by: Frank Li <Frank.Li@....com>
---
Changes in v3:
- update binding doc
- combine two add helper function's patch to one. and use media_bus_fmt_info
data structure.
- Link to v2: https://lore.kernel.org/r/20250808-95_cam-v2-0-4b29fa6919a7@nxp.com
Changes in v2:
- totally rewrite, see above section
- Link to v1: https://lore.kernel.org/r/20250701-95_cam-v1-0-c5172bab387b@nxp.com
---
Eugen Hristev (1):
dt-bindings: media: add DW MIPI CSI-2 Host support
Frank Li (30):
media: v4l2-common: Add helper function v4l_get_required_align_by_bpp()
media: v4l2-common: Add helper function media_bus_fmt_to_csi2_(bpp|dt)()
media: staging: media: imx6-mipi-csi2: replace space with tab for alignment
media: staging: media: imx6-mipi-csi2: use devm_add_action_or_reset() to simplify code
media: staging: media: imx6-mipi-csi2: use devm_clk_bulk_get_all() to fetch clocks
media: staging: media: imx6-mipi-csi2: use devm_mutex_init() to simplify code
media: staging: media: imx6-mipi-csi2: use guard() to simplify code
media: staging: media: imx6-mipi-csi2: use register structure to match hardware
media: staging: media: imx6-mipi-csi2: use devm_platform_ioremap_resource() simplify code
media: staging: media: imx6-mipi-csi2: move probe part to imx6-csi2.c
media: staging: media: imx6-mipi-csi2: move sd imx6's specific initialization into imx6-sci2.c
media: staging: media: imx6-mipi-csi2: move csi2ipu_gasket_init() to imx6-csi2.c
media: staging: media: imx6-mipi-csi2: move number pad macro define into imx6-csi2.c
media: staging: media: imx6-mipi-csi2: move dphy init part to imx6-csi2.c
media: staging: media: imx6-mipi-csi2: use runtime_pm frame to control clks
media: synopsys: move imx6-mipi-csi2.c to synopsys/mipi-csi2.c
media: synopsys: csi2: Remove deprecated s_stream and use v4l2_subdev_pad_ops
media: synopsys: csi2: Add phy interface support
media: synopsys: csi2: Add basic v150* version register
media: synopsys: csi2: Add irq support to record error count
media: synopsys: csi2: Handle alignment requirement for width
media: synopsys: csi2: Add register prefix to register field definitions
media: synopsys: csi2: Add need_dphy_reset in config
media: synopsys: csi2: Add default simple dw_csi2_subdev_init_state
media: synopsys: csi2: Add v150 lane stop state register bit define
media: synopsys: csi2: use standard v4l2_subdev_get_fmt() function
media: synopsys: csi2: Add customize get_frame_desc() callback
media: synopsys: csi2: Add Image Pixel Interface (IPI) support for v150
media: synopsys: csi2: Remove source pad connected check at dw_csi2_enable_streams()
media: synopsys: csi2: Add simple synopsys platform driver
.../bindings/media/snps,dw-mipi-csi2-v150.yaml | 151 +++
MAINTAINERS | 1 +
drivers/media/platform/synopsys/Kconfig | 20 +
drivers/media/platform/synopsys/Makefile | 3 +
drivers/media/platform/synopsys/mipi-csi2-simple.c | 75 ++
drivers/media/platform/synopsys/mipi-csi2.c | 1260 ++++++++++++++++++++
drivers/media/v4l2-core/v4l2-common.c | 149 +++
drivers/staging/media/imx/Kconfig | 1 +
drivers/staging/media/imx/Makefile | 2 +-
drivers/staging/media/imx/imx6-csi2.c | 181 +++
drivers/staging/media/imx/imx6-mipi-csi2.c | 846 -------------
include/media/dw-mipi-csi2.h | 120 ++
include/media/mipi-csi2.h | 30 +
include/media/v4l2-common.h | 30 +
14 files changed, 2022 insertions(+), 847 deletions(-)
---
base-commit: ad0a162e543964443feec3a6a9395a64fe6c35c9
change-id: 20250606-95_cam-b74c094ad1fb
Best regards,
--
Frank Li <Frank.Li@....com>
Powered by blists - more mailing lists