Lines Matching refs:dai
18 #include <sound/soc-dai.h>
69 static int lpass_cpu_daiops_set_sysclk(struct snd_soc_dai *dai, int clk_id,
72 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
75 ret = clk_set_rate(drvdata->mi2s_osr_clk[dai->driver->id], freq);
77 dev_err(dai->dev, "error setting mi2s osrclk to %u: %d\n",
84 struct snd_soc_dai *dai)
86 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
89 ret = clk_prepare_enable(drvdata->mi2s_osr_clk[dai->driver->id]);
91 dev_err(dai->dev, "error in enabling mi2s osr clk: %d\n", ret);
94 ret = clk_prepare(drvdata->mi2s_bit_clk[dai->driver->id]);
96 dev_err(dai->dev, "error in enabling mi2s bit clk: %d\n", ret);
97 clk_disable_unprepare(drvdata->mi2s_osr_clk[dai->driver->id]);
104 struct snd_soc_dai *dai)
106 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
108 unsigned int id = dai->driver->id;
110 clk_disable_unprepare(drvdata->mi2s_osr_clk[dai->driver->id]);
126 if (drvdata->mi2s_was_prepared[dai->driver->id]) {
127 drvdata->mi2s_was_prepared[dai->driver->id] = false;
128 clk_disable(drvdata->mi2s_bit_clk[dai->driver->id]);
131 clk_unprepare(drvdata->mi2s_bit_clk[dai->driver->id]);
135 struct snd_pcm_hw_params *params, struct snd_soc_dai *dai)
137 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
139 unsigned int id = dai->driver->id;
149 dev_err(dai->dev, "invalid bit width given: %d\n", bitwidth);
156 dev_err(dai->dev, "error updating loopback field: %d\n", ret);
163 dev_err(dai->dev, "error updating wssrc field: %d\n", ret);
178 dev_err(dai->dev, "invalid bitwidth given: %d\n", bitwidth);
184 dev_err(dai->dev, "error updating bitwidth field: %d\n", ret);
194 dev_err(dai->dev, "no line is assigned\n");
215 dev_err(dai->dev, "cannot configure 4 channels with mode %d\n",
229 dev_err(dai->dev, "cannot configure 6 channels with mode %d\n",
242 dev_err(dai->dev, "cannot configure 8 channels with mode %d\n",
248 dev_err(dai->dev, "invalid channels given: %u\n", channels);
256 dev_err(dai->dev, "error writing to i2sctl spkr mode: %d\n",
270 dev_err(dai->dev, "error writing to i2sctl mic mode: %d\n",
283 dev_err(dai->dev, "error writing to i2sctl channels mode: %d\n",
291 dev_err(dai->dev, "error setting mi2s bitclk to %u: %d\n",
300 int cmd, struct snd_soc_dai *dai)
302 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
304 unsigned int id = dai->driver->id;
331 dev_err(dai->dev, "error writing to i2sctl reg: %d\n",
336 dev_err(dai->dev, "error in enabling mi2s bit clk: %d\n", ret);
356 dev_err(dai->dev, "error writing to i2sctl reg: %d\n",
359 clk_disable(drvdata->mi2s_bit_clk[dai->driver->id]);
368 struct snd_soc_dai *dai)
370 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
372 unsigned int id = dai->driver->id;
387 dev_err(dai->dev, "error writing to i2sctl reg: %d\n", ret);
396 if (!drvdata->mi2s_was_prepared[dai->driver->id]) {
399 dev_err(dai->dev, "error in enabling mi2s bit clk: %d\n", ret);
402 drvdata->mi2s_was_prepared[dai->driver->id] = true;
407 static int lpass_cpu_daiops_pcm_new(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai)
410 struct snd_soc_dai_driver *drv = dai->driver;
411 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
413 if (drvdata->mi2s_playback_sd_mode[dai->id] == LPAIF_I2SCTL_MODE_QUAD01) {
424 static int lpass_cpu_daiops_probe(struct snd_soc_dai *dai)
426 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai);
431 LPAIF_I2SCTL_REG(drvdata->variant, dai->driver->id), 0);
433 dev_err(dai->dev, "error writing to i2sctl reg: %d\n", ret);
1062 dev_err(dev, "valid dai id not found: %d\n", ret);
1246 /* Initialize bitfields for dai I2SCTL register */