Lines Matching full:cs47l85
3 // ALSA SoC Audio driver for CS47L85 codec
30 #define DRV_NAME "cs47l85-codec"
35 struct cs47l85 { struct
115 struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component); in cs47l85_adsp_power_ev() local
116 struct madera_priv *priv = &cs47l85->core; in cs47l85_adsp_power_ev()
133 ret = madera_set_adsp_clk(&cs47l85->core, w->shift, freq); in cs47l85_adsp_power_ev()
2226 struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component); in cs47l85_set_fll() local
2230 return madera_set_fll_refclk(&cs47l85->fll[0], source, fref, in cs47l85_set_fll()
2233 return madera_set_fll_refclk(&cs47l85->fll[1], source, fref, in cs47l85_set_fll()
2236 return madera_set_fll_refclk(&cs47l85->fll[2], source, fref, in cs47l85_set_fll()
2239 return madera_set_fll_syncclk(&cs47l85->fll[0], source, fref, in cs47l85_set_fll()
2242 return madera_set_fll_syncclk(&cs47l85->fll[1], source, fref, in cs47l85_set_fll()
2245 return madera_set_fll_syncclk(&cs47l85->fll[2], source, fref, in cs47l85_set_fll()
2254 .name = "cs47l85-aif1",
2276 .name = "cs47l85-aif2",
2298 .name = "cs47l85-aif3",
2320 .name = "cs47l85-aif4",
2342 .name = "cs47l85-slim1",
2361 .name = "cs47l85-slim2",
2380 .name = "cs47l85-slim3",
2399 .name = "cs47l85-cpu-voicectrl",
2410 .name = "cs47l85-dsp-voicectrl",
2420 .name = "cs47l85-cpu-trace",
2431 .name = "cs47l85-dsp-trace",
2446 struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component); in cs47l85_open() local
2447 struct madera_priv *priv = &cs47l85->core; in cs47l85_open()
2451 if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l85-dsp-voicectrl") == 0) { in cs47l85_open()
2453 } else if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l85-dsp-trace") == 0) { in cs47l85_open()
2467 struct cs47l85 *cs47l85 = data; in cs47l85_adsp2_irq() local
2468 struct madera_priv *priv = &cs47l85->core; in cs47l85_adsp2_irq()
2496 struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component); in cs47l85_component_probe() local
2497 struct madera *madera = cs47l85->core.madera; in cs47l85_component_probe()
2524 wm_adsp2_component_probe(&cs47l85->core.adsp[i], component); in cs47l85_component_probe()
2531 struct cs47l85 *cs47l85 = snd_soc_component_get_drvdata(component); in cs47l85_component_remove() local
2532 struct madera *madera = cs47l85->core.madera; in cs47l85_component_remove()
2540 wm_adsp2_component_remove(&cs47l85->core.adsp[i], component); in cs47l85_component_remove()
2591 struct cs47l85 *cs47l85; in cs47l85_probe() local
2602 cs47l85 = devm_kzalloc(&pdev->dev, sizeof(struct cs47l85), in cs47l85_probe()
2604 if (!cs47l85) in cs47l85_probe()
2607 platform_set_drvdata(pdev, cs47l85); in cs47l85_probe()
2609 cs47l85->core.madera = madera; in cs47l85_probe()
2610 cs47l85->core.dev = &pdev->dev; in cs47l85_probe()
2611 cs47l85->core.num_inputs = 12; in cs47l85_probe()
2613 ret = madera_core_init(&cs47l85->core); in cs47l85_probe()
2617 ret = madera_init_overheat(&cs47l85->core); in cs47l85_probe()
2623 cs47l85); in cs47l85_probe()
2634 cs47l85->core.adsp[i].part = "cs47l85"; in cs47l85_probe()
2635 cs47l85->core.adsp[i].num = i + 1; in cs47l85_probe()
2636 cs47l85->core.adsp[i].type = WMFW_ADSP2; in cs47l85_probe()
2637 cs47l85->core.adsp[i].rev = 1; in cs47l85_probe()
2638 cs47l85->core.adsp[i].dev = madera->dev; in cs47l85_probe()
2639 cs47l85->core.adsp[i].regmap = madera->regmap_32bit; in cs47l85_probe()
2641 cs47l85->core.adsp[i].base = wm_adsp2_control_bases[i]; in cs47l85_probe()
2642 cs47l85->core.adsp[i].mem = cs47l85_dsp_regions[i]; in cs47l85_probe()
2643 cs47l85->core.adsp[i].num_mems = in cs47l85_probe()
2646 ret = wm_adsp2_init(&cs47l85->core.adsp[i]); in cs47l85_probe()
2649 wm_adsp2_remove(&cs47l85->core.adsp[i]); in cs47l85_probe()
2655 &cs47l85->fll[0]); in cs47l85_probe()
2657 &cs47l85->fll[1]); in cs47l85_probe()
2659 &cs47l85->fll[2]); in cs47l85_probe()
2662 madera_init_dai(&cs47l85->core, i); in cs47l85_probe()
2687 wm_adsp2_remove(&cs47l85->core.adsp[i]); in cs47l85_probe()
2690 madera_free_irq(madera, MADERA_IRQ_DSP_IRQ1, cs47l85); in cs47l85_probe()
2692 madera_free_overheat(&cs47l85->core); in cs47l85_probe()
2694 madera_core_free(&cs47l85->core); in cs47l85_probe()
2701 struct cs47l85 *cs47l85 = platform_get_drvdata(pdev); in cs47l85_remove() local
2707 wm_adsp2_remove(&cs47l85->core.adsp[i]); in cs47l85_remove()
2709 madera_set_irq_wake(cs47l85->core.madera, MADERA_IRQ_DSP_IRQ1, 0); in cs47l85_remove()
2710 madera_free_irq(cs47l85->core.madera, MADERA_IRQ_DSP_IRQ1, cs47l85); in cs47l85_remove()
2711 madera_free_overheat(&cs47l85->core); in cs47l85_remove()
2712 madera_core_free(&cs47l85->core); in cs47l85_remove()
2719 .name = "cs47l85-codec",
2728 MODULE_DESCRIPTION("ASoC CS47L85 driver");
2731 MODULE_ALIAS("platform:cs47l85-codec");