All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chun-Jie Chen <chun-jie.chen@mediatek.com>
To: Matthias Brugger <matthias.bgg@gmail.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Nicolas Boichat <drinkcat@chromium.org>,
	Rob Herring <robh+dt@kernel.org>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>, <linux-clk@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <srv_heupstream@mediatek.com>,
	<Project_Global_Chrome_Upstream_Group@mediatek.com>,
	Weiyi Lu <weiyi.lu@mediatek.com>,
	Chun-Jie Chen <chun-jie.chen@mediatek.com>
Subject: [v11 06/19] clk: mediatek: Add mtk_clk_simple_probe() to simplify clock providers
Date: Wed, 30 Jun 2021 21:27:51 +0800	[thread overview]
Message-ID: <20210630132804.20436-7-chun-jie.chen@mediatek.com> (raw)
In-Reply-To: <20210630132804.20436-1-chun-jie.chen@mediatek.com>

Most of subsystem clock providers only need to register clock gates
in their probe() function.
To reduce the duplicated code by add a generic function.

Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Signed-off-by: Chun-Jie Chen <chun-jie.chen@mediatek.com>
---
 drivers/clk/mediatek/clk-mtk.c | 23 +++++++++++++++++++++++
 drivers/clk/mediatek/clk-mtk.h |  8 ++++++++
 2 files changed, 31 insertions(+)

diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index 37d2aa32175e..4b6096c44d74 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -13,6 +13,7 @@
 #include <linux/clkdev.h>
 #include <linux/mfd/syscon.h>
 #include <linux/device.h>
+#include <linux/of_device.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
@@ -286,3 +287,25 @@ void mtk_clk_register_dividers(const struct mtk_clk_divider *mcds,
 			clk_data->clks[mcd->id] = clk;
 	}
 }
+
+int mtk_clk_simple_probe(struct platform_device *pdev)
+{
+	const struct mtk_clk_desc *mcd;
+	struct clk_onecell_data *clk_data;
+	struct device_node *node = pdev->dev.of_node;
+	int r;
+
+	mcd = of_device_get_match_data(&pdev->dev);
+	if (!mcd)
+		return -EINVAL;
+
+	clk_data = mtk_alloc_clk_data(mcd->num_clks);
+	if (!clk_data)
+		return -ENOMEM;
+
+	r = mtk_clk_register_gates(node, mcd->clks, mcd->num_clks, clk_data);
+	if (r)
+		return r;
+
+	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+}
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
index 31c7cb304508..7de41c3b3206 100644
--- a/drivers/clk/mediatek/clk-mtk.h
+++ b/drivers/clk/mediatek/clk-mtk.h
@@ -10,6 +10,7 @@
 #include <linux/regmap.h>
 #include <linux/bitops.h>
 #include <linux/clk-provider.h>
+#include <linux/platform_device.h>
 
 struct clk;
 struct clk_onecell_data;
@@ -250,4 +251,11 @@ void mtk_register_reset_controller(struct device_node *np,
 void mtk_register_reset_controller_set_clr(struct device_node *np,
 	unsigned int num_regs, int regofs);
 
+struct mtk_clk_desc {
+	const struct mtk_gate *clks;
+	size_t num_clks;
+};
+
+int mtk_clk_simple_probe(struct platform_device *pdev);
+
 #endif /* __DRV_CLK_MTK_H */
-- 
2.18.0


WARNING: multiple messages have this Message-ID (diff)
From: Chun-Jie Chen <chun-jie.chen@mediatek.com>
To: Matthias Brugger <matthias.bgg@gmail.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Nicolas Boichat <drinkcat@chromium.org>,
	Rob Herring <robh+dt@kernel.org>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>, <linux-clk@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <srv_heupstream@mediatek.com>,
	<Project_Global_Chrome_Upstream_Group@mediatek.com>,
	Weiyi Lu <weiyi.lu@mediatek.com>,
	Chun-Jie Chen <chun-jie.chen@mediatek.com>
Subject: [v11 06/19] clk: mediatek: Add mtk_clk_simple_probe() to simplify clock providers
Date: Wed, 30 Jun 2021 21:27:51 +0800	[thread overview]
Message-ID: <20210630132804.20436-7-chun-jie.chen@mediatek.com> (raw)
In-Reply-To: <20210630132804.20436-1-chun-jie.chen@mediatek.com>

Most of subsystem clock providers only need to register clock gates
in their probe() function.
To reduce the duplicated code by add a generic function.

Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Signed-off-by: Chun-Jie Chen <chun-jie.chen@mediatek.com>
---
 drivers/clk/mediatek/clk-mtk.c | 23 +++++++++++++++++++++++
 drivers/clk/mediatek/clk-mtk.h |  8 ++++++++
 2 files changed, 31 insertions(+)

diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index 37d2aa32175e..4b6096c44d74 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -13,6 +13,7 @@
 #include <linux/clkdev.h>
 #include <linux/mfd/syscon.h>
 #include <linux/device.h>
+#include <linux/of_device.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
@@ -286,3 +287,25 @@ void mtk_clk_register_dividers(const struct mtk_clk_divider *mcds,
 			clk_data->clks[mcd->id] = clk;
 	}
 }
