clk: qcom: branch: Add a helper for setting the enable bit
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Mon, 12 Feb 2024 16:10:46 +0000 (17:10 +0100)
committerBjorn Andersson <andersson@kernel.org>
Wed, 14 Feb 2024 17:59:07 +0000 (11:59 -0600)
We hardcode some clocks to be always-on, as they're essential to the
functioning of the SoC / some peripherals. Add a helper to do so
to make the writes less magic.

Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20240212-topic-clk_branch_en-v7-1-5b79eb7278b2@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/clk-branch.h

index 8ffed603c050b370f7beec5842decadf95072a53..f1b3b635ff3248e8c6174b14e5725bbc31a272fa 100644 (file)
@@ -64,6 +64,7 @@ struct clk_mem_branch {
 #define CBCR_FORCE_MEM_PERIPH_OFF      BIT(12)
 #define CBCR_WAKEUP                    GENMASK(11, 8)
 #define CBCR_SLEEP                     GENMASK(7, 4)
+#define CBCR_CLOCK_ENABLE              BIT(0)
 
 static inline void qcom_branch_set_force_mem_core(struct regmap *regmap,
                                                  struct clk_branch clk, bool on)
@@ -98,6 +99,11 @@ static inline void qcom_branch_set_sleep(struct regmap *regmap, struct clk_branc
                           FIELD_PREP(CBCR_SLEEP, val));
 }
 
+static inline void qcom_branch_set_clk_en(struct regmap *regmap, u32 cbcr)
+{
+       regmap_update_bits(regmap, cbcr, CBCR_CLOCK_ENABLE, CBCR_CLOCK_ENABLE);
+}
+
 extern const struct clk_ops clk_branch_ops;
 extern const struct clk_ops clk_branch2_ops;
 extern const struct clk_ops clk_branch_simple_ops;