linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Frank Li <Frank.Li@nxp.com>
To: Rui Miguel Silva <rmfrfs@gmail.com>,
	 Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	 Martin Kepplinger <martink@posteo.de>,
	Purism Kernel Team <kernel@puri.sm>,
	 Mauro Carvalho Chehab <mchehab@kernel.org>,
	Rob Herring <robh@kernel.org>,
	 Krzysztof Kozlowski <krzk+dt@kernel.org>,
	 Conor Dooley <conor+dt@kernel.org>,
	 Eugen Hristev <eugen.hristev@linaro.org>,
	Shawn Guo <shawnguo@kernel.org>,
	 Sascha Hauer <s.hauer@pengutronix.de>,
	 Pengutronix Kernel Team <kernel@pengutronix.de>,
	 Fabio Estevam <festevam@gmail.com>, Peng Fan <peng.fan@nxp.com>,
	 Alice Yuan <alice.yuan@nxp.com>, Vinod Koul <vkoul@kernel.org>,
	 Kishon Vijay Abraham I <kishon@kernel.org>,
	 Philipp Zabel <p.zabel@pengutronix.de>,
	 Steve Longerbeam <slongerbeam@gmail.com>,
	 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	 linux-kernel@vger.kernel.org, imx@lists.linux.dev,
	 linux-arm-kernel@lists.infradead.org,
	linux-phy@lists.infradead.org,  linux-staging@lists.linux.dev,
	Frank Li <Frank.Li@nxp.com>,
	 Luis Oliveira <lolivei@synopsys.com>
Subject: [PATCH v3 00/31] media: add imx93 mipi/controller csi support
Date: Thu, 21 Aug 2025 16:15:35 -0400	[thread overview]
Message-ID: <20250821-95_cam-v3-0-c9286fbb34b9@nxp.com> (raw)

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@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

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@nxp.com>



             reply	other threads:[~2025-08-22  5:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-21 20:15 Frank Li [this message]
2025-08-21 20:15 ` [PATCH v3 01/31] dt-bindings: media: add DW MIPI CSI-2 Host support Frank Li
2025-08-22 20:15   ` Rob Herring (Arm)
2025-08-21 20:15 ` [PATCH v3 02/31] media: v4l2-common: Add helper function v4l_get_required_align_by_bpp() Frank Li
2025-08-21 20:15 ` [PATCH v3 03/31] media: v4l2-common: Add helper function media_bus_fmt_to_csi2_(bpp|dt)() Frank Li
2025-08-21 20:15 ` [PATCH v3 04/31] media: staging: media: imx6-mipi-csi2: replace space with tab for alignment Frank Li
2025-08-21 20:15 ` [PATCH v3 05/31] media: staging: media: imx6-mipi-csi2: use devm_add_action_or_reset() to simplify code Frank Li
2025-08-21 20:15 ` [PATCH v3 06/31] media: staging: media: imx6-mipi-csi2: use devm_clk_bulk_get_all() to fetch clocks Frank Li
2025-08-21 20:15 ` [PATCH v3 07/31] media: staging: media: imx6-mipi-csi2: use devm_mutex_init() to simplify code Frank Li
2025-08-21 20:15 ` [PATCH v3 08/31] media: staging: media: imx6-mipi-csi2: use guard() " Frank Li
2025-08-21 20:15 ` [PATCH v3 09/31] media: staging: media: imx6-mipi-csi2: use register structure to match hardware Frank Li
2025-08-21 20:15 ` [PATCH v3 10/31] media: staging: media: imx6-mipi-csi2: use devm_platform_ioremap_resource() simplify code Frank Li
2025-08-21 20:15 ` [PATCH v3 11/31] media: staging: media: imx6-mipi-csi2: move probe part to imx6-csi2.c Frank Li
2025-08-21 20:15 ` [PATCH v3 12/31] media: staging: media: imx6-mipi-csi2: move sd imx6's specific initialization into imx6-sci2.c Frank Li
2025-08-21 20:15 ` [PATCH v3 13/31] media: staging: media: imx6-mipi-csi2: move csi2ipu_gasket_init() to imx6-csi2.c Frank Li
2025-08-21 20:15 ` [PATCH v3 14/31] media: staging: media: imx6-mipi-csi2: move number pad macro define into imx6-csi2.c Frank Li
2025-08-21 20:15 ` [PATCH v3 15/31] media: staging: media: imx6-mipi-csi2: move dphy init part to imx6-csi2.c Frank Li
2025-08-21 20:15 ` [PATCH v3 16/31] media: staging: media: imx6-mipi-csi2: use runtime_pm frame to control clks Frank Li
2025-08-21 20:15 ` [PATCH v3 17/31] media: synopsys: move imx6-mipi-csi2.c to synopsys/mipi-csi2.c Frank Li
2025-08-21 20:15 ` [PATCH v3 18/31] media: synopsys: csi2: Remove deprecated s_stream and use v4l2_subdev_pad_ops Frank Li
2025-08-21 20:15 ` [PATCH v3 19/31] media: synopsys: csi2: Add phy interface support Frank Li
2025-08-21 20:15 ` [PATCH v3 20/31] media: synopsys: csi2: Add basic v150* version register Frank Li
2025-08-21 20:15 ` [PATCH v3 21/31] media: synopsys: csi2: Add irq support to record error count Frank Li
2025-08-21 20:15 ` [PATCH v3 22/31] media: synopsys: csi2: Handle alignment requirement for width Frank Li
2025-08-21 20:15 ` [PATCH v3 23/31] media: synopsys: csi2: Add register prefix to register field definitions Frank Li
2025-08-21 20:15 ` [PATCH v3 24/31] media: synopsys: csi2: Add need_dphy_reset in config Frank Li
2025-08-21 20:16 ` [PATCH v3 25/31] media: synopsys: csi2: Add default simple dw_csi2_subdev_init_state Frank Li
2025-08-21 20:16 ` [PATCH v3 26/31] media: synopsys: csi2: Add v150 lane stop state register bit define Frank Li
2025-08-21 20:16 ` [PATCH v3 27/31] media: synopsys: csi2: use standard v4l2_subdev_get_fmt() function Frank Li
2025-08-21 20:16 ` [PATCH v3 28/31] media: synopsys: csi2: Add customize get_frame_desc() callback Frank Li
2025-08-21 20:16 ` [PATCH v3 29/31] media: synopsys: csi2: Add Image Pixel Interface (IPI) support for v150 Frank Li
2025-08-21 20:16 ` [PATCH v3 30/31] media: synopsys: csi2: Remove source pad connected check at dw_csi2_enable_streams() Frank Li
2025-08-21 20:16 ` [PATCH v3 31/31] media: synopsys: csi2: Add simple synopsys platform driver Frank Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250821-95_cam-v3-0-c9286fbb34b9@nxp.com \
    --to=frank.li@nxp.com \
    --cc=alice.yuan@nxp.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=eugen.hristev@linaro.org \
    --cc=festevam@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=imx@lists.linux.dev \
    --cc=kernel@pengutronix.de \
    --cc=kernel@puri.sm \
    --cc=kishon@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-staging@lists.linux.dev \
    --cc=lolivei@synopsys.com \
    --cc=martink@posteo.de \
    --cc=mchehab@kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=peng.fan@nxp.com \
    --cc=rmfrfs@gmail.com \
    --cc=robh@kernel.org \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=slongerbeam@gmail.com \
    --cc=vkoul@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).