Lines Matching defs:smi
16 #include <soc/mediatek/smi.h>
84 struct mtk_smi smi;
92 static int mtk_smi_clk_enable(const struct mtk_smi *smi)
96 ret = clk_prepare_enable(smi->clk_apb);
100 ret = clk_prepare_enable(smi->clk_smi);
104 ret = clk_prepare_enable(smi->clk_gals0);
108 ret = clk_prepare_enable(smi->clk_gals1);
115 clk_disable_unprepare(smi->clk_gals0);
117 clk_disable_unprepare(smi->clk_smi);
119 clk_disable_unprepare(smi->clk_apb);
123 static void mtk_smi_clk_disable(const struct mtk_smi *smi)
125 clk_disable_unprepare(smi->clk_gals1);
126 clk_disable_unprepare(smi->clk_gals0);
127 clk_disable_unprepare(smi->clk_smi);
128 clk_disable_unprepare(smi->clk_apb);
273 .compatible = "mediatek,mt8167-smi-larb",
277 .compatible = "mediatek,mt8173-smi-larb",
281 .compatible = "mediatek,mt2701-smi-larb",
285 .compatible = "mediatek,mt2712-smi-larb",
289 .compatible = "mediatek,mt6779-smi-larb",
293 .compatible = "mediatek,mt8183-smi-larb",
317 larb->smi.clk_apb = devm_clk_get(dev, "apb");
318 if (IS_ERR(larb->smi.clk_apb))
319 return PTR_ERR(larb->smi.clk_apb);
321 larb->smi.clk_smi = devm_clk_get(dev, "smi");
322 if (IS_ERR(larb->smi.clk_smi))
323 return PTR_ERR(larb->smi.clk_smi);
327 larb->smi.clk_gals0 = devm_clk_get(dev, "gals");
328 if (PTR_ERR(larb->smi.clk_gals0) == -ENOENT)
329 larb->smi.clk_gals0 = NULL;
330 else if (IS_ERR(larb->smi.clk_gals0))
331 return PTR_ERR(larb->smi.clk_gals0);
333 larb->smi.dev = dev;
335 smi_node = of_parse_phandle(dev->of_node, "mediatek,smi", 0);
368 /* Power on smi-common. */
371 dev_err(dev, "Failed to pm get for smi-common(%d).\n", ret);
375 ret = mtk_smi_clk_enable(&larb->smi);
392 mtk_smi_clk_disable(&larb->smi);
407 .name = "mtk-smi-larb",
437 .compatible = "mediatek,mt8173-smi-common",
441 .compatible = "mediatek,mt8167-smi-common",
445 .compatible = "mediatek,mt2701-smi-common",
449 .compatible = "mediatek,mt2712-smi-common",
453 .compatible = "mediatek,mt6779-smi-common",
457 .compatible = "mediatek,mt8183-smi-common",
480 common->clk_smi = devm_clk_get(dev, "smi");
495 * for mtk smi gen 1, we need to get the ao(always on) base to config
496 * m4u port, and we need to enable the aync clock for transform the smi
497 * clock into emi clock domain, but for mtk smi gen2, there's no smi ao
565 .name = "mtk-smi-common",