clk: actions: Cache regmap info in private clock descriptor
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Fri, 10 Aug 2018 09:51:05 +0000 (15:21 +0530)
committerStephen Boyd <sboyd@kernel.org>
Tue, 16 Oct 2018 21:40:54 +0000 (14:40 -0700)
In order to support the reset controller, regmap info needs to
be cached in the private clock descriptor, owl_clk_desc. Hence,
save that and also make the clock descriptor struct non const.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/actions/owl-common.c
drivers/clk/actions/owl-common.h
drivers/clk/actions/owl-s700.c
drivers/clk/actions/owl-s900.c

index 61c1071..32dd29e 100644 (file)
@@ -39,7 +39,7 @@ static void owl_clk_set_regmap(const struct owl_clk_desc *desc,
 }
 
 int owl_clk_regmap_init(struct platform_device *pdev,
-                        const struct owl_clk_desc *desc)
+                       struct owl_clk_desc *desc)
 {
        void __iomem *base;
        struct regmap *regmap;
@@ -57,6 +57,7 @@ int owl_clk_regmap_init(struct platform_device *pdev,
        }
 
        owl_clk_set_regmap(desc, regmap);
+       desc->regmap = regmap;
 
        return 0;
 }
index 4fd726e..56f01f7 100644 (file)
@@ -26,6 +26,7 @@ struct owl_clk_desc {
        struct owl_clk_common           **clks;
        unsigned long                   num_clks;
        struct clk_hw_onecell_data      *hw_clks;
+       struct regmap                   *regmap;
 };
 
 static inline struct owl_clk_common *
@@ -35,7 +36,7 @@ static inline struct owl_clk_common *
 }
 
 int owl_clk_regmap_init(struct platform_device *pdev,
-                        const struct owl_clk_desc *desc);
+                       struct owl_clk_desc *desc);
 int owl_clk_probe(struct device *dev, struct clk_hw_onecell_data *hw_clks);
 
 #endif /* _OWL_COMMON_H_ */
index 5e95313..e7cacd6 100644 (file)
@@ -569,7 +569,7 @@ static struct clk_hw_onecell_data s700_hw_clks = {
                .num    = CLK_NR_CLKS,
 };
 
-static const struct owl_clk_desc s700_clk_desc = {
+static struct owl_clk_desc s700_clk_desc = {
        .clks       = s700_clks,
        .num_clks   = ARRAY_SIZE(s700_clks),
 
@@ -578,7 +578,7 @@ static const struct owl_clk_desc s700_clk_desc = {
 
 static int s700_clk_probe(struct platform_device *pdev)
 {
-       const struct owl_clk_desc *desc;
+       struct owl_clk_desc *desc;
 
        desc = &s700_clk_desc;
        owl_clk_regmap_init(pdev, desc);
index 7f60ed6..bb7ee87 100644 (file)
@@ -684,7 +684,7 @@ static struct clk_hw_onecell_data s900_hw_clks = {
        .num    = CLK_NR_CLKS,
 };
 
-static const struct owl_clk_desc s900_clk_desc = {
+static struct owl_clk_desc s900_clk_desc = {
        .clks       = s900_clks,
        .num_clks   = ARRAY_SIZE(s900_clks),
 
@@ -693,7 +693,7 @@ static const struct owl_clk_desc s900_clk_desc = {
 
 static int s900_clk_probe(struct platform_device *pdev)
 {
-       const struct owl_clk_desc *desc;
+       struct owl_clk_desc *desc;
 
        desc = &s900_clk_desc;
        owl_clk_regmap_init(pdev, desc);