Lines Matching +full:audio +full:- +full:graph
1 // SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
3 // Copyright 2019-2025 NXP
7 // Hardware interface for audio DSP on i.MX8
9 #include <dt-bindings/firmware/imx/rsrc.h>
11 #include <linux/arm-smccc.h>
15 #include "imx-common.h"
58 dev_err(sdev->dev, "Error system address offset source select\n"); in imx8x_run()
65 dev_err(sdev->dev, "Error system address offset of AUDIO\n"); in imx8x_run()
72 dev_err(sdev->dev, "Error system address offset of PERIPH %d\n", in imx8x_run()
80 dev_err(sdev->dev, "Error system address offset of IRQ\n"); in imx8x_run()
97 dev_err(sdev->dev, "Error system address offset source select\n"); in imx8_run()
113 common = sdev->pdata->hw_pdata; in imx8_probe()
117 return dev_err_probe(sdev->dev, ret, in imx8_probe()
120 common->chip_pdata = sc_ipc_handle; in imx8_probe()
133 pwrctl = readl(chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
135 writel(pwrctl, chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
140 regmap_update_bits(chip->regmap, AudioDSP_REG2, in imx8m_reset()
144 pwrctl = readl(chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
146 writel(pwrctl, chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
155 regmap_update_bits(chip->regmap, AudioDSP_REG2, AudioDSP_REG2_RUNSTALL, 0); in imx8m_run()
165 common = sdev->pdata->hw_pdata; in imx8m_probe()
167 chip = devm_kzalloc(sdev->dev, sizeof(*chip), GFP_KERNEL); in imx8m_probe()
169 return dev_err_probe(sdev->dev, -ENOMEM, in imx8m_probe()
172 chip->dap = devm_ioremap(sdev->dev, IMX8M_DAP_DEBUG, IMX8M_DAP_DEBUG_SIZE); in imx8m_probe()
173 if (!chip->dap) in imx8m_probe()
174 return dev_err_probe(sdev->dev, -ENODEV, in imx8m_probe()
177 chip->regmap = syscon_regmap_lookup_by_phandle(sdev->dev->of_node, "fsl,dsp-ctrl"); in imx8m_probe()
178 if (IS_ERR(chip->regmap)) in imx8m_probe()
179 return dev_err_probe(sdev->dev, PTR_ERR(chip->regmap), in imx8m_probe()
182 common->chip_pdata = chip; in imx8m_probe()
237 common = sdev->pdata->hw_pdata; in imx8ulp_probe()
239 regmap = syscon_regmap_lookup_by_phandle(sdev->dev->of_node, "fsl,dsp-ctrl"); in imx8ulp_probe()
241 return dev_err_probe(sdev->dev, PTR_ERR(regmap), in imx8ulp_probe()
244 common->chip_pdata = regmap; in imx8ulp_probe()
283 sof_imx8_ops.drv = get_chip_info(sdev)->drv; in imx8_ops_init()
284 sof_imx8_ops.num_drv = get_chip_info(sdev)->num_drv; in imx8_ops_init()
380 .compatible = "fsl,imx8qxp-mek",
381 .sof_tplg_filename = "sof-imx8-wm8960.tplg",
382 .drv_name = "asoc-audio-graph-card2",
385 .compatible = "fsl,imx8qxp-mek-wcpu",
386 .sof_tplg_filename = "sof-imx8-wm8962.tplg",
387 .drv_name = "asoc-audio-graph-card2",
390 .compatible = "fsl,imx8qm-mek",
391 .sof_tplg_filename = "sof-imx8-wm8960.tplg",
392 .drv_name = "asoc-audio-graph-card2",
395 .compatible = "fsl,imx8qm-mek-revd",
396 .sof_tplg_filename = "sof-imx8-wm8962.tplg",
397 .drv_name = "asoc-audio-graph-card2",
400 .compatible = "fsl,imx8qxp-mek-bb",
401 .sof_tplg_filename = "sof-imx8-cs42888.tplg",
402 .drv_name = "asoc-audio-graph-card2",
405 .compatible = "fsl,imx8qm-mek-bb",
406 .sof_tplg_filename = "sof-imx8-cs42888.tplg",
407 .drv_name = "asoc-audio-graph-card2",
410 .compatible = "fsl,imx8mp-evk",
411 .sof_tplg_filename = "sof-imx8mp-wm8960.tplg",
412 .drv_name = "asoc-audio-graph-card2",
415 .compatible = "fsl,imx8mp-evk-revb4",
416 .sof_tplg_filename = "sof-imx8mp-wm8962.tplg",
417 .drv_name = "asoc-audio-graph-card2",
420 .compatible = "fsl,imx8ulp-evk",
421 .sof_tplg_filename = "sof-imx8ulp-btsco.tplg",
422 .drv_name = "asoc-audio-graph-card2",
434 .compatible = "fsl,imx8qxp-dsp",
438 .compatible = "fsl,imx8qm-dsp",
442 .compatible = "fsl,imx8mp-dsp",
446 .compatible = "fsl,imx8ulp-dsp",
458 .name = "sof-audio-of-imx8",