+
+int mtk_clk_simple_probe(struct platform_device *pdev)
+{
+	const struct mtk_clk_desc *mcd;
+	struct clk_onecell_data *clk_data;
+	struct device_node *node = pdev->dev.of_node;
+	int r;
+
+	mcd = of_device_get_match_data(&pdev->dev);
+	if (!mcd)
+		return -EINVAL;
+
+	clk_data = mtk_alloc_clk_data(mcd->num_clks);
+	if (!clk_data)
+		return -ENOMEM;
+
+	r = mtk_clk_register_gates(node, mcd->clks, mcd->num_clks, clk_data);
+	if (r)
+		return r;
+
+	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+}
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
index 31c7cb304508..7de41c3b3206 100644
--- a/drivers/clk/mediatek/clk-mtk.h
+++ b/drivers/clk/mediatek/clk-mtk.h
@@ -10,6 +10,7 @@
 #include <linux/regmap.h>
 #include <linux/bitops.h>
 #include <linux/clk-provider.h>
+#include <linux/platform_device.h>
 
 struct clk;
 struct clk_onecell_data;
@@ -250,4 +251,11 @@ void mtk_register_reset_controller(struct device_node *np,
 void mtk_register_reset_controller_set_clr(struct device_node *np,
 	unsigned int num_regs, int regofs);
 
+struct mtk_clk_desc {
+	const struct mtk_gate *clks;
+	size_t num_clks;
+};
+
+int mtk_clk_simple_probe(struct platform_device *pdev);
+
 #endif /* __DRV_CLK_MTK_H */
-- 
2.18.0
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Chun-Jie Chen <chun-jie.chen@mediatek.com>
To: Matthias Brugger <matthias.bgg@gmail.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Nicolas Boichat <drinkcat@chromium.org>,
	Rob Herring <robh+dt@kernel.org>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>, <linux-clk@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <srv_heupstream@mediatek.com>,
	<Project_Global_Chrome_Upstream_Group@mediatek.com>,
	Weiyi Lu <weiyi.lu@mediatek.com>,
	Chun-Jie Chen <chun-jie.chen@mediatek.com>
Subject: [v11 06/19] clk: mediatek: Add mtk_clk_simple_probe() to simplify clock providers
Date: Wed, 30 Jun 2021 21:27:51 +0800	[thread overview]
Message-ID: <20210630132804.20436-7-chun-jie.chen@mediatek.com> (raw)
In-Reply-To: <20210630132804.20436-1-chun-jie.chen@mediatek.com>

Most of subsystem clock providers only need to register clock gates
in their probe() function.
To reduce the duplicated code by add a generic function.

Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
Signed-off-by: Chun-Jie Chen <chun-jie.chen@mediatek.com>
---
 drivers/clk/mediatek/clk-mtk.c | 23 +++++++++++++++++++++++
 drivers/clk/mediatek/clk-mtk.h |  8 ++++++++
 2 files changed, 31 insertions(+)

diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index 37d2aa32175e..4b6096c44d74 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -13,6 +13,7 @@
 #include <linux/clkdev.h>
 #include <linux/mfd/syscon.h>
 #include <linux/device.h>
+#include <linux/of_device.h>
 
 #include "clk-mtk.h"
 #include "clk-gate.h"
@@ -286,3 +287,25 @@ void mtk_clk_register_dividers(const struct mtk_clk_divider *mcds,
 			clk_data->clks[mcd->id] = clk;
 	}
 }
