From: Miles Chen <miles.chen@mediatek.com>
To: <angelogioacchino.delregno@collabora.com>
Cc: <bgolaszewski@baylibre.com>, <chun-jie.chen@mediatek.com>,
<ck.hu@mediatek.com>, <devicetree@vger.kernel.org>,
<fparent@baylibre.com>, <ikjn@chromium.org>,
<jason-jh.lin@mediatek.com>, <kernel@collabora.com>,
<konrad.dybcio@somainline.org>,
<krzysztof.kozlowski+dt@linaro.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-clk@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-mediatek@lists.infradead.org>,
<marijn.suijten@somainline.org>, <martin.botka@somainline.org>,
<matthias.bgg@gmail.com>, <miles.chen@mediatek.com>,
<mturquette@baylibre.com>, <p.zabel@pengutronix.de>,
<paul.bouchara@somainline.org>, <phone-devel@vger.kernel.org>,
<rex-bc.chen@mediatek.com>, <robh+dt@kernel.org>,
<sam.shih@mediatek.com>, <sboyd@kernel.org>,
<tinghan.shen@mediatek.com>, <weiyi.lu@mediatek.com>,
<wenst@chromium.org>, <y.oudjana@protonmail.com>,
<~postmarketos/upstreaming@lists.sr.ht>
Subject: Re: [PATCH v3 7/7] clk: mediatek: Add MediaTek Helio X10 MT6795 clock drivers
Date: Sat, 25 Jun 2022 08:07:47 +0800 [thread overview]
Message-ID: <20220625000747.12582-1-miles.chen@mediatek.com> (raw)
In-Reply-To: <20220624093525.243077-8-angelogioacchino.delregno@collabora.com>
Hi Angelo,
> Add the clock drivers for the entire clock tree of MediaTek Helio X10
> MT6795, including system clocks (apmixedsys, infracfg, pericfg, topckgen)
> and multimedia clocks (mmsys, mfg, vdecsys, vencsys).
>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
> ---
> drivers/clk/mediatek/Kconfig | 37 ++
> drivers/clk/mediatek/Makefile | 6 +
> drivers/clk/mediatek/clk-mt6795-apmixedsys.c | 157 +++++
> drivers/clk/mediatek/clk-mt6795-infracfg.c | 148 +++++
> drivers/clk/mediatek/clk-mt6795-mfg.c | 50 ++
> drivers/clk/mediatek/clk-mt6795-mm.c | 106 ++++
> drivers/clk/mediatek/clk-mt6795-pericfg.c | 160 +++++
> drivers/clk/mediatek/clk-mt6795-topckgen.c | 610 +++++++++++++++++++
> drivers/clk/mediatek/clk-mt6795-vdecsys.c | 55 ++
> drivers/clk/mediatek/clk-mt6795-vencsys.c | 50 ++
> 10 files changed, 1379 insertions(+)
> create mode 100644 drivers/clk/mediatek/clk-mt6795-apmixedsys.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-infracfg.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-mfg.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-mm.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-pericfg.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-topckgen.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-vdecsys.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-vencsys.c
>
> diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
> index d5936cfb3bee..da8142dff3c3 100644
> --- a/drivers/clk/mediatek/Kconfig
> +++ b/drivers/clk/mediatek/Kconfig
> @@ -259,6 +259,43 @@ config COMMON_CLK_MT6779_AUDSYS
> help
> This driver supports Mediatek MT6779 audsys clocks.
>
> +config COMMON_CLK_MT6795
> + tristate "Clock driver for MediaTek MT6795"
> + depends on ARCH_MEDIATEK || COMPILE_TEST
> + select COMMON_CLK_MEDIATEK
> + default ARCH_MEDIATEK
> + help
> + This driver supports MediaTek MT6795 basic clocks and clocks
> + required for various peripherals found on MediaTek.
> +
> +config COMMON_CLK_MT6795_MFGCFG
> + tristate "Clock driver for MediaTek MT6795 mfgcfg"
> + depends on COMMON_CLK_MT6795
> + default COMMON_CLK_MT6795
> + help
> + This driver supports MediaTek MT6795 mfgcfg clocks.
> +
> +config COMMON_CLK_MT6795_MMSYS
> + tristate "Clock driver for MediaTek MT6795 mmsys"
snip...
> + { /* sentinel */ }
> +};
> +
> +static int clk_mt6795_infracfg_probe(struct platform_device *pdev)
> +{
> + struct clk_hw_onecell_data *clk_data;
> + struct device_node *node = pdev->dev.of_node;
> + void __iomem *base;
> + int ret;
> +
> + base = devm_platform_ioremap_resource(pdev, 0);
> + if (IS_ERR(base))
> + return PTR_ERR(base);
> +
> + clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK);
> + if (!clk_data)
> + return -ENOMEM;
> +
> + ret = mtk_register_reset_controller_with_dev(&pdev->dev, &clk_rst_desc);
> + if (ret)
> + goto free_clk_data;
> +
> + ret = mtk_clk_register_gates(node, infra_gates, ARRAY_SIZE(infra_gates), clk_data);
> + if (ret)
> + goto free_clk_data;
While checking the error path, I learned that
mtk_register_reset_controller_with_dev uses devm_reset_controller_register and it will
be unregister the reset automatically if probe failed.
Thanks for this patch!
Reviewed-by: Miles Chen <miles.chen@mediatek.com>
thanks,
Miles
> +
> + ret = mtk_clk_register_cpumuxes(node, cpu_muxes, ARRAY_SIZE(cpu_muxes), clk_data);
> + if (ret)
> + goto unregister_gates;
> +
> + ret = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
> + if (ret)
> + goto unregister_cpumuxes;
> +
> + return 0;
> +
> +unregister_cpumuxes:
> + mtk_clk_unregister_cpumuxes(cpu_muxes, ARRAY_SIZE(cpu_muxes), clk_data);
> +unregister_gates:
> + mtk_clk_unregister_gates(infra_gates, ARRAY_SIZE(infra_gates), clk_data);
> +free_clk_data:
> + mtk_free_clk_data(clk_data);
> + return ret;
> +}
> +
> +static int clk_mt6795_infracfg_remove(struct platform_device *pdev)
> +{
WARNING: multiple messages have this Message-ID (diff)
From: Miles Chen <miles.chen@mediatek.com>
To: <angelogioacchino.delregno@collabora.com>
Cc: <bgolaszewski@baylibre.com>, <chun-jie.chen@mediatek.com>,
<ck.hu@mediatek.com>, <devicetree@vger.kernel.org>,
<fparent@baylibre.com>, <ikjn@chromium.org>,
<jason-jh.lin@mediatek.com>, <kernel@collabora.com>,
<konrad.dybcio@somainline.org>,
<krzysztof.kozlowski+dt@linaro.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-clk@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-mediatek@lists.infradead.org>,
<marijn.suijten@somainline.org>, <martin.botka@somainline.org>,
<matthias.bgg@gmail.com>, <miles.chen@mediatek.com>,
<mturquette@baylibre.com>, <p.zabel@pengutronix.de>,
<paul.bouchara@somainline.org>, <phone-devel@vger.kernel.org>,
<rex-bc.chen@mediatek.com>, <robh+dt@kernel.org>,
<sam.shih@mediatek.com>, <sboyd@kernel.org>,
<tinghan.shen@mediatek.com>, <weiyi.lu@mediatek.com>,
<wenst@chromium.org>, <y.oudjana@protonmail.com>,
<~postmarketos/upstreaming@lists.sr.ht>
Subject: Re: [PATCH v3 7/7] clk: mediatek: Add MediaTek Helio X10 MT6795 clock drivers
Date: Sat, 25 Jun 2022 08:07:47 +0800 [thread overview]
Message-ID: <20220625000747.12582-1-miles.chen@mediatek.com> (raw)
In-Reply-To: <20220624093525.243077-8-angelogioacchino.delregno@collabora.com>
Hi Angelo,
> Add the clock drivers for the entire clock tree of MediaTek Helio X10
> MT6795, including system clocks (apmixedsys, infracfg, pericfg, topckgen)
> and multimedia clocks (mmsys, mfg, vdecsys, vencsys).
>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
> ---
> drivers/clk/mediatek/Kconfig | 37 ++
> drivers/clk/mediatek/Makefile | 6 +
> drivers/clk/mediatek/clk-mt6795-apmixedsys.c | 157 +++++
> drivers/clk/mediatek/clk-mt6795-infracfg.c | 148 +++++
> drivers/clk/mediatek/clk-mt6795-mfg.c | 50 ++
> drivers/clk/mediatek/clk-mt6795-mm.c | 106 ++++
> drivers/clk/mediatek/clk-mt6795-pericfg.c | 160 +++++
> drivers/clk/mediatek/clk-mt6795-topckgen.c | 610 +++++++++++++++++++
> drivers/clk/mediatek/clk-mt6795-vdecsys.c | 55 ++
> drivers/clk/mediatek/clk-mt6795-vencsys.c | 50 ++
> 10 files changed, 1379 insertions(+)
> create mode 100644 drivers/clk/mediatek/clk-mt6795-apmixedsys.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-infracfg.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-mfg.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-mm.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-pericfg.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-topckgen.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-vdecsys.c
> create mode 100644 drivers/clk/mediatek/clk-mt6795-vencsys.c
>
> diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
> index d5936cfb3bee..da8142dff3c3 100644
> --- a/drivers/clk/mediatek/Kconfig
> +++ b/drivers/clk/mediatek/Kconfig
> @@ -259,6 +259,43 @@ config COMMON_CLK_MT6779_AUDSYS
> help
> This driver supports Mediatek MT6779 audsys clocks.
>
> +config COMMON_CLK_MT6795
> + tristate "Clock driver for MediaTek MT6795"
> + depends on ARCH_MEDIATEK || COMPILE_TEST
> + select COMMON_CLK_MEDIATEK
> + default ARCH_MEDIATEK
> + help
> + This driver supports MediaTek MT6795 basic clocks and clocks
> + required for various peripherals found on MediaTek.
> +
> +config COMMON_CLK_MT6795_MFGCFG
> + tristate "Clock driver for MediaTek MT6795 mfgcfg"
> + depends on COMMON_CLK_MT6795
> + default COMMON_CLK_MT6795
> + help
> + This driver supports MediaTek MT6795 mfgcfg clocks.
> +
> +config COMMON_CLK_MT6795_MMSYS
> + tristate "Clock driver for MediaTek MT6795 mmsys"
snip...
> + { /* sentinel */ }
> +};
> +
> +static int clk_mt6795_infracfg_probe(struct platform_device *pdev)
> +{
> + struct clk_hw_onecell_data *clk_data;
> + struct device_node *node = pdev->dev.of_node;
> + void __iomem *base;
> + int ret;
> +
> + base = devm_platform_ioremap_resource(pdev, 0);
> + if (IS_ERR(base))
> + return PTR_ERR(base);
> +
> + clk_data = mtk_alloc_clk_data(CLK_INFRA_NR_CLK);
> + if (!clk_data)
> + return -ENOMEM;
> +
> + ret = mtk_register_reset_controller_with_dev(&pdev->dev, &clk_rst_desc);
> + if (ret)
> + goto free_clk_data;
> +
> + ret = mtk_clk_register_gates(node, infra_gates, ARRAY_SIZE(infra_gates), clk_data);
> + if (ret)
> + goto free_clk_data;
While checking the error path, I learned that
mtk_register_reset_controller_with_dev uses devm_reset_controller_register and it will
be unregister the reset automatically if probe failed.
Thanks for this patch!
Reviewed-by: Miles Chen <miles.chen@mediatek.com>
thanks,
Miles
> +
> + ret = mtk_clk_register_cpumuxes(node, cpu_muxes, ARRAY_SIZE(cpu_muxes), clk_data);
> + if (ret)
> + goto unregister_gates;
> +
> + ret = of_clk_add_hw_provider(node, of_clk_hw_onecell_get, clk_data);
> + if (ret)
> + goto unregister_cpumuxes;
> +
> + return 0;
> +
> +unregister_cpumuxes:
> + mtk_clk_unregister_cpumuxes(cpu_muxes, ARRAY_SIZE(cpu_muxes), clk_data);
> +unregister_gates:
> + mtk_clk_unregister_gates(infra_gates, ARRAY_SIZE(infra_gates), clk_data);
> +free_clk_data:
> + mtk_free_clk_data(clk_data);
> + return ret;
> +}
> +
> +static int clk_mt6795_infracfg_remove(struct platform_device *pdev)
> +{
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-06-25 0:07 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-24 9:35 [PATCH v3 0/7] MediaTek Helio X10 MT6795 - Clock drivers AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-24 9:35 ` [PATCH v3 1/7] dt-bindings: mediatek: Document MT6795 system controllers bindings AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-24 9:35 ` [PATCH v3 2/7] dt-bindings: clock: Add MediaTek Helio X10 MT6795 clock bindings AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-25 20:30 ` Krzysztof Kozlowski
2022-06-25 20:30 ` Krzysztof Kozlowski
2022-06-27 8:49 ` AngeloGioacchino Del Regno
2022-06-27 8:49 ` AngeloGioacchino Del Regno
2022-06-27 8:59 ` Krzysztof Kozlowski
2022-06-27 8:59 ` Krzysztof Kozlowski
2022-06-24 9:35 ` [PATCH v3 3/7] dt-bindings: reset: Add bindings for MT6795 Helio X10 reset controllers AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-25 20:30 ` Krzysztof Kozlowski
2022-06-25 20:30 ` Krzysztof Kozlowski
2022-06-24 9:35 ` [PATCH v3 4/7] dt-bindings: clock: mediatek: Add clock driver bindings for MT6795 AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-24 17:26 ` Rob Herring
2022-06-24 17:26 ` Rob Herring
2022-06-25 20:29 ` Krzysztof Kozlowski
2022-06-25 20:29 ` Krzysztof Kozlowski
2022-06-26 9:47 ` David Heidelberg
2022-06-26 9:47 ` David Heidelberg
2022-06-26 10:31 ` Krzysztof Kozlowski
2022-06-26 10:31 ` Krzysztof Kozlowski
2022-06-27 7:44 ` AngeloGioacchino Del Regno
2022-06-27 7:44 ` AngeloGioacchino Del Regno
2022-06-24 9:35 ` [PATCH v3 5/7] clk: mediatek: clk-apmixed: Remove unneeded __init annotation AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-25 0:07 ` Miles Chen
2022-06-25 0:07 ` Miles Chen
2022-06-24 9:35 ` [PATCH v3 6/7] clk: mediatek: Export required symbols to compile clk drivers as module AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-24 9:35 ` [PATCH v3 7/7] clk: mediatek: Add MediaTek Helio X10 MT6795 clock drivers AngeloGioacchino Del Regno
2022-06-24 9:35 ` AngeloGioacchino Del Regno
2022-06-25 0:07 ` Miles Chen [this message]
2022-06-25 0:07 ` Miles Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220625000747.12582-1-miles.chen@mediatek.com \
--to=miles.chen@mediatek.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bgolaszewski@baylibre.com \
--cc=chun-jie.chen@mediatek.com \
--cc=ck.hu@mediatek.com \
--cc=devicetree@vger.kernel.org \
--cc=fparent@baylibre.com \
--cc=ikjn@chromium.org \
--cc=jason-jh.lin@mediatek.com \
--cc=kernel@collabora.com \
--cc=konrad.dybcio@somainline.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=marijn.suijten@somainline.org \
--cc=martin.botka@somainline.org \
--cc=matthias.bgg@gmail.com \
--cc=mturquette@baylibre.com \
--cc=p.zabel@pengutronix.de \
--cc=paul.bouchara@somainline.org \
--cc=phone-devel@vger.kernel.org \
--cc=rex-bc.chen@mediatek.com \
--cc=robh+dt@kernel.org \
--cc=sam.shih@mediatek.com \
--cc=sboyd@kernel.org \
--cc=tinghan.shen@mediatek.com \
--cc=weiyi.lu@mediatek.com \
--cc=wenst@chromium.org \
--cc=y.oudjana@protonmail.com \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.