diff mbox series

[v2] ASoC: SOF: imx: Add OF machine descriptors for i.MX platforms

Message ID 20230525122837.649627-1-daniel.baluta@oss.nxp.com (mailing list archive)
State New, archived
Headers show
Series [v2] ASoC: SOF: imx: Add OF machine descriptors for i.MX platforms | expand

Commit Message

Daniel Baluta (OSS) May 25, 2023, 12:28 p.m. UTC
From: Paul Olaru <paul.olaru@nxp.com>

Covered platforms: i.MX8QXP, i.MX8QM, i.MX8MP, i.MX8ULP.

These descriptors are used to locate the machine driver and topology
filenames.

Note: because the compatible values for the boards do not change between
the cs42888 and the wm8960 cases, I have selected a common topology
filename, which is intended to be a symlink to either the wm8960 or the
cs42888 topology file. For uniformity I did the same for i.MX8ULP.

Signed-off-by: Paul Olaru <paul.olaru@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
Changes since v1:
 - rebased patch on Mark's tree.

 sound/soc/sof/imx/imx8.c    | 16 ++++++++++++++++
 sound/soc/sof/imx/imx8m.c   | 10 ++++++++++
 sound/soc/sof/imx/imx8ulp.c | 10 ++++++++++
 3 files changed, 36 insertions(+)

Comments

Mark Brown May 25, 2023, 5:07 p.m. UTC | #1
On Thu, May 25, 2023 at 03:28:37PM +0300, Daniel Baluta wrote:

> +static struct snd_sof_of_mach sof_imx8_machs[] = {
> +	{
> +		.compatible = "fsl,imx8qxp",
> +		.drv_name = "asoc-simple-card",
> +		.sof_tplg_filename = "sof-imx8.tplg",
> +	},
> +	{
> +		.compatible = "fsl,imx8qm",
> +		.drv_name = "asoc-simple-card",
> +		.sof_tplg_filename = "sof-imx8.tplg",
> +	},
> +	{}

It seems a bit sad to be adding simple-card rather than audio-graph-card
at this point - is there some great reason for this?
Daniel Baluta May 25, 2023, 6:35 p.m. UTC | #2
On Thu, May 25, 2023 at 8:07 PM Mark Brown <broonie@kernel.org> wrote:
>
> On Thu, May 25, 2023 at 03:28:37PM +0300, Daniel Baluta wrote:
>
> > +static struct snd_sof_of_mach sof_imx8_machs[] = {
> > +     {
> > +             .compatible = "fsl,imx8qxp",
> > +             .drv_name = "asoc-simple-card",
> > +             .sof_tplg_filename = "sof-imx8.tplg",
> > +     },
> > +     {
> > +             .compatible = "fsl,imx8qm",
> > +             .drv_name = "asoc-simple-card",
> > +             .sof_tplg_filename = "sof-imx8.tplg",
> > +     },
> > +     {}
>
> It seems a bit sad to be adding simple-card rather than audio-graph-card
> at this point - is there some great reason for this?

This is what we used so far and it works pretty well for us.

Is there a plan to deprecate simple-card? And switch to audio-graph-card?

We could have a look at this if this is the correct direction.
Mark Brown May 26, 2023, 3:32 p.m. UTC | #3
On Thu, May 25, 2023 at 09:35:40PM +0300, Daniel Baluta wrote:
> On Thu, May 25, 2023 at 8:07 PM Mark Brown <broonie@kernel.org> wrote:

> > > +     {
> > > +             .compatible = "fsl,imx8qm",
> > > +             .drv_name = "asoc-simple-card",
> > > +             .sof_tplg_filename = "sof-imx8.tplg",
> > > +     },

> > It seems a bit sad to be adding simple-card rather than audio-graph-card
> > at this point - is there some great reason for this?

> This is what we used so far and it works pretty well for us.

> Is there a plan to deprecate simple-card? And switch to audio-graph-card?

> We could have a look at this if this is the correct direction.

It's already deprecated, and audio-graph-card (really you want to use
the audio-graph-card2 binding) is much more featureful so will cover
more machines.  If you're doing something new then it's best to use
audio-graph-card for future proofing, simple-card is a bit too simple
and inflexible.
Daniel Baluta May 29, 2023, 7:25 a.m. UTC | #4
On Fri, May 26, 2023 at 6:32 PM Mark Brown <broonie@kernel.org> wrote:
>
> On Thu, May 25, 2023 at 09:35:40PM +0300, Daniel Baluta wrote:
> > On Thu, May 25, 2023 at 8:07 PM Mark Brown <broonie@kernel.org> wrote:
>
> > > > +     {
> > > > +             .compatible = "fsl,imx8qm",
> > > > +             .drv_name = "asoc-simple-card",
> > > > +             .sof_tplg_filename = "sof-imx8.tplg",
> > > > +     },
>
> > > It seems a bit sad to be adding simple-card rather than audio-graph-card
> > > at this point - is there some great reason for this?
>
> > This is what we used so far and it works pretty well for us.
>
> > Is there a plan to deprecate simple-card? And switch to audio-graph-card?
>
> > We could have a look at this if this is the correct direction.
>
> It's already deprecated, and audio-graph-card (really you want to use
> the audio-graph-card2 binding) is much more featureful so will cover
> more machines.  If you're doing something new then it's best to use
> audio-graph-card for future proofing, simple-card is a bit too simple
> and inflexible.

