linux/drivers/clk/samsung
Sam Protsenko 61f4399c74 clk: samsung: Add CPU clock support for Exynos850
Implement CPU clock control for Exynos850 SoC. It follows the same
procedure which is already implemented for other SoCs in clk-cpu.c:

1. Set the correct rate for the alternate parent (if needed) before
   switching to use it as the CPU clock
2. Switch to the alternate parent, so the CPU continues to get clocked
   while the PLL is being re-configured
3. Adjust the dividers for the CPU related buses (ACLK, ATCLK, etc)
4. Re-configure the PLL for the new CPU clock rate. It's done
   automatically, as the CPU clock rate change propagates to the PLL
   clock, because the CPU clock has CLK_SET_RATE_PARENT flag set in
   exynos_register_cpu_clock()
5. Once the PLL is locked, set it back as the CPU clock source
6. Set alternate parent clock rate back to max speed

As in already existing clk-cpu.c code, the divider and mux clocks are
configured in a low-level fashion (using direct register access instead
of CCF API), to avoid affecting how DIV and MUX clock flags are declared
in the actual clock driver (clk-exynos850.c).

No functional change. This patch adds support for Exynos850 CPU clock,
but doesn't enable it per se.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Link: https://lore.kernel.org/r/20240224202053.25313-13-semen.protsenko@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2024-02-25 17:07:34 +01:00
..
clk-cpu.c clk: samsung: Add CPU clock support for Exynos850 2024-02-25 17:07:34 +01:00
clk-cpu.h clk: samsung: Add CPU clock support for Exynos850 2024-02-25 17:07:34 +01:00
clk-exynos4.c clk: samsung: Pass register layout type explicitly to CLK_CPU() 2024-02-25 16:58:03 +01:00
clk-exynos5-subcmu.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-exynos5-subcmu.h clk: samsung: Change signature of exynos5_subcmus_init() function 2019-08-08 13:53:42 -07:00
clk-exynos7.c clk: exynos7: Mark aclk_fsys1_200 as critical 2021-04-07 11:37:17 +02:00
clk-exynos850.c clk: samsung: exynos850: Propagate SPI IPCLK rate change 2024-02-01 11:24:09 +01:00
clk-exynos3250.c clk: samsung: Pass register layout type explicitly to CLK_CPU() 2024-02-25 16:58:03 +01:00
clk-exynos4412-isp.c clk: samsung: exynos4: do not define number of clocks in bindings 2023-08-15 07:48:51 +02:00
clk-exynos5250.c clk: samsung: Pass register layout type explicitly to CLK_CPU() 2024-02-25 16:58:03 +01:00
clk-exynos5260.c clk: samsung: exynos5260: do not define number of clocks in bindings 2023-08-15 07:49:12 +02:00
clk-exynos5260.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
clk-exynos5410.c clk: samsung: exynos5410: do not define number of clocks in bindings 2023-08-15 07:49:19 +02:00
clk-exynos5420.c clk: samsung: Pass register layout type explicitly to CLK_CPU() 2024-02-25 16:58:03 +01:00
clk-exynos5433.c clk: samsung: Pass register layout type explicitly to CLK_CPU() 2024-02-25 16:58:03 +01:00
clk-exynos7885.c Merge branches 'clk-imx', 'clk-samsung', 'clk-annotate', 'clk-marvell' and 'clk-lmk' into clk-next 2023-08-30 14:39:19 -07:00
clk-exynos-arm64.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-exynos-arm64.h clk: samsung: exynos5433: Extract PM support to common ARM64 layer 2023-03-07 08:38:54 +01:00
clk-exynos-audss.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-exynos-clkout.c clk: Use device_get_match_data() 2023-10-23 20:16:21 -07:00
clk-exynosautov9.c Merge branches 'clk-imx', 'clk-samsung', 'clk-annotate', 'clk-marvell' and 'clk-lmk' into clk-next 2023-08-30 14:39:19 -07:00
clk-fsd.c clk: Explicitly include correct DT includes 2023-07-19 13:13:16 -07:00
clk-gs101.c clk: samsung: gs101: add support for cmu_peric1 2024-02-07 16:33:16 +01:00
clk-pll.c clk: samsung: clk-pll: Add support for pll_{0516,0517,518} 2023-12-12 20:28:12 +01:00
clk-pll.h clk: samsung: clk-pll: Add support for pll_{0516,0517,518} 2023-12-12 20:28:12 +01:00
clk-s3c64xx.c clk: samsung: Set dev in samsung_clk_init() 2023-03-06 16:55:26 +01:00
clk-s5pv210-audss.c clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource() 2021-09-13 18:01:09 +02:00
clk-s5pv210.c clk: samsung: Set dev in samsung_clk_init() 2023-03-06 16:55:26 +01:00
clk.c clk: samsung: Extract clocks registration to common function 2023-03-07 08:38:54 +01:00
clk.h clk: samsung: Pass register layout type explicitly to CLK_CPU() 2024-02-25 16:58:03 +01:00
Kconfig clk: samsung: add CONFIG_OF dependency 2023-06-12 11:45:20 +02:00
Makefile clk: samsung: clk-gs101: Add cmu_top, cmu_misc and cmu_apm support 2023-12-12 20:29:03 +01:00