Re: [PATCH v3 00/31] media: add imx93 mipi/controller csi support
From: Frank Li <Frank.li@nxp.com>
Date: 2025-09-25 16:09:06
Also in:
imx, linux-devicetree, linux-media, linux-phy, linux-staging, lkml
On Thu, Sep 11, 2025 at 11:49:25AM -0400, Frank Li wrote:
On Thu, Aug 21, 2025 at 04:15:35PM -0400, Frank Li wrote:quoted
Totally rewrite CSI part driver compared to V1.Laurent Pinchart: can you help review these patches? especial first two patches 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)() After that, I can start do more code clean up work. all of "media: staging: media: imx6-mipi-csi2 *" are trivial cleanup patches.
Laurent Pinchart and Rui Miguel Silva Do you have chance check these? especially first two patches, 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)() After that, I can start do more code clean up work. best regards Frank Li
Frankquoted
This only includes CSI related patches. DTS part: see https://lore.kernel.org/imx/20250701-95_cam-v1-6-c5172bab387b@nxp.com/ (local) PHY part: see https://lore.kernel.org/imx/20250701-95_cam-v1-4-c5172bab387b@nxp.com/ (local) AP1302 part: see https://lore.kernel.org/imx/20250701-95_cam-v1-7-c5172bab387b@nxp.com/ (local) upstream: https://lore.kernel.org/imx/20250623-ap1302-v3-0-c9ca5b791494@nxp.com/ (local) 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@nxp.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 (local) Changes in v2: - totally rewrite, see above section - Link to v1: https://lore.kernel.org/r/20250701-95_cam-v1-0-c5172bab387b@nxp.com (local) --- 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 [off-list ref]