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

From: Daniel Baluta
Date: Thu May 25 2023 - 08:28:58 EST


From: Paul Olaru <paul.olaru@xxxxxxx>

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@xxxxxxx>
Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxx>
---
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(+)

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 = {
--
2.25.1