diff mbox series

[U-Boot,3/3] clk: at91: clk-system: add set/get_rate operations

Message ID 20180209033452.15448-4-wenyou.yang@microchip.com
State Accepted
Commit 162a7de5e519eb489003124d3679039d3840435c
Delegated to: Tom Rini
Headers show
Series clk: at91: add usb and plladiv drivers | expand

Commit Message

Wenyou Yang Feb. 9, 2018, 3:34 a.m. UTC
To support set/get the clock rate, add set/get_rate operations.

Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com>
---

 drivers/clk/at91/clk-system.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Tom Rini March 16, 2018, 1:50 p.m. UTC | #1
On Fri, Feb 09, 2018 at 11:34:52AM +0800, Wenyou Yang wrote:

> To support set/get the clock rate, add set/get_rate operations.
> 
> Signed-off-by: Wenyou Yang <wenyou.yang@microchip.com>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c
index 24b271aa18..81fe47a9d7 100644
--- a/drivers/clk/at91/clk-system.c
+++ b/drivers/clk/at91/clk-system.c
@@ -44,6 +44,30 @@  static inline int is_pck(int id)
 	return (id >= 8) && (id <= 15);
 }
 
+static ulong system_clk_get_rate(struct clk *clk)
+{
+	struct clk clk_dev;
+	int ret;
+
+	ret = clk_get_by_index(clk->dev, 0, &clk_dev);
+	if (ret)
+		return -EINVAL;
+
+	return clk_get_rate(&clk_dev);
+}
+
+static ulong system_clk_set_rate(struct clk *clk, ulong rate)
+{
+	struct clk clk_dev;
+	int ret;
+
+	ret = clk_get_by_index(clk->dev, 0, &clk_dev);
+	if (ret)
+		return -EINVAL;
+
+	return clk_set_rate(&clk_dev, rate);
+}
+
 static int system_clk_enable(struct clk *clk)
 {
 	struct pmc_platdata *plat = dev_get_platdata(clk->dev);
@@ -73,6 +97,8 @@  static int system_clk_enable(struct clk *clk)
 
 static struct clk_ops system_clk_ops = {
 	.of_xlate = at91_clk_of_xlate,
+	.get_rate = system_clk_get_rate,
+	.set_rate = system_clk_set_rate,
 	.enable = system_clk_enable,
 };