On Mon, Apr 12, 2021 at 7:31 PM Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote: > > Hello, > > This patch series adds support for the CSIS found in the NXP i.MX8MM SoC > to the imx7-mipi-csis driver. > > The CSIS is an IP core from Samsung, integrated in different NXP SoCs. > The driver currently supports v3.3 of the CSIS, found in SoCs from the > i.MX6 and i.MX7 families. This series extends the driver to support > v3.6.3 of the IP, found in i.MX8MM and other members of the i.MX8 > family. > > The first 21 patches are miscellaneous cleanups and improvements. Please > see individual patches for details. > > Patch 22/23 extends the imx7-mipi-csis DT bindings with i.MX8MM support. > Support for other members of the i.MX8 family will come later, and for > SoCs including an ISI IP core (such as the i.MX8MP) this will require > more work to handle additional glue logic. > > Patch 23/23 finaly extends the imx7-mipi-csis driver accordingly. > > The changes in the integration of the CSIS between i.MX7 and i.MX8, as > described in the DT bindings, have been found through reading of > reference manuals and BSP source code, with different sources of > information contradicting each other. A confirmation from NXP would be > nice (in particular regarding the clocks). > > Laurent Pinchart (23): > media: imx: imx7_mipi_csis: Fix logging of only error event counters > media: imx: imx7_mipi_csis: Count the CSI-2 debug interrupts > media: imx: imx7_mipi_csis: Update ISP_CONFIG macros for quad pixel > mode > media: imx: imx7_mipi_csis: Move static data to top of > mipi_csis_dump_regs() > media: imx: imx7_mipi_csis: Minimize locking in get/set format > media: imx: imx7_mipi_csis: Don't set subdev data > media: imx: imx7-mipi-csis: Reorganize code in sections > media: imx: imx7_mipi_csis: Set the CLKSETTLE register field > media: imx: imx7_mipi_csis: Drop unused csis_hw_reset structure > media: imx: imx7_mipi_csis: Store CSI-2 data type in format structure > media: imx: imx7_mipi_csis: Drop csi_state phy field > media: imx: imx7_mipi_csis: Rename mipi_sd to sd > media: imx: imx7_mipi_csis: Rename csi_state flag field to state > media: imx: imx7_mipi_csis: Turn csi_state irq field into local > variable > media: imx: imx7_mipi_csis: Don't pass pdev to mipi_csis_parse_dt() > media: imx: imx7_mipi_csis: Pass csi_state to mipi_csis_subdev_init() > media: imx: imx7_mipi_csis: Drop csi_state pdev field > media: imx: imx7_mipi_csis: Make csi_state num_clocks field unsigned > media: imx: imx7_mipi_csis: Reorganize csi_state structure > media: imx: imx7_mipi_csis: Reorganize mipi_csis_probe() > media: imx: imx7_mipi_csis: Reject invalid data-lanes settings > dt-bindings: media: nxp,imx7-mipi-csi2: Add i.MX8MM support > media: imx: imx7_mipi_csis: Add i.MX8MM support > > .../bindings/media/nxp,imx7-mipi-csi2.yaml | 108 +- > drivers/staging/media/imx/imx7-mipi-csis.c | 943 ++++++++++-------- > 2 files changed, 622 insertions(+), 429 deletions(-) > > -- > Regards, > > Laurent Pinchart > Laurent, Thank you for your work on this! I have an IMX8MM board supporting CSI and a couple of devices to test with: - Sony IMX477 12.3MP sensor (do not see any mainline support but there are some hits on the net as this is a RPi camera) - Sony IMX219 8MP sensor (should be supported by drivers/media/i2c/imx219.c) - Auvidea B10x HDMI to CSI-2 bridge (Toshiba TC358743XBG HDMI to CSI-2 (MIPI)- 2D+C) (should be supported by drivers/media/i2c/tc358743.c) Can you summarize the state of IMX8MM CSI capture in mainline? I suppose the MIPI power domain is still an issue? Anything else that would keep me from testing the above devices? Best regards, Tim