+
+int mtk_clk_simple_probe(struct platform_device *pdev)
+{
+	const struct mtk_clk_desc *mcd;
+	struct clk_onecell_data *clk_data;
+	struct device_node *node = pdev->dev.of_node;
+	int r;
+
+	mcd = of_device_get_match_data(&pdev->dev);
+	if (!mcd)
+		return -EINVAL;
+
+	clk_data = mtk_alloc_clk_data(mcd->num_clks);
+	if (!clk_data)
+		return -ENOMEM;
+
+	r = mtk_clk_register_gates(node, mcd->clks, mcd->num_clks, clk_data);
+	if (r)
+		return r;
+
+	return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
+}
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
index 31c7cb304508..7de41c3b3206 100644
--- a/drivers/clk/mediatek/clk-mtk.h
+++ b/drivers/clk/mediatek/clk-mtk.h
@@ -10,6 +10,7 @@
 #include <linux/regmap.h>
 #include <linux/bitops.h>
 #include <linux/clk-provider.h>
+#include <linux/platform_device.h>
 
 struct clk;
 struct clk_onecell_data;
@@ -250,4 +251,11 @@ void mtk_register_reset_controller(struct device_node *np,
 void mtk_register_reset_controller_set_clr(struct device_node *np,
 	unsigned int num_regs, int regofs);
 
+struct mtk_clk_desc {
+	const struct mtk_gate *clks;
+	size_t num_clks;
+};
+
+int mtk_clk_simple_probe(struct platform_device *pdev);
+
 #endif /* __DRV_CLK_MTK_H */
-- 
2.18.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-06-30 13:30 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-30 13:27 [v11 00/19] Mediatek MT8192 clock support Chun-Jie Chen
2021-06-30 13:27 ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 01/19] dt-bindings: ARM: Mediatek: Add new document bindings of MT8192 clock Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 14:30   ` Chun-Kuang Hu
2021-06-30 14:30     ` Chun-Kuang Hu
2021-06-30 14:30     ` Chun-Kuang Hu
2021-07-01  2:13     ` Chun-Jie Chen
2021-07-01  2:13       ` Chun-Jie Chen
2021-07-01  2:13       ` Chun-Jie Chen
2021-07-01 17:30       ` Matthias Brugger
2021-07-01 17:30         ` Matthias Brugger
2021-07-01 17:30         ` Matthias Brugger
2021-07-01 14:02   ` Rob Herring
2021-07-01 14:02     ` Rob Herring
2021-07-01 14:02     ` Rob Herring
2021-06-30 13:27 ` [v11 02/19] clk: mediatek: Add dt-bindings of MT8192 clocks Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 03/19] clk: mediatek: Get regmap without syscon compatible check Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 04/19] clk: mediatek: Fix asymmetrical PLL enable and disable control Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 05/19] clk: mediatek: Add configurable enable control to mtk_pll_data Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` Chun-Jie Chen [this message]
2021-06-30 13:27   ` [v11 06/19] clk: mediatek: Add mtk_clk_simple_probe() to simplify clock providers Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 07/19] clk: mediatek: Add MT8192 basic clocks support Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 08/19] clk: mediatek: Add MT8192 audio clock support Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 09/19] clk: mediatek: Add MT8192 camsys " Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 10/19] clk: mediatek: Add MT8192 imgsys " Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 11/19] clk: mediatek: Add MT8192 imp i2c wrapper " Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 12/19] clk: mediatek: Add MT8192 ipesys " Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 13/19] clk: mediatek: Add MT8192 mdpsys " Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27 ` [v11 14/19] clk: mediatek: Add MT8192 mfgcfg " Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:27   ` Chun-Jie Chen
2021-06-30 13:28 ` [v11 15/19] clk: mediatek: Add MT8192 mmsys " Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28 ` [v11 16/19] clk: mediatek: Add MT8192 msdc " Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28 ` [v11 17/19] clk: mediatek: Add MT8192 scp adsp " Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28 ` [v11 18/19] clk: mediatek: Add MT8192 vdecsys " Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28 ` [v11 19/19] clk: mediatek: Add MT8192 vencsys " Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie Chen
2021-06-30 13:28   ` Chun-Jie 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=20210630132804.20436-7-chun-jie.chen@mediatek.com \
    --to=chun-jie.chen@mediatek.com \
    --cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=drinkcat@chromium.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=matthias.bgg@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=srv_heupstream@mediatek.com \
    --cc=weiyi.lu@mediatek.com \
    /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.