Lines Matching +full:imx +full:- +full:audio +full:- +full:cs42888
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>
12 #include <linux/firmware/imx/svc/misc.h>
16 #include "imx-common.h"
66 dev_err(sdev->dev, "Error system address offset source select\n"); in imx8x_run()
73 dev_err(sdev->dev, "Error system address offset of AUDIO\n"); in imx8x_run()
80 dev_err(sdev->dev, "Error system address offset of PERIPH %d\n", in imx8x_run()
88 dev_err(sdev->dev, "Error system address offset of IRQ\n"); in imx8x_run()
105 dev_err(sdev->dev, "Error system address offset source select\n"); in imx8_run()
121 common = sdev->pdata->hw_pdata; in imx8_probe()
125 return dev_err_probe(sdev->dev, ret, in imx8_probe()
128 common->chip_pdata = sc_ipc_handle; in imx8_probe()
141 pwrctl = readl(chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
143 writel(pwrctl, chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
148 reset_control_assert(chip->run_stall); in imx8m_reset()
151 pwrctl = readl(chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
153 writel(pwrctl, chip->dap + IMX8M_DAP_PWRCTL); in imx8m_reset()
162 return reset_control_deassert(chip->run_stall); in imx8m_run()
170 common = sdev->pdata->hw_pdata; in imx8m_probe()
172 chip = devm_kzalloc(sdev->dev, sizeof(*chip), GFP_KERNEL); in imx8m_probe()
174 return dev_err_probe(sdev->dev, -ENOMEM, in imx8m_probe()
177 chip->dap = devm_ioremap(sdev->dev, IMX8M_DAP_DEBUG, IMX8M_DAP_DEBUG_SIZE); in imx8m_probe()
178 if (!chip->dap) in imx8m_probe()
179 return dev_err_probe(sdev->dev, -ENODEV, in imx8m_probe()
182 chip->run_stall = devm_reset_control_get_exclusive(sdev->dev, "runstall"); in imx8m_probe()
183 if (IS_ERR(chip->run_stall)) in imx8m_probe()
184 return dev_err_probe(sdev->dev, PTR_ERR(chip->run_stall), in imx8m_probe()
187 common->chip_pdata = chip; in imx8m_probe()
242 common = sdev->pdata->hw_pdata; in imx8ulp_probe()
244 regmap = syscon_regmap_lookup_by_phandle(sdev->dev->of_node, "fsl,dsp-ctrl"); in imx8ulp_probe()
246 return dev_err_probe(sdev->dev, PTR_ERR(regmap), in imx8ulp_probe()
249 common->chip_pdata = regmap; in imx8ulp_probe()
288 sof_imx8_ops.drv = get_chip_info(sdev)->drv; in imx8_ops_init()
289 sof_imx8_ops.num_drv = get_chip_info(sdev)->num_drv; in imx8_ops_init()
387 .compatible = "fsl,imx8qxp-mek",
388 .sof_tplg_filename = "sof-imx8-wm8960.tplg",
389 .drv_name = "asoc-audio-graph-card2",
392 .compatible = "fsl,imx8qxp-mek-wcpu",
393 .sof_tplg_filename = "sof-imx8-wm8962.tplg",
394 .drv_name = "asoc-audio-graph-card2",
397 .compatible = "fsl,imx8qm-mek",
398 .sof_tplg_filename = "sof-imx8-wm8960.tplg",
399 .drv_name = "asoc-audio-graph-card2",
402 .compatible = "fsl,imx8qm-mek-revd",
403 .sof_tplg_filename = "sof-imx8-wm8962.tplg",
404 .drv_name = "asoc-audio-graph-card2",
407 .compatible = "fsl,imx8qxp-mek-bb",
408 .sof_tplg_filename = "sof-imx8-cs42888.tplg",
409 .drv_name = "asoc-audio-graph-card2",
412 .compatible = "fsl,imx8qm-mek-bb",
413 .sof_tplg_filename = "sof-imx8-cs42888.tplg",
414 .drv_name = "asoc-audio-graph-card2",
417 .compatible = "fsl,imx8mp-evk",
418 .sof_tplg_filename = "sof-imx8mp-wm8960.tplg",
419 .drv_name = "asoc-audio-graph-card2",
422 .compatible = "fsl,imx8mp-evk-revb4",
423 .sof_tplg_filename = "sof-imx8mp-wm8962.tplg",
424 .drv_name = "asoc-audio-graph-card2",
427 .compatible = "fsl,imx8ulp-evk",
428 .sof_tplg_filename = "sof-imx8ulp-btsco.tplg",
429 .drv_name = "asoc-audio-graph-card2",
441 .compatible = "fsl,imx8qxp-dsp",
445 .compatible = "fsl,imx8qm-dsp",
449 .compatible = "fsl,imx8mp-dsp",
453 .compatible = "fsl,imx8ulp-dsp",
465 .name = "sof-audio-of-imx8",