[PATCH v2 2/7] clk: move U-Boot CCF to clk/uccf
Casey Connolly <[email protected]> Wed, 01 Apr 2026 16:34:03 +0200
| Newsgroups | io.groups.u-boot-amlogic,org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <[email protected]> |
Prepare for the introduction of full CCF support by moving the existing U-Boot CCF support to a uccf subdirectory. Due to a number of incompatibilities it won't be possible to support existing U-Boot CCF clocks with the full CCF, this allows us to support both. While it may make sense to remove U-Boot CCF in the future, it may be necessary to continue supporting it to meet space/memory requirements in SPL for some platforms. Signed-off-by: Casey Connolly <[email protected]> --- drivers/clk/Kconfig | 51 +++++++--------------- drivers/clk/Makefile | 7 ++- drivers/clk/uccf/Kconfig | 22 ++++++++++ drivers/clk/uccf/Makefile | 11 +++++ drivers/clk/{ => uccf}/clk-composite.c | 0 drivers/clk/{ => uccf}/clk-divider.c | 0 drivers/clk/{ => uccf}/clk-fixed-factor.c | 0 drivers/clk/{ => uccf}/clk-gate.c | 0 drivers/clk/{ => uccf}/clk-mux.c | 0 drivers/clk/{ => uccf}/clk.c | 0 .../{clk_sandbox_ccf.c => uccf/clk_sandbox_uccf.c} | 2 +- include/sandbox-clk.h | 2 +- 12 files changed, 54 insertions(+), 41 deletions(-) diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index c88931c8ec4d..5cc76cd55cc8 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -10,8 +10,24 @@ config CLK a particular clock rate and check on available clocks. Clocks can feed into other clocks in a tree structure, with multiplexers to choose the source for each clock. +source "drivers/clk/uccf/Kconfig" + +config SANDBOX_CLK_CCF + bool "Sandbox U-Boot Common Clock Framework [uCCF] support" + depends on SANDBOX && (CLK_CCF || CLK_CCF_FULL) + help + Enable this option if you want to test the Linux kernel's Common + Clock Framework [CCF] code in U-Boot's Sandbox clock driver. + +config CLK_COMPOSITE_CCF + bool "Common Clock Framework [CCF] composite clk support" + depends on CLK_CCF || CLK_CCF_FULL + help + Enable this option if you want to (re-)use the Linux kernel's Common + Clock Framework [CCF] composite code in U-Boot's clock driver. + config CLK_AUTO_ID bool "Enable support of an unique clock id with several provider" depends on CLK help @@ -66,35 +82,8 @@ config CLK_BOSTON select SYSCON help Enable this to support the clocks -config SPL_CLK_CCF - bool "SPL Common Clock Framework [CCF] support" - depends on SPL - help - Enable this option if you want to (re-)use the Linux kernel's Common - Clock Framework [CCF] code in U-Boot's SPL. - -config SPL_CLK_COMPOSITE_CCF - bool "SPL Common Clock Framework [CCF] composite clk support" - depends on SPL_CLK_CCF - help - Enable this option if you want to (re-)use the Linux kernel's Common - Clock Framework [CCF] composite code in U-Boot's SPL. - -config CLK_CCF - bool "Common Clock Framework [CCF] support" - help - Enable this option if you want to (re-)use the Linux kernel's Common - Clock Framework [CCF] code in U-Boot's clock driver. - -config CLK_COMPOSITE_CCF - bool "Common Clock Framework [CCF] composite clk support" - depends on CLK_CCF - help - Enable this option if you want to (re-)use the Linux kernel's Common - Clock Framework [CCF] composite code in U-Boot's clock driver. - config CLK_GPIO bool "GPIO-controlled clock gate driver" depends on CLK help @@ -180,16 +169,8 @@ config CLK_OCTEON default y help Enable this to support the clocks on Octeon MIPS platforms. -config SANDBOX_CLK_CCF - bool "Sandbox Common Clock Framework [CCF] support" - depends on SANDBOX - select CLK_CCF - help - Enable this option if you want to test the Linux kernel's Common - Clock Framework [CCF] code in U-Boot's Sandbox clock driver. - config CLK_SCMI bool "Enable SCMI clock driver" depends on CLK depends on SCMI_FIRMWARE diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile index f96d57a3223a..30991e9f55d7 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@ -6,14 +6,14 @@ obj-$(CONFIG_$(PHASE_)CLK) += clk-uclass.o obj-$(CONFIG_$(PHASE_)CLK) += clk_fixed_rate.o obj-$(CONFIG_$(PHASE_)CLK) += clk_fixed_factor.o -obj-$(CONFIG_$(PHASE_)CLK_CCF) += clk.o clk-divider.o clk-mux.o clk-gate.o -obj-$(CONFIG_$(PHASE_)CLK_CCF) += clk-fixed-factor.o -obj-$(CONFIG_$(PHASE_)CLK_COMPOSITE_CCF) += clk-composite.o obj-$(CONFIG_$(PHASE_)CLK_GPIO) += clk-gpio.o obj-$(CONFIG_$(PHASE_)CLK_STUB) += clk-stub.o +# U-Boot/IMX "micro" CCF port +obj-$(CONFIG_$(PHASE_)CLK_CCF) += uccf/ + obj-y += adi/ obj-y += airoha/ obj-y += analogbits/ obj-$(CONFIG_$(PHASE_)MACH_IMX) += imx/ @@ -57,7 +57,6 @@ obj-$(CONFIG_CLK_XLNX_CLKWZRD) += clk-xlnx-clock-wizard.o obj-$(CONFIG_CLK_ZYNQ) += clk_zynq.o obj-$(CONFIG_CLK_ZYNQMP) += clk_zynqmp.o obj-$(CONFIG_CLK_ICS8N3QV01) += ics8n3qv01.o obj-$(CONFIG_MACH_PIC32) += clk_pic32.o -obj-$(CONFIG_SANDBOX_CLK_CCF) += clk_sandbox_ccf.o obj-$(CONFIG_SANDBOX) += clk_sandbox.o obj-$(CONFIG_SANDBOX) += clk_sandbox_test.o diff --git a/drivers/clk/uccf/Kconfig b/drivers/clk/uccf/Kconfig new file mode 100644 index 000000000000..bf4a634a403f --- /dev/null +++ b/drivers/clk/uccf/Kconfig @@ -0,0 +1,22 @@ + + +config SPL_CLK_CCF + bool "SPL U-Boot Common Clock Framework [uCCF] support" + depends on SPL + help + Enable this option if you want to (re-)use the Linux kernel's Common + Clock Framework [CCF] code in U-Boot's SPL. + +config SPL_CLK_COMPOSITE_CCF + bool "SPL U-Boot Common Clock Framework [uCCF] composite clk support" + depends on SPL_CLK_CCF + help + Enable this option if you want to (re-)use the Linux kernel's Common + Clock Framework [CCF] composite code in U-Boot's SPL. + +config CLK_CCF + bool "U-Boot Common Clock Framework [uCCF] support" + help + Enable this option if you want to (re-)use the Linux kernel's Common + Clock Framework [CCF] code in U-Boot's clock driver. + diff --git a/drivers/clk/uccf/Makefile b/drivers/clk/uccf/Makefile new file mode 100644 index 000000000000..02440b5e322c --- /dev/null +++ b/drivers/clk/uccf/Makefile @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Copyright (c) 2015 Google, Inc +# Wolfgang Denk, DENX Software Engineering, [email protected]. +# + +obj-$(CONFIG_$(PHASE_)CLK_CCF) += clk.o clk-divider.o clk-mux.o clk-gate.o +obj-$(CONFIG_$(PHASE_)CLK_CCF) += clk-fixed-factor.o +obj-$(CONFIG_$(PHASE_)CLK_COMPOSITE_CCF) += clk-composite.o + +obj-$(CONFIG_SANDBOX_CLK_CCF) += clk_sandbox_uccf.o diff --git a/drivers/clk/clk-composite.c b/drivers/clk/uccf/clk-composite.c similarity index 100% rename from drivers/clk/clk-composite.c rename to drivers/clk/uccf/clk-composite.c diff --git a/drivers/clk/clk-divider.c b/drivers/clk/uccf/clk-divider.c similarity index 100% rename from drivers/clk/clk-divider.c rename to drivers/clk/uccf/clk-divider.c diff --git a/drivers/clk/clk-fixed-factor.c b/drivers/clk/uccf/clk-fixed-factor.c similarity index 100% rename from drivers/clk/clk-fixed-factor.c rename to drivers/clk/uccf/clk-fixed-factor.c diff --git a/drivers/clk/clk-gate.c b/drivers/clk/uccf/clk-gate.c similarity index 100% rename from drivers/clk/clk-gate.c rename to drivers/clk/uccf/clk-gate.c diff --git a/drivers/clk/clk-mux.c b/drivers/clk/uccf/clk-mux.c similarity index 100% rename from drivers/clk/clk-mux.c rename to drivers/clk/uccf/clk-mux.c diff --git a/drivers/clk/clk.c b/drivers/clk/uccf/clk.c similarity index 100% rename from drivers/clk/clk.c rename to drivers/clk/uccf/clk.c diff --git a/drivers/clk/clk_sandbox_ccf.c b/drivers/clk/uccf/clk_sandbox_uccf.c similarity index 98% rename from drivers/clk/clk_sandbox_ccf.c rename to drivers/clk/uccf/clk_sandbox_uccf.c index 9b8036d41aac..9c74ed940acd 100644 --- a/drivers/clk/clk_sandbox_ccf.c +++ b/drivers/clk/uccf/clk_sandbox_uccf.c @@ -112,9 +112,9 @@ static const struct clk_ops clk_gate2_ops = { .disable = clk_gate2_disable, .get_rate = clk_generic_get_rate, }; -struct clk *sandbox_clk_register_gate2(struct device *dev, const char *name, +struct clk *sandbox_clk_register_gate2(struct udevice *dev, const char *name, const char *parent_name, unsigned long flags, void __iomem *reg, u8 bit_idx, u8 cgr_val, u8 clk_gate2_flags) diff --git a/include/sandbox-clk.h b/include/sandbox-clk.h index c2616c27a44a..eb02a474c741 100644 --- a/include/sandbox-clk.h +++ b/include/sandbox-clk.h @@ -57,9 +57,9 @@ static inline struct clk *sandbox_clk_gate(const char *name, const char *parent, return clk_register_gate(NULL, name, parent, CLK_SET_RATE_PARENT, reg, bit_idx, clk_gate_flags, NULL); } -struct clk *sandbox_clk_register_gate2(struct device *dev, const char *name, +struct clk *sandbox_clk_register_gate2(struct udevice *dev, const char *name, const char *parent_name, unsigned long flags, void __iomem *reg, u8 bit_idx, u8 cgr_val, u8 clk_gate_flags); -- 2.51.0