Lines Matching defs:afe

17 #include "mt2701-afe-common.h"
18 #include "mt2701-afe-clock-ctrl.h"
19 #include "../common/mtk-afe-platform-driver.h"
20 #include "../common/mtk-afe-fe-dai.h"
82 static int mt2701_dai_num_to_i2s(struct mtk_base_afe *afe, int num)
84 struct mt2701_afe_private *afe_priv = afe->platform_priv;
88 dev_err(afe->dev, "%s, num not available, num %d, val %d\n",
109 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
110 struct mt2701_afe_private *afe_priv = afe->platform_priv;
111 int i2s_num = mt2701_dai_num_to_i2s(afe, dai->id);
117 return mt2701_afe_enable_mclk(afe, mode ? 1 : i2s_num);
120 static int mt2701_afe_i2s_path_disable(struct mtk_base_afe *afe,
133 regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
136 mt2701_afe_disable_i2s(afe, i2s_path, stream_dir);
144 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
145 struct mt2701_afe_private *afe_priv = afe->platform_priv;
146 int i2s_num = mt2701_dai_num_to_i2s(afe, dai->id);
160 mt2701_afe_i2s_path_disable(afe, i2s_path, substream->stream);
164 mt2701_afe_i2s_path_disable(afe, i2s_path, !substream->stream);
168 mt2701_afe_disable_mclk(afe, mode ? 1 : i2s_num);
171 static int mt2701_i2s_path_enable(struct mtk_base_afe *afe,
176 struct mt2701_afe_private *afe_priv = afe->platform_priv;
207 regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg, mask, val);
209 regmap_update_bits(afe->regmap, reg,
215 mt2701_afe_enable_i2s(afe, i2s_path, stream_dir);
218 regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
221 regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
224 regmap_update_bits(afe->regmap, i2s_data->i2s_ctrl_reg,
232 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
233 struct mt2701_afe_private *afe_priv = afe->platform_priv;
234 int ret, i2s_num = mt2701_dai_num_to_i2s(afe, dai->id);
246 ret = mt2701_mclk_configuration(afe, mode ? 1 : i2s_num);
254 mt2701_i2s_path_enable(afe, i2s_path, !substream->stream,
257 mt2701_i2s_path_enable(afe, i2s_path, substream->stream,
266 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
267 struct mt2701_afe_private *afe_priv = afe->platform_priv;
268 int i2s_num = mt2701_dai_num_to_i2s(afe, dai->id);
288 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
289 struct mt2701_afe_private *afe_priv = afe->platform_priv;
292 ret = mt2701_enable_btmrg_clk(afe);
305 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
312 dev_err(afe->dev, "unsupported rate %d\n", stream_fs);
316 regmap_update_bits(afe->regmap, AFE_MRGIF_CON,
329 regmap_update_bits(afe->regmap, AFE_DAIBT_CON0, msk, val);
331 regmap_update_bits(afe->regmap, AFE_DAIBT_CON0,
334 regmap_update_bits(afe->regmap, AFE_MRGIF_CON,
337 regmap_update_bits(afe->regmap, AFE_MRGIF_CON,
346 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
347 struct mt2701_afe_private *afe_priv = afe->platform_priv;
351 regmap_update_bits(afe->regmap, AFE_DAIBT_CON0,
353 regmap_update_bits(afe->regmap, AFE_MRGIF_CON,
355 regmap_update_bits(afe->regmap, AFE_MRGIF_CON,
357 mt2701_disable_btmrg_clk(afe);
366 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
372 memif_tmp = &afe->memif[MT2701_MEMIF_DLM];
374 dev_warn(afe->dev, "memif is not available");
386 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
391 regmap_update_bits(afe->regmap,
402 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
408 memif_tmp = &afe->memif[i];
415 memif_data = afe->memif[i].data;
416 regmap_update_bits(afe->regmap,
428 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
433 memif_data = afe->memif[i].data;
434 regmap_update_bits(afe->regmap,
447 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
450 regmap_update_bits(afe->regmap,
454 regmap_update_bits(afe->regmap,
458 regmap_update_bits(afe->regmap,
469 struct mtk_base_afe *afe = snd_soc_dai_get_drvdata(dai);
470 struct mtk_base_afe_memif *memif_tmp = &afe->memif[MT2701_MEMIF_DL1];
475 regmap_update_bits(afe->regmap, memif_tmp->data->enable_reg,
483 regmap_update_bits(afe->regmap, memif_tmp->data->enable_reg,
957 struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component);
959 snd_soc_component_init_regmap(component, afe->regmap);
966 .name = "mt2701-afe-pcm-dai",
1277 struct mtk_base_afe *afe = dev;
1282 regmap_read(afe->regmap, ASYS_IRQ_STATUS, &status);
1283 regmap_write(afe->regmap, ASYS_IRQ_CLR, status);
1286 memif = &afe->memif[id];
1290 irq = &afe->irqs[memif->irq_usage];
1300 struct mtk_base_afe *afe = dev_get_drvdata(dev);
1302 return mt2701_afe_disable_clock(afe);
1307 struct mtk_base_afe *afe = dev_get_drvdata(dev);
1309 return mt2701_afe_enable_clock(afe);
1314 struct mtk_base_afe *afe;
1319 afe = devm_kzalloc(&pdev->dev, sizeof(*afe), GFP_KERNEL);
1320 if (!afe)
1323 afe->platform_priv = devm_kzalloc(&pdev->dev, sizeof(*afe_priv),
1325 if (!afe->platform_priv)
1328 afe_priv = afe->platform_priv;
1330 afe->dev = &pdev->dev;
1331 dev = afe->dev;
1345 IRQF_TRIGGER_NONE, "asys-isr", (void *)afe);
1351 afe->regmap = syscon_node_to_regmap(dev->parent->of_node);
1352 if (IS_ERR(afe->regmap)) {
1354 return PTR_ERR(afe->regmap);
1357 mutex_init(&afe->irq_alloc_lock);
1360 afe->memif_size = MT2701_MEMIF_NUM;
1361 afe->memif = devm_kcalloc(dev, afe->memif_size, sizeof(*afe->memif),
1363 if (!afe->memif)
1366 for (i = 0; i < afe->memif_size; i++) {
1367 afe->memif[i].data = &memif_data_array[i];
1368 afe->memif[i].irq_usage = -1;
1372 afe->irqs_size = MT2701_IRQ_ASYS_END;
1373 afe->irqs = devm_kcalloc(dev, afe->irqs_size, sizeof(*afe->irqs),
1375 if (!afe->irqs)
1378 for (i = 0; i < afe->irqs_size; i++)
1379 afe->irqs[i].irq_data = &irq_data[i];
1389 afe->mtk_afe_hardware = &mt2701_afe_hardware;
1390 afe->memif_fs = mt2701_memif_fs;
1391 afe->irq_fs = mt2701_irq_fs;
1392 afe->reg_back_up_list = mt2701_afe_backup_list;
1393 afe->reg_back_up_list_num = ARRAY_SIZE(mt2701_afe_backup_list);
1394 afe->runtime_resume = mt2701_afe_runtime_resume;
1395 afe->runtime_suspend = mt2701_afe_runtime_suspend;
1398 ret = mt2701_init_clock(afe);
1404 platform_set_drvdata(pdev, afe);