All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Baluta <daniel.baluta@gmail.com>
To: Lucas Stach <l.stach@pengutronix.de>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>,
	Timur Tabi <timur@kernel.org>, Xiubo Li <Xiubo.Lee@gmail.com>,
	Angus Ainslie <angus@akkea.ca>,
	Liam Girdwood <lgirdwood@gmail.com>,
	patchwork-lst@pengutronix.de,
	Nicolin Chen <nicoleotsuka@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	NXP Linux Team <linux-imx@nxp.com>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>
Subject: Re: [PATCH 3/3] ASoC: fsl_sai: add i.MX8M support
Date: Wed, 17 Jul 2019 17:16:25 +0300	[thread overview]
Message-ID: <CAEnQRZCCTwMJKQnvP2mSQPcKNwtoAaMdXmQt_H+CGro=zVLsNA@mail.gmail.com> (raw)
In-Reply-To: <20190717105635.18514-4-l.stach@pengutronix.de>

On Wed, Jul 17, 2019 at 1:59 PM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> The SAI block on the i.MX8M moved the register layout, as 2 version
> registers were added at the start of the register map. We deal with
> this by moving the start of the regmap, so both register layouts
> look the same to accesses going through the regmap.
>
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>

This is a little bit tricky. We need the verid register in order
to differentiate IPs which can support 1:1 ratio for bclk:mclk

I am working now for upstreaming all SAI patches that we have
in our internal tree.

> ---
>  .../devicetree/bindings/sound/fsl-sai.txt     |  2 +-
>  sound/soc/fsl/fsl_sai.c                       | 19 +++++++++++++++++++
>  sound/soc/fsl/fsl_sai.h                       |  1 +
>  3 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/sound/fsl-sai.txt b/Documentation/devicetree/bindings/sound/fsl-sai.txt
> index 2e726b983845..037871d2f505 100644
> --- a/Documentation/devicetree/bindings/sound/fsl-sai.txt
> +++ b/Documentation/devicetree/bindings/sound/fsl-sai.txt
> @@ -8,7 +8,7 @@ codec/DSP interfaces.
>  Required properties:
>
>    - compatible         : Compatible list, contains "fsl,vf610-sai",
> -                         "fsl,imx6sx-sai" or "fsl,imx6ul-sai"
> +                         "fsl,imx6sx-sai", "fsl,imx6ul-sai" or "fsl,imx8mq-sai"
>
>    - reg                        : Offset and length of the register set for the device.
>
> diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
> index b3cd055a61c7..a10201078e40 100644
> --- a/sound/soc/fsl/fsl_sai.c
> +++ b/sound/soc/fsl/fsl_sai.c
> @@ -808,6 +808,16 @@ static int fsl_sai_probe(struct platform_device *pdev)
>         if (IS_ERR(base))
>                 return PTR_ERR(base);
>
> +       /*
> +        * New versions of the SAI have 2 32bit version registers added at the
> +        * start of the register map. To avoid dealing with this shift all over
> +        * the driver, we move the start of the regmap to make both register
> +        * layouts look the same to the regmap. This means we can't read the
> +        * version registers through the regmap, but this is small price to pay.
> +        */
> +       if (sai->soc_data->has_version_registers)
> +               base += 8;
> +
>         sai->regmap = devm_regmap_init_mmio_clk(&pdev->dev,
>                         "bus", base, &fsl_sai_regmap_config);
>
> @@ -923,18 +933,27 @@ static int fsl_sai_remove(struct platform_device *pdev)
>
>  static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
>         .use_imx_pcm = false,
> +       .has_version_registers = false,
>         .fifo_depth = 32,
>  };
>
>  static const struct fsl_sai_soc_data fsl_sai_imx6sx_data = {
>         .use_imx_pcm = true,
> +       .has_version_registers = false,
>         .fifo_depth = 32,
>  };
>
> +static const struct fsl_sai_soc_data fsl_sai_imx8m_data = {
> +       .use_imx_pcm = true,
> +       .has_version_registers = true,
> +       .fifo_depth = 128,
> +};
> +
>  static const struct of_device_id fsl_sai_ids[] = {
>         { .compatible = "fsl,vf610-sai", .data = &fsl_sai_vf610_data },
>         { .compatible = "fsl,imx6sx-sai", .data = &fsl_sai_imx6sx_data },
>         { .compatible = "fsl,imx6ul-sai", .data = &fsl_sai_imx6sx_data },
> +       { .compatible = "fsl,imx8mq-sai", .data = &fsl_sai_imx8m_data },
>         { /* sentinel */ }
>  };
>  MODULE_DEVICE_TABLE(of, fsl_sai_ids);
> diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h
> index 7c1ef671da28..b6a9053ed400 100644
> --- a/sound/soc/fsl/fsl_sai.h
> +++ b/sound/soc/fsl/fsl_sai.h
> @@ -128,6 +128,7 @@
>
>  struct fsl_sai_soc_data {
>         bool use_imx_pcm;
> +       bool has_version_registers;
>         unsigned int fifo_depth;
>  };
>
> --
> 2.20.1
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply	other threads:[~2019-07-17 14:16 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-17 10:56 [PATCH 0/3] i.MX8M support for FSL SAI Lucas Stach
2019-07-17 10:56 ` [PATCH 1/3] ASoC: fsl_sai: add of_match data Lucas Stach
2019-07-17 13:42   ` Angus Ainslie
2019-07-17 14:17   ` Daniel Baluta
2019-07-22 12:22   ` Applied "ASoC: fsl_sai: add of_match data" to the asoc tree Mark Brown
2019-07-17 10:56 ` [PATCH 2/3] ASoC: fsl_sai: derive TX FIFO watermark from FIFO depth Lucas Stach
2019-07-17 13:43   ` Angus Ainslie
2019-07-22 12:22   ` Applied "ASoC: fsl_sai: derive TX FIFO watermark from FIFO depth" to the asoc tree Mark Brown
2019-07-17 10:56 ` [PATCH 3/3] ASoC: fsl_sai: add i.MX8M support Lucas Stach
2019-07-17 13:45   ` Angus Ainslie
2019-07-22 10:39     ` Daniel Baluta
2019-07-22 13:41       ` Angus Ainslie
2019-07-17 14:16   ` Daniel Baluta [this message]
2019-07-17 14:33     ` Lucas Stach
2019-07-17 15:06       ` Daniel Baluta
2019-07-17 15:15         ` Angus Ainslie
2019-07-18  8:35           ` Daniel Baluta
2019-07-18 19:11   ` Cezary Rojewski
2019-07-18 19:22     ` Daniel Baluta
2019-07-18 20:19       ` Cezary Rojewski

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='CAEnQRZCCTwMJKQnvP2mSQPcKNwtoAaMdXmQt_H+CGro=zVLsNA@mail.gmail.com' \
    --to=daniel.baluta@gmail.com \
    --cc=Xiubo.Lee@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=angus@akkea.ca \
    --cc=broonie@kernel.org \
    --cc=festevam@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=l.stach@pengutronix.de \
    --cc=lgirdwood@gmail.com \
    --cc=linux-imx@nxp.com \
    --cc=nicoleotsuka@gmail.com \
    --cc=patchwork-lst@pengutronix.de \
    --cc=timur@kernel.org \
    /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.