From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: guoniu.zhou@oss.nxp.com
Cc: linux-media@vger.kernel.org, linux-imx@nxp.com,
devicetree@vger.kernel.org, mchehab@kernel.org,
robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org,
conor+dt@kernel.org, xavier.roumegue@oss.nxp.com,
kernel@pengutronix.de, jacopo.mondi@ideasonboard.com,
sakari.ailus@linux.intel.com
Subject: Re: [PATCH v5 3/3] media: nxp: imx8-isi: add ISI support for i.MX93
Date: Fri, 28 Jul 2023 00:48:31 +0300 [thread overview]
Message-ID: <20230727214831.GA28824@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20230629013621.2388121-4-guoniu.zhou@oss.nxp.com>
Hi Guoniu,
Thank you for the patch.
On Thu, Jun 29, 2023 at 09:36:21AM +0800, guoniu.zhou@oss.nxp.com wrote:
> From: "Guoniu.zhou" <guoniu.zhou@nxp.com>
>
> i.MX93 use a different gasket which has different register definition
s/use/uses/
s/definition/definitions/
> compared with i.MX8. Hence implement the gasket callbacks in order to
> add ISI support for i.MX93.
>
> Signed-off-by: Guoniu.zhou <guoniu.zhou@nxp.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> .../platform/nxp/imx8-isi/imx8-isi-core.c | 15 ++++++++++
> .../platform/nxp/imx8-isi/imx8-isi-core.h | 2 ++
> .../platform/nxp/imx8-isi/imx8-isi-gasket.c | 30 +++++++++++++++++++
> 3 files changed, 47 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 5165f8960c2c..27bd18b7ee65 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> @@ -307,6 +307,20 @@ static const struct mxc_isi_plat_data mxc_imx8mp_data = {
> .has_36bit_dma = true,
> };
>
> +static const struct mxc_isi_plat_data mxc_imx93_data = {
> + .model = MXC_ISI_IMX93,
> + .num_ports = 1,
> + .num_channels = 1,
> + .reg_offset = 0,
> + .ier_reg = &mxc_imx8_isi_ier_v2,
> + .set_thd = &mxc_imx8_isi_thd_v1,
> + .clks = mxc_imx8mn_clks,
> + .num_clks = ARRAY_SIZE(mxc_imx8mn_clks),
> + .buf_active_reverse = true,
> + .gasket_ops = &mxc_imx93_gasket_ops,
> + .has_36bit_dma = false,
> +};
> +
> /* -----------------------------------------------------------------------------
> * Power management
> */
> @@ -518,6 +532,7 @@ static int 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,imx93-isi", .data = &mxc_imx93_data },
> { /* 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 78ca047d93d1..2810ebe9b5f7 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_IMX93,
> };
>
> struct mxc_isi_plat_data {
> @@ -295,6 +296,7 @@ struct mxc_isi_dev {
> };
>
> extern const struct mxc_gasket_ops mxc_imx8_gasket_ops;
> +extern const struct mxc_gasket_ops mxc_imx93_gasket_ops;
>
> int mxc_isi_crossbar_init(struct mxc_isi_dev *isi);
> void mxc_isi_crossbar_cleanup(struct mxc_isi_crossbar *xbar);
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-gasket.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-gasket.c
> index 1d632dc60699..50ac1d3a2b6f 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-gasket.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-gasket.c
> @@ -53,3 +53,33 @@ const struct mxc_gasket_ops mxc_imx8_gasket_ops = {
> .enable = mxc_imx8_gasket_enable,
> .disable = mxc_imx8_gasket_disable,
> };
> +
> +/* -----------------------------------------------------------------------------
> + * i.MX93 gasket
> + **/
Extra star here too.
> +
> +#define DISP_MIX_CAMERA_MUX 0x30
> +#define DISP_MIX_CAMERA_MUX_DATA_TYPE(x) (((x) & 0x3f) << 3)
> +#define DISP_MIX_CAMERA_MUX_GASKET_ENABLE BIT(16)
Let's add a blank line here.
With those small issues fixed,
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
I'll make the changes locally and include the series in my next pull
request.
> +static void mxc_imx93_gasket_enable(struct mxc_isi_dev *isi,
> + const struct v4l2_mbus_frame_desc *fd,
> + const struct v4l2_mbus_framefmt *fmt,
> + const unsigned int port)
> +{
> + u32 val;
> +
> + val = DISP_MIX_CAMERA_MUX_DATA_TYPE(fd->entry[0].bus.csi2.dt);
> + val |= DISP_MIX_CAMERA_MUX_GASKET_ENABLE;
> + regmap_write(isi->gasket, DISP_MIX_CAMERA_MUX, val);
> +}
> +
> +static void mxc_imx93_gasket_disable(struct mxc_isi_dev *isi,
> + unsigned int port)
> +{
> + regmap_write(isi->gasket, DISP_MIX_CAMERA_MUX, 0);
> +}
> +
> +const struct mxc_gasket_ops mxc_imx93_gasket_ops = {
> + .enable = mxc_imx93_gasket_enable,
> + .disable = mxc_imx93_gasket_disable,
> +};
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2023-07-27 21:48 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-29 1:36 [PATCH v5 0/3] add ISI support for iMX93 guoniu.zhou
2023-06-29 1:36 ` [PATCH v5 1/3] media: dt-bindings: nxp,imx8-isi: add i.MX93 ISI compatible string guoniu.zhou
2023-06-29 1:36 ` [PATCH v5 2/3] media: nxp: imx8-isi: move i.MX8 gasket configuration to an ops structure guoniu.zhou
2023-07-27 21:41 ` Laurent Pinchart
2023-07-28 1:23 ` G.N. Zhou (OSS)
2023-06-29 1:36 ` [PATCH v5 3/3] media: nxp: imx8-isi: add ISI support for i.MX93 guoniu.zhou
2023-06-29 6:43 ` Alexander Stein
2023-06-29 7:07 ` G.N. Zhou (OSS)
2023-06-29 7:59 ` Alexander Stein
2023-06-29 8:23 ` G.N. Zhou (OSS)
2023-07-27 21:48 ` Laurent Pinchart [this message]
2023-07-28 1:23 ` G.N. Zhou (OSS)
2023-07-27 1:22 ` [PATCH v5 0/3] add ISI support for iMX93 G.N. Zhou
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230727214831.GA28824@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=guoniu.zhou@oss.nxp.com \
--cc=jacopo.mondi@ideasonboard.com \
--cc=kernel@pengutronix.de \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-imx@nxp.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=xavier.roumegue@oss.nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.