[v4,2/8] clk: qcom: branch: Add SLEEP/WAKE fields definitions

Message ID 20230130235926.2419776-3-konrad.dybcio@linaro.org
State New
Headers
Series [v4,1/8] clk: qcom: branch: Add helper functions for setting retain bits |

Commit Message

Konrad Dybcio Jan. 30, 2023, 11:59 p.m. UTC
  HLOS-controlled branch clocks on non-ancient Qualcomm platforms
feature SLEEP and WAKE fields which can be written to to configure
how long the clock hardware should wait internally before being
(un)gated. Some very sensitive clocks need to have these values
programmed to prevent putting the hardware in a not-exactly-good
state.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
 drivers/clk/qcom/clk-branch.h | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Dmitry Baryshkov Jan. 31, 2023, 9:07 a.m. UTC | #1
On 31/01/2023 01:59, Konrad Dybcio wrote:
> HLOS-controlled branch clocks on non-ancient Qualcomm platforms
> feature SLEEP and WAKE fields which can be written to to configure
> how long the clock hardware should wait internally before being
> (un)gated. Some very sensitive clocks need to have these values
> programmed to prevent putting the hardware in a not-exactly-good
> state.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

(I think these fields should go to the same file as other CBCR_ defs go, 
so if you adapt the suggestion in patch#1, please move them too.)

> ---
>   drivers/clk/qcom/clk-branch.h | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/clk/qcom/clk-branch.h b/drivers/clk/qcom/clk-branch.h
> index d8fc7b93ef6d..773f760a4590 100644
> --- a/drivers/clk/qcom/clk-branch.h
> +++ b/drivers/clk/qcom/clk-branch.h
> @@ -41,6 +41,8 @@ struct clk_branch {
>   #define CBCR_FORCE_MEM_CORE_ON		BIT(14)
>   #define CBCR_FORCE_MEM_PERIPH_ON	BIT(13)
>   #define CBCR_FORCE_MEM_PERIPH_OFF	BIT(12)
> +#define CBCR_WAKEUP			GENMASK(11, 8)
> +#define CBCR_SLEEP			GENMASK(7, 4)
>   
>   static inline void qcom_branch_set_force_mem_core(struct regmap *regmap, u32 reg, bool on)
>   {
  

Patch

diff --git a/drivers/clk/qcom/clk-branch.h b/drivers/clk/qcom/clk-branch.h
index d8fc7b93ef6d..773f760a4590 100644
--- a/drivers/clk/qcom/clk-branch.h
+++ b/drivers/clk/qcom/clk-branch.h
@@ -41,6 +41,8 @@  struct clk_branch {
 #define CBCR_FORCE_MEM_CORE_ON		BIT(14)
 #define CBCR_FORCE_MEM_PERIPH_ON	BIT(13)
 #define CBCR_FORCE_MEM_PERIPH_OFF	BIT(12)
+#define CBCR_WAKEUP			GENMASK(11, 8)
+#define CBCR_SLEEP			GENMASK(7, 4)
 
 static inline void qcom_branch_set_force_mem_core(struct regmap *regmap, u32 reg, bool on)
 {