ASoC: SOF: imx: Add devicetree support to select topologies
authorDaniel Baluta <daniel.baluta@nxp.com>
Mon, 12 Feb 2024 12:52:58 +0000 (14:52 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 12 Feb 2024 13:42:22 +0000 (13:42 +0000)
We describe tplg_file_name and drv_name using snd_sof_of_mach
array and select correct machine description based on dts compatible
string.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reviewed-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://msgid.link/r/20240212125258.420265-1-daniel.baluta@oss.nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/imx/imx8.c
sound/soc/sof/imx/imx8m.c
sound/soc/sof/imx/imx8ulp.c

index d777e70250efc006739e1edbf20a4f5fd344ee88..07f51489d6c9d298053a177afad91e3290955ccd 100644 (file)
@@ -607,7 +607,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-mek",
+               .sof_tplg_filename = "sof-imx8-wm8960.tplg",
+               .drv_name = "asoc-audio-graph-card2",
+       },
+       {
+               .compatible = "fsl,imx8qm-mek",
+               .sof_tplg_filename = "sof-imx8-wm8960.tplg",
+               .drv_name = "asoc-audio-graph-card2",
+       },
+       {}
+};
+
 static struct sof_dev_desc sof_of_imx8qxp_desc = {
+       .of_machines    = sof_imx8_machs,
        .ipc_supported_mask     = BIT(SOF_IPC_TYPE_3),
        .ipc_default            = SOF_IPC_TYPE_3,
        .default_fw_path = {
@@ -624,6 +639,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_TYPE_3),
        .ipc_default            = SOF_IPC_TYPE_3,
        .default_fw_path = {
index 1b976fa500aa2725aca8373117e340c5354adec4..222cd1467da67ea1635d6dc8de0550d6ce762477 100644 (file)
@@ -476,7 +476,17 @@ static struct snd_sof_dsp_ops sof_imx8m_ops = {
                SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
 };
 
+static struct snd_sof_of_mach sof_imx8mp_machs[] = {
+       {
+               .compatible = "fsl,imx8mp-evk",
+               .sof_tplg_filename = "sof-imx8mp-wm8960.tplg",
+               .drv_name = "asoc-audio-graph-card2",
+       },
+       {}
+};
+
 static struct sof_dev_desc sof_of_imx8mp_desc = {
+       .of_machines    = sof_imx8mp_machs,
        .ipc_supported_mask     = BIT(SOF_IPC_TYPE_3),
        .ipc_default            = SOF_IPC_TYPE_3,
        .default_fw_path = {
index 2badca75782b28aa4fb0ead18a03b22c233cc96c..7b527ffde488f9a1deecc1137ecf9f21c7c546b5 100644 (file)
@@ -476,7 +476,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-evk",
+               .sof_tplg_filename = "sof-imx8ulp-btsco.tplg",
+               .drv_name = "asoc-audio-graph-card2",
+       },
+       {}
+};
+
 static struct sof_dev_desc sof_of_imx8ulp_desc = {
+       .of_machines = sof_imx8ulp_machs,
        .ipc_supported_mask     = BIT(SOF_IPC_TYPE_3),
        .ipc_default            = SOF_IPC_TYPE_3,
        .default_fw_path = {