248-v6.8-clk-mediatek-add-pcw_chg_bit-control-for-PLLs-of-MT7.patch 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. From d9bf944beaaad1890ad3fcb755c61e1c7e4c5630 Mon Sep 17 00:00:00 2001
  2. From: Sam Shih <[email protected]>
  3. Date: Sun, 17 Dec 2023 21:50:07 +0000
  4. Subject: [PATCH 3/4] clk: mediatek: add pcw_chg_bit control for PLLs of MT7988
  5. Introduce pcw_chg_bit member to struct mtk_pll_data and use it instead
  6. of the previously hardcoded PCW_CHG_MASK macro if set.
  7. This will needed for clocks on the MT7988 SoC.
  8. Signed-off-by: Sam Shih <[email protected]>
  9. Signed-off-by: Daniel Golle <[email protected]>
  10. Reviewed-by: AngeloGioacchino Del Regno <[email protected]>
  11. Link: https://lore.kernel.org/r/3b9c65ddb08c8bedf790aacf29871af026b6f0b7.1702849494.git.daniel@makrotopia.org
  12. Signed-off-by: Stephen Boyd <[email protected]>
  13. ---
  14. drivers/clk/mediatek/clk-pll.c | 5 +++--
  15. drivers/clk/mediatek/clk-pll.h | 1 +
  16. 2 files changed, 4 insertions(+), 2 deletions(-)
  17. --- a/drivers/clk/mediatek/clk-pll.c
  18. +++ b/drivers/clk/mediatek/clk-pll.c
  19. @@ -23,7 +23,7 @@
  20. #define CON0_BASE_EN BIT(0)
  21. #define CON0_PWR_ON BIT(0)
  22. #define CON0_ISO_EN BIT(1)
  23. -#define PCW_CHG_MASK BIT(31)
  24. +#define PCW_CHG_BIT 31
  25. #define AUDPLL_TUNER_EN BIT(31)
  26. @@ -114,7 +114,8 @@ static void mtk_pll_set_rate_regs(struct
  27. pll->data->pcw_shift);
  28. val |= pcw << pll->data->pcw_shift;
  29. writel(val, pll->pcw_addr);
  30. - chg = readl(pll->pcw_chg_addr) | PCW_CHG_MASK;
  31. + chg = readl(pll->pcw_chg_addr) |
  32. + BIT(pll->data->pcw_chg_bit ? : PCW_CHG_BIT);
  33. writel(chg, pll->pcw_chg_addr);
  34. if (pll->tuner_addr)
  35. writel(val + 1, pll->tuner_addr);
  36. --- a/drivers/clk/mediatek/clk-pll.h
  37. +++ b/drivers/clk/mediatek/clk-pll.h
  38. @@ -48,6 +48,7 @@ struct mtk_pll_data {
  39. const char *parent_name;
  40. u32 en_reg;
  41. u8 pll_en_bit; /* Assume 0, indicates BIT(0) by default */
  42. + u8 pcw_chg_bit;
  43. };
  44. /*