clk: introduce enable_count
authorPeng Fan <peng.fan@nxp.com>
Wed, 21 Aug 2019 13:35:03 +0000 (13:35 +0000)
committerLukasz Majewski <lukma@denx.de>
Wed, 21 Aug 2019 22:10:09 +0000 (00:10 +0200)
As what Linux Kernel 5.3.0 provides when enable/disable clk,
there is an enable_count in clk_core_disable/enable. Introduce
enable_count to track the clk enable/disable count when
clk_enable/disable for CCF. And Initialize enable_count to 0 when
register the clk.

And clk tree dump with enable_count will be supported, it will
be easy for us to check the clk status with enable_count

Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/clk/clk.c
drivers/clk/clk_fixed_rate.c
include/clk.h

index 39b3087067a63b097b4c6b5d03e378c66f7b1fb6..1cf9987f6cbb8d87ca69d08ee1c361c62f8ee78f 100644 (file)
@@ -40,6 +40,7 @@ int clk_register(struct clk *clk, const char *drv_name,
                return ret;
        }
 
+       clk->enable_count = 0;
        /* Store back pointer to clk from udevice */
        clk->dev->uclass_priv = clk;
 
index 08cce0d79b71033a7d387d4e6ffe045c04958b8a..f51126793eaed285756b4af8d5cb157e8ef11934 100644 (file)
@@ -27,6 +27,7 @@ static int clk_fixed_rate_ofdata_to_platdata(struct udevice *dev)
        /* Make fixed rate clock accessible from higher level struct clk */
        dev->uclass_priv = clk;
        clk->dev = dev;
+       clk->enable_count = 0;
 
        return 0;
 }
index 3ca2796b5774990dae8560bb7f4e12fd3f135d8b..18b2e3ca54c53ab37d2ac743d9327b7c71424dc0 100644 (file)
@@ -61,6 +61,7 @@ struct clk {
        struct udevice *dev;
        long long rate; /* in HZ */
        u32 flags;
+       int enable_count;
        /*
         * Written by of_xlate. In the future, we might add more fields here.
         */