0034-clk-starfive-jh7110-sys-Modify-PLL-clocks-source.patch 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. From ffd7ee4fbd69d477a2156d9cba6ae80434a4c894 Mon Sep 17 00:00:00 2001
  2. From: Xingyu Wu <[email protected]>
  3. Date: Tue, 14 Mar 2023 17:16:07 +0800
  4. Subject: [PATCH 034/122] clk: starfive: jh7110-sys: Modify PLL clocks source
  5. Modify PLL clocks source to be got from dts instead of
  6. the fixed factor clocks.
  7. Signed-off-by: Xingyu Wu <[email protected]>
  8. ---
  9. drivers/clk/starfive/Kconfig | 1 +
  10. .../clk/starfive/clk-starfive-jh7110-sys.c | 31 ++++---------------
  11. 2 files changed, 7 insertions(+), 25 deletions(-)
  12. --- a/drivers/clk/starfive/Kconfig
  13. +++ b/drivers/clk/starfive/Kconfig
  14. @@ -35,6 +35,7 @@ config CLK_STARFIVE_JH7110_SYS
  15. select AUXILIARY_BUS
  16. select CLK_STARFIVE_JH71X0
  17. select RESET_STARFIVE_JH7110
  18. + select CLK_STARFIVE_JH7110_PLL
  19. default ARCH_STARFIVE
  20. help
  21. Say yes here to support the system clock controller on the
  22. --- a/drivers/clk/starfive/clk-starfive-jh7110-sys.c
  23. +++ b/drivers/clk/starfive/clk-starfive-jh7110-sys.c
  24. @@ -404,29 +404,6 @@ static int __init jh7110_syscrg_probe(st
  25. dev_set_drvdata(priv->dev, (void *)(&priv->base));
  26. - /*
  27. - * These PLL clocks are not actually fixed factor clocks and can be
  28. - * controlled by the syscon registers of JH7110. They will be dropped
  29. - * and registered in the PLL clock driver instead.
  30. - */
  31. - /* 24MHz -> 1000.0MHz */
  32. - priv->pll[0] = devm_clk_hw_register_fixed_factor(priv->dev, "pll0_out",
  33. - "osc", 0, 125, 3);
  34. - if (IS_ERR(priv->pll[0]))
  35. - return PTR_ERR(priv->pll[0]);
  36. -
  37. - /* 24MHz -> 1066.0MHz */
  38. - priv->pll[1] = devm_clk_hw_register_fixed_factor(priv->dev, "pll1_out",
  39. - "osc", 0, 533, 12);
  40. - if (IS_ERR(priv->pll[1]))
  41. - return PTR_ERR(priv->pll[1]);
  42. -
  43. - /* 24MHz -> 1188.0MHz */
  44. - priv->pll[2] = devm_clk_hw_register_fixed_factor(priv->dev, "pll2_out",
  45. - "osc", 0, 99, 2);
  46. - if (IS_ERR(priv->pll[2]))
  47. - return PTR_ERR(priv->pll[2]);
  48. -
  49. for (idx = 0; idx < JH7110_SYSCLK_END; idx++) {
  50. u32 max = jh7110_sysclk_data[idx].max;
  51. struct clk_parent_data parents[4] = {};
  52. @@ -464,8 +441,12 @@ static int __init jh7110_syscrg_probe(st
  53. parents[i].fw_name = "tdm_ext";
  54. else if (pidx == JH7110_SYSCLK_MCLK_EXT)
  55. parents[i].fw_name = "mclk_ext";
  56. - else
  57. - parents[i].hw = priv->pll[pidx - JH7110_SYSCLK_PLL0_OUT];
  58. + else if (pidx == JH7110_SYSCLK_PLL0_OUT)
  59. + parents[i].fw_name = "pll0_out";
  60. + else if (pidx == JH7110_SYSCLK_PLL1_OUT)
  61. + parents[i].fw_name = "pll1_out";
  62. + else if (pidx == JH7110_SYSCLK_PLL2_OUT)
  63. + parents[i].fw_name = "pll2_out";
  64. }
  65. clk->hw.init = &init;