diff mbox series

[1/2] media: nxp: imx8-isi: Add i.MX8ULP support

Message ID 20241011101711.704226-2-guoniu.zhou@oss.nxp.com (mailing list archive)
State New
Headers show
Series media: nxp: imx8-isi: Add i.MX8ULP support | expand

Commit Message

G.N. Zhou (OSS) Oct. 11, 2024, 10:17 a.m. UTC
From: "Guoniu.zhou" <guoniu.zhou@nxp.com>

Add ISI support for i.MX8ULP.

Signed-off-by: Guoniu.zhou <guoniu.zhou@nxp.com>
---
 .../platform/nxp/imx8-isi/imx8-isi-core.c      | 18 ++++++++++++++++++
 .../platform/nxp/imx8-isi/imx8-isi-core.h      |  1 +
 2 files changed, 19 insertions(+)

Comments

Laurent Pinchart Oct. 11, 2024, 1:30 p.m. UTC | #1
Hi Guoniu,

Thank you for the patch.

On Fri, Oct 11, 2024 at 06:17:12PM +0800, guoniu.zhou@oss.nxp.com wrote:
> From: "Guoniu.zhou" <guoniu.zhou@nxp.com>
> 
> Add ISI support for i.MX8ULP.
> 
> Signed-off-by: Guoniu.zhou <guoniu.zhou@nxp.com>
> ---
>  .../platform/nxp/imx8-isi/imx8-isi-core.c      | 18 ++++++++++++++++++
>  .../platform/nxp/imx8-isi/imx8-isi-core.h      |  1 +
>  2 files changed, 19 insertions(+)
> 
> 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 c2013995049c..f5d076d7f50b 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> @@ -279,6 +279,10 @@ static const struct clk_bulk_data mxc_imx8mn_clks[] = {
>  	{ .id = "apb" },
>  };
>  
> +static const struct clk_bulk_data mxc_imx8ulp_clks[] = {
> +	{ .id = "per" },

This doesn't match the DT bindings. Which one is wrong ?

> +};
> +
>  static const struct mxc_isi_plat_data mxc_imx8mn_data = {
>  	.model			= MXC_ISI_IMX8MN,
>  	.num_ports		= 1,
> @@ -307,6 +311,19 @@ static const struct mxc_isi_plat_data mxc_imx8mp_data = {
>  	.has_36bit_dma		= true,
>  };
>  
> +static const struct mxc_isi_plat_data mxc_imx8ulp_data = {
> +	.model			= MXC_ISI_IMX8ULP,
> +	.num_ports		= 1,
> +	.num_channels		= 1,
> +	.reg_offset		= 0x0,
> +	.ier_reg		= &mxc_imx8_isi_ier_v2,
> +	.set_thd		= &mxc_imx8_isi_thd_v1,
> +	.clks			= mxc_imx8ulp_clks,
> +	.num_clks		= ARRAY_SIZE(mxc_imx8ulp_clks),
> +	.buf_active_reverse	= true,
> +	.has_36bit_dma		= false,
> +};
> +
>  static const struct mxc_isi_plat_data mxc_imx93_data = {
>  	.model			= MXC_ISI_IMX93,
>  	.num_ports		= 1,
> @@ -528,6 +545,7 @@ static void mxc_isi_remove(struct platform_device *pdev)
>  static const struct of_device_id mxc_isi_of_match[] = {
>  	{ .compatible = "fsl,imx8mn-isi", .data = &mxc_imx8mn_data },
>  	{ .compatible = "fsl,imx8mp-isi", .data = &mxc_imx8mp_data },
> +	{ .compatible = "fsl,imx8ulp-isi", .data = &mxc_imx8ulp_data },
>  	{ .compatible = "fsl,imx93-isi", .data = &mxc_imx93_data },
>  	{ /* sentinel */ },
>  };
> 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 2810ebe9b5f7..9c7fe9e5f941 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> @@ -158,6 +158,7 @@ struct mxc_gasket_ops {
>  enum model {
>  	MXC_ISI_IMX8MN,
>  	MXC_ISI_IMX8MP,
> +	MXC_ISI_IMX8ULP,
>  	MXC_ISI_IMX93,
>  };
>
G.N. Zhou (OSS) Oct. 12, 2024, 2:14 a.m. UTC | #2
Hi Laurent,

Thanks for your replying.

> -----Original Message-----
> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Sent: Friday, October 11, 2024 9:31 PM
> To: G.N. Zhou (OSS) <guoniu.zhou@oss.nxp.com>
> Cc: linux-media@vger.kernel.org; jacopo@jmondi.org; mchehab@kernel.org;
> robh@kernel.org; krzk+dt@kernel.org; conor+dt@kernel.org;
> shawnguo@kernel.org; s.hauer@pengutronix.de; kernel@pengutronix.d;
> festevam@gmail.com; devicetree@vger.kernel.org; imx@lists.linux.dev; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH 1/2] media: nxp: imx8-isi: Add i.MX8ULP support
> 
> Hi Guoniu,
> 
> Thank you for the patch.
> 
> On Fri, Oct 11, 2024 at 06:17:12PM +0800, guoniu.zhou@oss.nxp.com wrote:
> > From: "Guoniu.zhou" <guoniu.zhou@nxp.com>
> >
> > Add ISI support for i.MX8ULP.
> >
> > Signed-off-by: Guoniu.zhou <guoniu.zhou@nxp.com>
> > ---
> >  .../platform/nxp/imx8-isi/imx8-isi-core.c      | 18 ++++++++++++++++++
> >  .../platform/nxp/imx8-isi/imx8-isi-core.h      |  1 +
> >  2 files changed, 19 insertions(+)
> >
> > 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 c2013995049c..f5d076d7f50b 100644
> > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > @@ -279,6 +279,10 @@ static const struct clk_bulk_data
> mxc_imx8mn_clks[] = {
> >  	{ .id = "apb" },
> >  };
> >
> > +static const struct clk_bulk_data mxc_imx8ulp_clks[] = {
> > +	{ .id = "per" },
> 
> This doesn't match the DT bindings. Which one is wrong ?

I'm wrong. It should be "axi" since the clocks used here is a
gate clock controller by PCC(Peripheral Clock Controller) and
derived from "LPAV_AXI_CLK". I will update a new version to
correct this.

> 
> > +};
> > +
> >  static const struct mxc_isi_plat_data mxc_imx8mn_data = {
> >  	.model			= MXC_ISI_IMX8MN,
> >  	.num_ports		= 1,
> > @@ -307,6 +311,19 @@ static const struct mxc_isi_plat_data
> mxc_imx8mp_data = {
> >  	.has_36bit_dma		= true,
> >  };
> >
> > +static const struct mxc_isi_plat_data mxc_imx8ulp_data = {
> > +	.model			= MXC_ISI_IMX8ULP,
> > +	.num_ports		= 1,
> > +	.num_channels		= 1,
> > +	.reg_offset		= 0x0,
> > +	.ier_reg		= &mxc_imx8_isi_ier_v2,
> > +	.set_thd		= &mxc_imx8_isi_thd_v1,
> > +	.clks			= mxc_imx8ulp_clks,
> > +	.num_clks		= ARRAY_SIZE(mxc_imx8ulp_clks),
> > +	.buf_active_reverse	= true,
> > +	.has_36bit_dma		= false,
> > +};
> > +
> >  static const struct mxc_isi_plat_data mxc_imx93_data = {
> >  	.model			= MXC_ISI_IMX93,
> >  	.num_ports		= 1,
> > @@ -528,6 +545,7 @@ static void mxc_isi_remove(struct platform_device
> > *pdev)  static const struct of_device_id mxc_isi_of_match[] = {
> >  	{ .compatible = "fsl,imx8mn-isi", .data = &mxc_imx8mn_data },
> >  	{ .compatible = "fsl,imx8mp-isi", .data = &mxc_imx8mp_data },
> > +	{ .compatible = "fsl,imx8ulp-isi", .data = &mxc_imx8ulp_data },
> >  	{ .compatible = "fsl,imx93-isi", .data = &mxc_imx93_data },
> >  	{ /* sentinel */ },
> >  };
> > 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 2810ebe9b5f7..9c7fe9e5f941 100644
> > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> > @@ -158,6 +158,7 @@ struct mxc_gasket_ops {  enum model {
> >  	MXC_ISI_IMX8MN,
> >  	MXC_ISI_IMX8MP,
> > +	MXC_ISI_IMX8ULP,
> >  	MXC_ISI_IMX93,
> >  };
> >
> 
> --
> Regards,
> 
> Laurent Pinchart
diff mbox series

Patch

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 c2013995049c..f5d076d7f50b 100644
--- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
+++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
@@ -279,6 +279,10 @@  static const struct clk_bulk_data mxc_imx8mn_clks[] = {
 	{ .id = "apb" },
 };
 
+static const struct clk_bulk_data mxc_imx8ulp_clks[] = {
+	{ .id = "per" },
+};
+
 static const struct mxc_isi_plat_data mxc_imx8mn_data = {
 	.model			= MXC_ISI_IMX8MN,
 	.num_ports		= 1,
@@ -307,6 +311,19 @@  static const struct mxc_isi_plat_data mxc_imx8mp_data = {
 	.has_36bit_dma		= true,
 };
 
+static const struct mxc_isi_plat_data mxc_imx8ulp_data = {
+	.model			= MXC_ISI_IMX8ULP,
+	.num_ports		= 1,
+	.num_channels		= 1,
+	.reg_offset		= 0x0,
+	.ier_reg		= &mxc_imx8_isi_ier_v2,
+	.set_thd		= &mxc_imx8_isi_thd_v1,
+	.clks			= mxc_imx8ulp_clks,
+	.num_clks		= ARRAY_SIZE(mxc_imx8ulp_clks),
+	.buf_active_reverse	= true,
+	.has_36bit_dma		= false,
+};
+
 static const struct mxc_isi_plat_data mxc_imx93_data = {
 	.model			= MXC_ISI_IMX93,
 	.num_ports		= 1,
@@ -528,6 +545,7 @@  static void mxc_isi_remove(struct platform_device *pdev)
 static const struct of_device_id mxc_isi_of_match[] = {
 	{ .compatible = "fsl,imx8mn-isi", .data = &mxc_imx8mn_data },
 	{ .compatible = "fsl,imx8mp-isi", .data = &mxc_imx8mp_data },
+	{ .compatible = "fsl,imx8ulp-isi", .data = &mxc_imx8ulp_data },
 	{ .compatible = "fsl,imx93-isi", .data = &mxc_imx93_data },
 	{ /* sentinel */ },
 };
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 2810ebe9b5f7..9c7fe9e5f941 100644
--- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
+++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
@@ -158,6 +158,7 @@  struct mxc_gasket_ops {
 enum model {
 	MXC_ISI_IMX8MN,
 	MXC_ISI_IMX8MP,
+	MXC_ISI_IMX8ULP,
 	MXC_ISI_IMX93,
 };