]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: synopsys: Add support for i.MX95
authorGuoniu Zhou <guoniu.zhou@oss.nxp.com>
Tue, 19 May 2026 02:07:43 +0000 (10:07 +0800)
committerSakari Ailus <sakari.ailus@linux.intel.com>
Wed, 20 May 2026 11:28:37 +0000 (14:28 +0300)
Add support for the i.MX95 MIPI CSI-2 receiver. The i.MX95 variant is
nearly identical to i.MX93, with the main difference being the use of
IDI (Image Data Interface) instead of IPI (Image Pixel Interface).
However, the IDI interface is transparent to software, requiring only
a different register map definition while sharing the same PHY control
functions with i.MX93.

Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Guoniu Zhou <guoniu.zhou@oss.nxp.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
drivers/media/platform/synopsys/dw-mipi-csi2rx.c

index 8a34aec550adec590e6b1f82aeb6afff97fed156..41e48365167e5fe7cd2e9e6df38ba388631d97db 100644 (file)
@@ -154,6 +154,17 @@ static const u32 imx93_regs[DW_MIPI_CSI2RX_MAX] = {
        [DW_MIPI_CSI2RX_IPI_SOFTRSTN] = DW_REG(0xa0),
 };
 
+static const u32 imx95_regs[DW_MIPI_CSI2RX_MAX] = {
+       [DW_MIPI_CSI2RX_N_LANES] = DW_REG(0x4),
+       [DW_MIPI_CSI2RX_RESETN] = DW_REG(0x8),
+       [DW_MIPI_CSI2RX_PHY_SHUTDOWNZ] = DW_REG(0x40),
+       [DW_MIPI_CSI2RX_DPHY_RSTZ] = DW_REG(0x44),
+       [DW_MIPI_CSI2RX_PHY_STATE] = DW_REG(0x48),
+       [DW_MIPI_CSI2RX_PHY_STOPSTATE] = DW_REG(0x4c),
+       [DW_MIPI_CSI2RX_PHY_TST_CTRL0] = DW_REG(0x50),
+       [DW_MIPI_CSI2RX_PHY_TST_CTRL1] = DW_REG(0x54),
+};
+
 static const struct v4l2_mbus_framefmt default_format = {
        .width = 3840,
        .height = 2160,
@@ -914,11 +925,22 @@ static const struct dw_mipi_csi2rx_drvdata imx93_drvdata = {
        .wait_for_phy_stopstate = imx93_csi2rx_wait_for_phy_stopstate,
 };
 
+static const struct dw_mipi_csi2rx_drvdata imx95_drvdata = {
+       .regs = imx95_regs,
+       .dphy_assert_reset = imx93_csi2rx_dphy_assert_reset,
+       .dphy_deassert_reset = imx93_csi2rx_dphy_deassert_reset,
+       .wait_for_phy_stopstate = imx93_csi2rx_wait_for_phy_stopstate,
+};
+
 static const struct of_device_id dw_mipi_csi2rx_of_match[] = {
        {
                .compatible = "fsl,imx93-mipi-csi2",
                .data = &imx93_drvdata,
        },
+       {
+               .compatible = "fsl,imx95-mipi-csi2",
+               .data = &imx95_drvdata,
+       },
        {
                .compatible = "rockchip,rk3568-mipi-csi2",
                .data = &rk3568_drvdata,