Re: [PATCH 4/5] media: nxp: imx8-isi: Add i.MX952 ISI support
From: Frank Li
Date: Wed Aug 26 2026 - 12:14:21 EST
On Wed, Aug 26, 2026 at 12:55:45PM +0800, Guoniu Zhou wrote:
> The i.MX952 ISI is reused from the i.MX95 ISI with a minor silicon
> revision. It can process up to 8 image sources simultaneously and
> obtain image data from up to 4 pixel link sources.
>
> Signed-off-by: Guoniu Zhou <guoniu.zhou@xxxxxxxxxxx>
> ---
> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c | 14 ++++++++++++++
> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h | 1 +
> drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h | 2 +-
> 3 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> index c1c16dbc1539..5b19b581b38e 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> @@ -392,6 +392,19 @@ static const struct mxc_isi_plat_data mxc_imx95_data = {
> .has_36bit_dma = true,
> };
>
> +static const struct mxc_isi_plat_data mxc_imx952_data = {
> + .model = MXC_ISI_IMX952,
> + .num_ports = 4,
> + .num_channels = 8,
> + .num_vc = 8,
> + .reg_offset = 0x10000,
> + .ier_reg = &mxc_imx8_isi_ier_v2,
> + .set_thd = &mxc_imx8_isi_thd_v1,
> + .format_mask = GENMASK(30, 24),
> + .buf_active_reverse = true,
> + .has_36bit_dma = true,
> +};
> +
> /* -----------------------------------------------------------------------------
> * Power management
> */
> @@ -582,6 +595,7 @@ static const struct of_device_id mxc_isi_of_match[] = {
> { .compatible = "fsl,imx91-isi", .data = &mxc_imx91_data },
> { .compatible = "fsl,imx93-isi", .data = &mxc_imx93_data },
> { .compatible = "fsl,imx95-isi", .data = &mxc_imx95_data },
> + { .compatible = "fsl,imx952-isi", .data = &mxc_imx952_data },
It is the almost same as imx95 except model, I am not sure if model is
used in code.
why not fallback to fsl,imx95-isi.
compatible = "fsl,imx952-isi", "fsl,imx952-isi";
Frank
> { /* sentinel */ },
> };
> MODULE_DEVICE_TABLE(of, mxc_isi_of_match);
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> index 05c21c448b93..a4b638508522 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> @@ -164,6 +164,7 @@ enum model {
> MXC_ISI_IMX91,
> MXC_ISI_IMX93,
> MXC_ISI_IMX95,
> + MXC_ISI_IMX952,
> };
>
> struct mxc_isi_plat_data {
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h b/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h
> index 7c4e736f4651..35dec3a650ac 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h
> @@ -22,7 +22,7 @@
> #define CHNL_CTRL_SW_RST BIT(24)
> /*
> * CHNL_CTRL_BLANK_PXL: i.MX8{QM,QXP} only
> - * CHNL_CTRL_VC_ID_1, CHNL_CTRL_VC_ID_1_MASK: i.MX95 only
> + * CHNL_CTRL_VC_ID_1, CHNL_CTRL_VC_ID_1_MASK: i.MX{95,952} only
> */
> #define CHNL_CTRL_BLANK_PXL(n) FIELD_PREP(GENMASK(23, 16), (n))
> #define CHNL_CTRL_VC_ID_1(n) FIELD_PREP(BIT(16), (n))
>
> --
> 2.34.1
>
>