clk: qcom: alpha: Add support for programming the PLL_FSM_LEGACY_MODE bit
authorKonrad Dybcio <konrad.dybcio@somainline.org>
Wed, 21 Sep 2022 00:13:01 +0000 (02:13 +0200)
committerBjorn Andersson <andersson@kernel.org>
Wed, 28 Sep 2022 03:25:57 +0000 (22:25 -0500)
This is used on at least SM6375 and its variations.

Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20220921001303.56151-1-konrad.dybcio@somainline.org
drivers/clk/qcom/clk-alpha-pll.c
drivers/clk/qcom/clk-alpha-pll.h

index 34bb93b..1973d79 100644 (file)
@@ -27,6 +27,7 @@
 # define PLL_VOTE_FSM_RESET    BIT(21)
 # define PLL_UPDATE            BIT(22)
 # define PLL_UPDATE_BYPASS     BIT(23)
+# define PLL_FSM_LEGACY_MODE   BIT(24)
 # define PLL_OFFLINE_ACK       BIT(28)
 # define ALPHA_PLL_ACK_LATCH   BIT(29)
 # define PLL_ACTIVE_FLAG       BIT(30)
@@ -1123,6 +1124,10 @@ void clk_fabia_pll_configure(struct clk_alpha_pll *pll, struct regmap *regmap,
                regmap_update_bits(regmap, PLL_USER_CTL(pll), mask, val);
        }
 
+       if (pll->flags & SUPPORTS_FSM_LEGACY_MODE)
+               regmap_update_bits(regmap, PLL_MODE(pll), PLL_FSM_LEGACY_MODE,
+                                                       PLL_FSM_LEGACY_MODE);
+
        regmap_update_bits(regmap, PLL_MODE(pll), PLL_UPDATE_BYPASS,
                                                        PLL_UPDATE_BYPASS);
 
index 08bfda1..f9524b3 100644 (file)
@@ -72,9 +72,10 @@ struct clk_alpha_pll {
 
        const struct pll_vco *vco_table;
        size_t num_vco;
-#define SUPPORTS_OFFLINE_REQ   BIT(0)
-#define SUPPORTS_FSM_MODE      BIT(2)
+#define SUPPORTS_OFFLINE_REQ           BIT(0)
+#define SUPPORTS_FSM_MODE              BIT(2)
 #define SUPPORTS_DYNAMIC_UPDATE        BIT(3)
+#define SUPPORTS_FSM_LEGACY_MODE       BIT(4)
        u8 flags;
 
        struct clk_regmap clkr;