Ok! Thanks for clarifications! Will use audio-graph-card!
diff mbox series

Patch

diff --git a/sound/soc/sof/imx/imx8.c b/sound/soc/sof/imx/imx8.c
index 2844d9a8040a..3c9f0cfd8218 100644
--- a/sound/soc/sof/imx/imx8.c
+++ b/sound/soc/sof/imx/imx8.c
@@ -608,7 +608,22 @@  static struct snd_sof_dsp_ops sof_imx8x_ops = {
 			SNDRV_PCM_INFO_NO_PERIOD_WAKEUP
 };
 
+static struct snd_sof_of_mach sof_imx8_machs[] = {
+	{
+		.compatible = "fsl,imx8qxp",
+		.drv_name = "asoc-simple-card",
+		.sof_tplg_filename = "sof-imx8.tplg",
+	},
+	{
+		.compatible = "fsl,imx8qm",
+		.drv_name = "asoc-simple-card",
+		.sof_tplg_filename = "sof-imx8.tplg",
+	},
+	{}
+};
+
 static struct sof_dev_desc sof_of_imx8qxp_desc = {
+	.of_machines = sof_imx8_machs,
 	.ipc_supported_mask	= BIT(SOF_IPC),
 	.ipc_default		= SOF_IPC,
 	.default_fw_path = {
@@ -625,6 +640,7 @@  static struct sof_dev_desc sof_of_imx8qxp_desc = {
 };
 
 static struct sof_dev_desc sof_of_imx8qm_desc = {
+	.of_machines = sof_imx8_machs,
 	.ipc_supported_mask	= BIT(SOF_IPC),
 	.ipc_default		= SOF_IPC,
 	.default_fw_path = {
diff --git a/sound/soc/sof/imx/imx8m.c b/sound/soc/sof/imx/imx8m.c
index 1243f8a6141e..a4050f6ec263 100644
--- a/sound/soc/sof/imx/imx8m.c
+++ b/sound/soc/sof/imx/imx8m.c
@@ -470,7 +470,17 @@  static struct snd_sof_dsp_ops sof_imx8m_ops = {
 		SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
 };
 
+static struct snd_sof_of_mach sof_imx8m_machs[] = {
+	{
+		.compatible = "fsl,imx8mp",
+		.drv_name = "asoc-simple-card",
+		.sof_tplg_filename = "sof-imx8m.tplg",
+	},
+	{}
+};
+
 static struct sof_dev_desc sof_of_imx8mp_desc = {
+	.of_machines = sof_imx8m_machs,
 	.ipc_supported_mask	= BIT(SOF_IPC),
 	.ipc_default		= SOF_IPC,
 	.default_fw_path = {
diff --git a/sound/soc/sof/imx/imx8ulp.c b/sound/soc/sof/imx/imx8ulp.c
index 4a562c9856e9..82fcc672bb1c 100644
--- a/sound/soc/sof/imx/imx8ulp.c
+++ b/sound/soc/sof/imx/imx8ulp.c
@@ -477,7 +477,17 @@  static struct snd_sof_dsp_ops sof_imx8ulp_ops = {
 	.set_power_state	= imx8ulp_dsp_set_power_state,
 };
 
+static struct snd_sof_of_mach sof_imx8ulp_machs[] = {
+	{
+		.compatible = "fsl,imx8ulp",
+		.drv_name = "asoc-simple-card",
+		.sof_tplg_filename = "sof-imx8ulp.tplg",
+	},
+	{}
+};
+
 static struct sof_dev_desc sof_of_imx8ulp_desc = {
+	.of_machines = sof_imx8ulp_machs,
 	.ipc_supported_mask     = BIT(SOF_IPC),
 	.ipc_default            = SOF_IPC,
 	.default_fw_path = {