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 |
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, > }; >
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 --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, };