OSDN Git Service

clk: actions: Fix AHPPREDIV-H-AHB clock chain on Owl S500 SoC
authorCristian Ciocaltea <cristian.ciocaltea@gmail.com>
Thu, 10 Jun 2021 20:05:24 +0000 (23:05 +0300)
committerStephen Boyd <sboyd@kernel.org>
Mon, 28 Jun 2021 01:45:16 +0000 (18:45 -0700)
commitfd90b5b9045274360b12cea0f2ce50f3bcfb25cc
treec74d98f74c93567b1c35d6cb0e6594f772016908
parenta8f1f03caa51aa7a69c671aa87c475034db7d368
clk: actions: Fix AHPPREDIV-H-AHB clock chain on Owl S500 SoC

There are a few issues with the setup of the Actions Semi Owl S500 SoC's
clock chain involving AHPPREDIV, H and AHB clocks:

* AHBPREDIV clock is defined as a muxer only, although it also acts as
  a divider.
* H clock is using a wrong divider register offset
* AHB is defined as a multi-rate factor clock, but it is actually just
  a fixed pass clock.

Let's provide the following fixes:

* Change AHBPREDIV clock to an ungated OWL_COMP_DIV definition.
* Use the correct register shift value in the OWL_DIVIDER definition
  for H clock
* Drop the unneeded 'ahb_factor_table[]' and change AHB clock to an
  ungated OWL_COMP_FIXED_FACTOR definition.

Fixes: ed6b4795ece4 ("clk: actions: Add clock driver for S500 SoC")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
Link: https://lore.kernel.org/r/21c1abd19a7089b65a34852ac6513961be88cbe1.1623354574.git.cristian.ciocaltea@gmail.com
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/actions/owl-s500.c