2021-07-10 12:26:35

by Tinghan Shen

[permalink] [raw]
Subject: [v2 2/2] remoteproc: mediatek: Support mt8195 scp

The SCP clock design is changed on mt8195 that doesn't need to control
SCP clock on kernel side.

Signed-off-by: Tinghan Shen <[email protected]>
---
drivers/remoteproc/mtk_scp.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/remoteproc/mtk_scp.c b/drivers/remoteproc/mtk_scp.c
index 9679cc26895e..c31af75f947a 100644
--- a/drivers/remoteproc/mtk_scp.c
+++ b/drivers/remoteproc/mtk_scp.c
@@ -785,11 +785,13 @@ static int scp_probe(struct platform_device *pdev)
if (ret)
goto destroy_mutex;

- scp->clk = devm_clk_get(dev, "main");
- if (IS_ERR(scp->clk)) {
- dev_err(dev, "Failed to get clock\n");
- ret = PTR_ERR(scp->clk);
- goto release_dev_mem;
+ if (of_get_property(np, "clocks", NULL)) {
+ scp->clk = devm_clk_get(dev, "main");
+ if (IS_ERR(scp->clk)) {
+ dev_err(dev, "Failed to get clock\n");
+ ret = PTR_ERR(scp->clk);
+ goto release_dev_mem;
+ }
}

/* register SCP initialization IPI */
@@ -877,6 +879,7 @@ static const struct mtk_scp_of_data mt8192_of_data = {
static const struct of_device_id mtk_scp_of_match[] = {
{ .compatible = "mediatek,mt8183-scp", .data = &mt8183_of_data },
{ .compatible = "mediatek,mt8192-scp", .data = &mt8192_of_data },
+ { .compatible = "mediatek,mt8195-scp", .data = &mt8192_of_data },
{},
};
MODULE_DEVICE_TABLE(of, mtk_scp_of_match);
--
2.18.0


2021-07-12 06:08:45

by Tzung-Bi Shih

[permalink] [raw]
Subject: Re: [v2 2/2] remoteproc: mediatek: Support mt8195 scp

On Sat, Jul 10, 2021 at 8:25 PM Tinghan Shen <[email protected]> wrote:
> @@ -785,11 +785,13 @@ static int scp_probe(struct platform_device *pdev)
> if (ret)
> goto destroy_mutex;
>
> - scp->clk = devm_clk_get(dev, "main");
> - if (IS_ERR(scp->clk)) {
> - dev_err(dev, "Failed to get clock\n");
> - ret = PTR_ERR(scp->clk);
> - goto release_dev_mem;
> + if (of_get_property(np, "clocks", NULL)) {
> + scp->clk = devm_clk_get(dev, "main");
> + if (IS_ERR(scp->clk)) {
> + dev_err(dev, "Failed to get clock\n");
> + ret = PTR_ERR(scp->clk);
> + goto release_dev_mem;
> + }
Use devm_clk_get_optional().