Better to register the 2 clock as 2 different drivers because they work
slightly differently depending on power_bit and powerup_set bits coming
on next patches.

Signed-off-by: Giulio Benetti <giulio.bene...@benettiengineering.com>
---
 drivers/clk/imx/clk-pllv3.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/clk/imx/clk-pllv3.c b/drivers/clk/imx/clk-pllv3.c
index fbb7b24d5e..d1e4c3fe30 100644
--- a/drivers/clk/imx/clk-pllv3.c
+++ b/drivers/clk/imx/clk-pllv3.c
@@ -13,7 +13,8 @@
 #include <clk.h>
 #include "clk.h"
 
-#define UBOOT_DM_CLK_IMX_PLLV3 "imx_clk_pllv3"
+#define UBOOT_DM_CLK_IMX_PLLV3_GENERIC "imx_clk_pllv3_generic"
+#define UBOOT_DM_CLK_IMX_PLLV3_USB     "imx_clk_pllv3_usb"
 
 struct clk_pllv3 {
        struct clk      clk;
@@ -24,7 +25,7 @@ struct clk_pllv3 {
 
 #define to_clk_pllv3(_clk) container_of(_clk, struct clk_pllv3, clk)
 
-static ulong clk_pllv3_get_rate(struct clk *clk)
+static ulong clk_pllv3_generic_get_rate(struct clk *clk)
 {
        struct clk_pllv3 *pll = to_clk_pllv3(dev_get_clk_ptr(clk->dev));
        unsigned long parent_rate = clk_get_parent_rate(clk);
@@ -35,7 +36,7 @@ static ulong clk_pllv3_get_rate(struct clk *clk)
 }
 
 static const struct clk_ops clk_pllv3_generic_ops = {
-       .get_rate       = clk_pllv3_get_rate,
+       .get_rate       = clk_pllv3_generic_get_rate,
 };
 
 struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
@@ -53,8 +54,10 @@ struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const 
char *name,
 
        switch (type) {
        case IMX_PLLV3_GENERIC:
+               drv_name = UBOOT_DM_CLK_IMX_PLLV3_GENERIC;
+               break;
        case IMX_PLLV3_USB:
-               drv_name = UBOOT_DM_CLK_IMX_PLLV3;
+               drv_name = UBOOT_DM_CLK_IMX_PLLV3_USB;
                break;
        default:
                kfree(pll);
@@ -75,7 +78,14 @@ struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const 
char *name,
 }
 
 U_BOOT_DRIVER(clk_pllv3_generic) = {
-       .name   = UBOOT_DM_CLK_IMX_PLLV3,
+       .name   = UBOOT_DM_CLK_IMX_PLLV3_GENERIC,
+       .id     = UCLASS_CLK,
+       .ops    = &clk_pllv3_generic_ops,
+       .flags = DM_FLAG_PRE_RELOC,
+};
+
+U_BOOT_DRIVER(clk_pllv3_usb) = {
+       .name   = UBOOT_DM_CLK_IMX_PLLV3_USB,
        .id     = UCLASS_CLK,
        .ops    = &clk_pllv3_generic_ops,
        .flags = DM_FLAG_PRE_RELOC,
-- 
2.20.1

Reply via email to