Re: [PATCH v5 3/5] clk: spacemit: Add clock support for Spacemit K1 SoC

Haylen Chu
2025-03-23T09:14:23Z

On Tue, Mar 18, 2025 at 01:43:52PM +0800, Inochi Amaoto wrote:
> On Tue, Mar 18, 2025 at 05:37:36AM +0000, Yixun Lan wrote:
> > Hi Haylen Chu:
> >
> > On 17:57 Thu 06 Mar , Haylen Chu wrote:
> > > The clock tree of K1 SoC contains three main types of clock hardware
> > > (PLL/DDN/MIX) and has control registers split into several multifunction
> > > devices: APBS (PLLs), MPMU, APBC and APMU.
> > >
> > > All register operations are done through regmap to ensure atomiciy
> > > between concurrent operations of clock driver and reset,
> > > power-domain driver that will be introduced in the future.
> > >
> > > Signed-off-by: Haylen Chu <heylenay@4d2.org>
> > > ---
> > > drivers/clk/Kconfig | 1 +
> > > drivers/clk/Makefile | 1 +
> > > drivers/clk/spacemit/Kconfig | 20 +
> > > drivers/clk/spacemit/Makefile | 5 +
> > > drivers/clk/spacemit/ccu-k1.c | 1714 +++++++++++++++++++++++++++++
> > > drivers/clk/spacemit/ccu_common.h | 47 +
> > > drivers/clk/spacemit/ccu_ddn.c | 80 ++
> > > drivers/clk/spacemit/ccu_ddn.h | 48 +
> > > drivers/clk/spacemit/ccu_mix.c | 284 +++++
> > > drivers/clk/spacemit/ccu_mix.h | 246 +++++
> > > drivers/clk/spacemit/ccu_pll.c | 146 +++
> > > drivers/clk/spacemit/ccu_pll.h | 76 ++
> > > 12 files changed, 2668 insertions(+)
> > > create mode 100644 drivers/clk/spacemit/Kconfig
> > > create mode 100644 drivers/clk/spacemit/Makefile
> > > create mode 100644 drivers/clk/spacemit/ccu-k1.c
> > > create mode 100644 drivers/clk/spacemit/ccu_common.h
> > > create mode 100644 drivers/clk/spacemit/ccu_ddn.c
> > > create mode 100644 drivers/clk/spacemit/ccu_ddn.h
> > > create mode 100644 drivers/clk/spacemit/ccu_mix.c
> > > create mode 100644 drivers/clk/spacemit/ccu_mix.h
> > > create mode 100644 drivers/clk/spacemit/ccu_pll.c
> > > create mode 100644 drivers/clk/spacemit/ccu_pll.h
> > >
> > > diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig
> > > index 713573b6c86c..19c1ed280fd7 100644
> > > --- a/drivers/clk/Kconfig
> > > +++ b/drivers/clk/Kconfig
> > > @@ -517,6 +517,7 @@ source "drivers/clk/samsung/Kconfig"
> > > source "drivers/clk/sifive/Kconfig"
> > > source "drivers/clk/socfpga/Kconfig"
> > > source "drivers/clk/sophgo/Kconfig"
> > > +source "drivers/clk/spacemit/Kconfig"
> > > source "drivers/clk/sprd/Kconfig"
> > > source "drivers/clk/starfive/Kconfig"
> > > source "drivers/clk/sunxi/Kconfig"
> > > diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
> > > index bf4bd45adc3a..42867cd37c33 100644
> > > --- a/drivers/clk/Makefile
> > > +++ b/drivers/clk/Makefile
> > > @@ -145,6 +145,7 @@ obj-$(CONFIG_COMMON_CLK_SAMSUNG) += samsung/
> > > obj-$(CONFIG_CLK_SIFIVE) += sifive/
> > > obj-y += socfpga/
> > > obj-y += sophgo/
> > > +obj-y += spacemit/
> > > obj-$(CONFIG_PLAT_SPEAR) += spear/
> > > obj-y += sprd/
> > > obj-$(CONFIG_ARCH_STI) += st/
> > > diff --git a/drivers/clk/spacemit/Kconfig b/drivers/clk/spacemit/Kconfig
> > > new file mode 100644
> > > index 000000000000..76090cd85668
> > > --- /dev/null
> > > +++ b/drivers/clk/spacemit/Kconfig
> > > @@ -0,0 +1,20 @@
> > > +# SPDX-License-Identifier: GPL-2.0-only
> > > +

Hi Inochi, Yixun,

> > > +config SPACEMIT_CCU
> > > + tristate "Clock support for Spacemit SoCs"
> > > + default y
> > similar reason to pinctrl with these patches [1], [2]
> > I'd suggest switch to "bool + default ARCH_SPACEMIT"
> >
> > Link: https://lore.kernel.org/all/20250218-k1-pinctrl-option-v3-1-36e031e0da1b@gentoo.org [1]
> > Link: https://lore.kernel.org/all/6881b8d1ad74ac780af8a974e604b5ef3f5d4aad.1742198691.git.geert+renesas@glider.be [2]
> >
>
> Clk subsystem prefers no defalt and set it in defconfig,
> so should no default there.

Thanks for these hints, I will drop default and set the configuration in
defconfig, in which case it seems okay to keep it as bool.

> Regards,
> Inochi

Thanks,
Haylen Chu