Lines Matching refs:afe
3 // mt8186-afe-clk.c -- Mediatek 8186 afe clock ctrl
12 #include "mt8186-afe-common.h"
13 #include "mt8186-afe-clk.h"
73 int mt8186_set_audio_int_bus_parent(struct mtk_base_afe *afe,
76 struct mt8186_afe_private *afe_priv = afe->platform_priv;
82 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
91 static int apll1_mux_setting(struct mtk_base_afe *afe, bool enable)
93 struct mt8186_afe_private *afe_priv = afe->platform_priv;
99 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
106 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
115 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
122 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
131 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
141 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
152 static int apll2_mux_setting(struct mtk_base_afe *afe, bool enable)
154 struct mt8186_afe_private *afe_priv = afe->platform_priv;
160 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
167 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
176 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
183 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
192 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
202 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
213 int mt8186_afe_enable_cgs(struct mtk_base_afe *afe)
215 struct mt8186_afe_private *afe_priv = afe->platform_priv;
222 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
231 void mt8186_afe_disable_cgs(struct mtk_base_afe *afe)
233 struct mt8186_afe_private *afe_priv = afe->platform_priv;
240 int mt8186_afe_enable_clock(struct mtk_base_afe *afe)
242 struct mt8186_afe_private *afe_priv = afe->platform_priv;
247 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
254 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
261 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
268 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
276 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
280 ret = mt8186_set_audio_int_bus_parent(afe,
288 dev_err(afe->dev, "%s clk_set_parent %s-%s fail %d\n",
296 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
307 mt8186_set_audio_int_bus_parent(afe, CLK_CLK26M);
320 void mt8186_afe_disable_clock(struct mtk_base_afe *afe)
322 struct mt8186_afe_private *afe_priv = afe->platform_priv;
325 mt8186_set_audio_int_bus_parent(afe, CLK_CLK26M);
332 int mt8186_afe_suspend_clock(struct mtk_base_afe *afe)
334 struct mt8186_afe_private *afe_priv = afe->platform_priv;
340 dev_info(afe->dev, "%s clk_prepare_enable %s fail %d\n",
344 ret = mt8186_set_audio_int_bus_parent(afe, CLK_CLK26M);
353 mt8186_set_audio_int_bus_parent(afe, CLK_TOP_MAINPLL_D2_D4);
359 int mt8186_afe_resume_clock(struct mtk_base_afe *afe)
361 struct mt8186_afe_private *afe_priv = afe->platform_priv;
367 dev_info(afe->dev, "%s clk_prepare_enable %s fail %d\n",
371 ret = mt8186_set_audio_int_bus_parent(afe,
381 mt8186_set_audio_int_bus_parent(afe, CLK_CLK26M);
387 int mt8186_apll1_enable(struct mtk_base_afe *afe)
389 struct mt8186_afe_private *afe_priv = afe->platform_priv;
393 apll1_mux_setting(afe, true);
397 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
404 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
409 regmap_update_bits(afe->regmap, AFE_APLL1_TUNER_CFG, 0xfff7, 0x832);
410 regmap_update_bits(afe->regmap, AFE_APLL1_TUNER_CFG, 0x1, 0x1);
412 regmap_update_bits(afe->regmap, AFE_HD_ENGEN_ENABLE,
425 void mt8186_apll1_disable(struct mtk_base_afe *afe)
427 struct mt8186_afe_private *afe_priv = afe->platform_priv;
429 regmap_update_bits(afe->regmap, AFE_HD_ENGEN_ENABLE,
432 regmap_update_bits(afe->regmap, AFE_APLL1_TUNER_CFG, 0x1, 0);
437 apll1_mux_setting(afe, false);
440 int mt8186_apll2_enable(struct mtk_base_afe *afe)
442 struct mt8186_afe_private *afe_priv = afe->platform_priv;
446 apll2_mux_setting(afe, true);
450 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
457 dev_err(afe->dev, "%s clk_prepare_enable %s fail %d\n",
462 regmap_update_bits(afe->regmap, AFE_APLL2_TUNER_CFG, 0xfff7, 0x634);
463 regmap_update_bits(afe->regmap, AFE_APLL2_TUNER_CFG, 0x1, 0x1);
465 regmap_update_bits(afe->regmap, AFE_HD_ENGEN_ENABLE,
478 void mt8186_apll2_disable(struct mtk_base_afe *afe)
480 struct mt8186_afe_private *afe_priv = afe->platform_priv;
482 regmap_update_bits(afe->regmap, AFE_HD_ENGEN_ENABLE,
485 regmap_update_bits(afe->regmap, AFE_APLL2_TUNER_CFG, 0x1, 0);
490 apll2_mux_setting(afe, false);
493 int mt8186_get_apll_rate(struct mtk_base_afe *afe, int apll)
498 int mt8186_get_apll_by_rate(struct mtk_base_afe *afe, int rate)
503 int mt8186_get_apll_by_name(struct mtk_base_afe *afe, const char *name)
540 int mt8186_mck_enable(struct mtk_base_afe *afe, int mck_id, int rate)
542 struct mt8186_afe_private *afe_priv = afe->platform_priv;
543 int apll = mt8186_get_apll_by_rate(afe, rate);
554 dev_err(afe->dev, "%s(), clk_prepare_enable %s fail %d\n",
561 dev_err(afe->dev, "%s(), clk_set_parent %s-%s fail %d\n",
571 dev_err(afe->dev, "%s(), clk_prepare_enable %s fail %d\n",
577 dev_err(afe->dev, "%s(), clk_set_rate %s, rate %d, fail %d\n",
585 void mt8186_mck_disable(struct mtk_base_afe *afe, int mck_id)
587 struct mt8186_afe_private *afe_priv = afe->platform_priv;
596 int mt8186_init_clock(struct mtk_base_afe *afe)
598 struct mt8186_afe_private *afe_priv = afe->platform_priv;
599 struct device_node *of_node = afe->dev->of_node;
602 mt8186_audsys_clk_register(afe);
604 afe_priv->clk = devm_kcalloc(afe->dev, CLK_NUM, sizeof(*afe_priv->clk),
610 afe_priv->clk[i] = devm_clk_get(afe->dev, aud_clks[i]);
612 dev_err(afe->dev, "%s devm_clk_get %s fail, ret %ld\n",
622 dev_err(afe->dev, "%s() Cannot find apmixedsys controller: %ld\n",
630 dev_err(afe->dev, "%s() Cannot find topckgen controller: %ld\n",
638 dev_err(afe->dev, "%s() Cannot find infracfg: %ld\n",