From: Yixun Lan <dlan@gentoo.org>
To: Inochi Amaoto <inochiama@gmail.com>
Cc: Alex Elder <elder@riscstar.com>, Haylen Chu <heylenay@4d2.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Haylen Chu <heylenay@outlook.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
linux-riscv@lists.infradead.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
spacemit@lists.linux.dev, Inochi Amaoto <inochiama@outlook.com>,
Chen Wang <unicornxdotw@foxmail.com>,
Jisheng Zhang <jszhang@kernel.org>,
Meng Zhang <zhangmeng.kevin@linux.spacemit.com>
Subject: Re: [PATCH v6 3/6] clk: spacemit: Add clock support for SpacemiT K1 SoC
Date: Thu, 10 Apr 2025 01:16:11 +0000 [thread overview]
Message-ID: <20250410011611-GYC19359@gentoo> (raw)
In-Reply-To: <z27ri5eue43ti6b2te2cbxiow66mtgbnyudoo5cs4quabgbx5r@uipzoxvfoysi>
Hi Inochi,
On 08:57 Thu 10 Apr , Inochi Amaoto wrote:
> On Thu, Apr 10, 2025 at 08:54:51AM +0800, Inochi Amaoto wrote:
> > On Thu, Apr 10, 2025 at 12:37:56AM +0000, Yixun Lan wrote:
> > > On 14:37 Tue 08 Apr , Alex Elder wrote:
> > > > On 4/1/25 12:24 PM, 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>
> > > >
> > > > I have a few more comments here but I think this is getting very
> > > > close to ready. You addressed pretty much everything I mentioned.
> > > >
> > > > > ---
> > > > > drivers/clk/Kconfig | 1 +
> > > > > drivers/clk/Makefile | 1 +
> > > > > drivers/clk/spacemit/Kconfig | 18 +
> > > > > drivers/clk/spacemit/Makefile | 5 +
> > > > > drivers/clk/spacemit/apbc_clks | 100 +++
> > > > > drivers/clk/spacemit/ccu-k1.c | 1316 +++++++++++++++++++++++++++++
> > > > > drivers/clk/spacemit/ccu_common.h | 48 ++
> > > > > drivers/clk/spacemit/ccu_ddn.c | 83 ++
> > > > > drivers/clk/spacemit/ccu_ddn.h | 47 ++
> > > > > drivers/clk/spacemit/ccu_mix.c | 268 ++++++
> > > > > drivers/clk/spacemit/ccu_mix.h | 218 +++++
> > > > > drivers/clk/spacemit/ccu_pll.c | 157 ++++
> > > > > drivers/clk/spacemit/ccu_pll.h | 86 ++
> > > > > 13 files changed, 2348 insertions(+)
> > > > > create mode 100644 drivers/clk/spacemit/Kconfig
> > > > > create mode 100644 drivers/clk/spacemit/Makefile
> > > > > create mode 100644 drivers/clk/spacemit/apbc_clks
> > > > > 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..4c4df845b3cb
> > > > > --- /dev/null
> > > > > +++ b/drivers/clk/spacemit/Kconfig
> > > > > @@ -0,0 +1,18 @@
> > > > > +# SPDX-License-Identifier: GPL-2.0-only
> > > > > +
> > > > > +config SPACEMIT_CCU
> > > > > + tristate "Clock support for SpacemiT SoCs"
> > > >
> > > > I don't know the answer to this, but... Should this be a Boolean
> > > > rather than tristate? Can a SpacemiT K1 SoC function without the
> > > > clock driver built in to the kernel?
> > > >
> > > I agree to make it a Boolean, we've already made pinctrl driver Boolean
> > > and pinctrl depend on clk, besides, the SoC is unlikely functional
> > > without clock built in as it's such critical..
> > >
> >
> > I disagree. The kernel is only for spacemit only, and the pinctrl
>
> Sorry for a mistake, this first "only" should be "not".
>
> > should also be a module. It is the builder's right to decide whether
> > the driver is builtin or a module. In this view, you should always
> > allow the driver to be built as a module if possible.
> >
No, we've already made pinctrl as Boolean (still depend on ARCH_SPACEMIT)
if people don't want this feature, he/she can disable CONFIG_ARCH_SPACEMIT
https://github.com/torvalds/linux/blob/master/drivers/pinctrl/spacemit/Kconfig#L7
--
Yixun Lan (dlan)
Gentoo Linux Developer
GPG Key ID AABEFD55
WARNING: multiple messages have this Message-ID (diff)
From: Yixun Lan <dlan@gentoo.org>
To: Inochi Amaoto <inochiama@gmail.com>
Cc: Alex Elder <elder@riscstar.com>, Haylen Chu <heylenay@4d2.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Haylen Chu <heylenay@outlook.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>,
Alexandre Ghiti <alex@ghiti.fr>,
linux-riscv@lists.infradead.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
spacemit@lists.linux.dev, Inochi Amaoto <inochiama@outlook.com>,
Chen Wang <unicornxdotw@foxmail.com>,
Jisheng Zhang <jszhang@kernel.org>,
Meng Zhang <zhangmeng.kevin@linux.spacemit.com>
Subject: Re: [PATCH v6 3/6] clk: spacemit: Add clock support for SpacemiT K1 SoC
Date: Thu, 10 Apr 2025 01:16:11 +0000 [thread overview]
Message-ID: <20250410011611-GYC19359@gentoo> (raw)
In-Reply-To: <z27ri5eue43ti6b2te2cbxiow66mtgbnyudoo5cs4quabgbx5r@uipzoxvfoysi>
Hi Inochi,
On 08:57 Thu 10 Apr , Inochi Amaoto wrote:
> On Thu, Apr 10, 2025 at 08:54:51AM +0800, Inochi Amaoto wrote:
> > On Thu, Apr 10, 2025 at 12:37:56AM +0000, Yixun Lan wrote:
> > > On 14:37 Tue 08 Apr , Alex Elder wrote:
> > > > On 4/1/25 12:24 PM, 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>
> > > >
> > > > I have a few more comments here but I think this is getting very
> > > > close to ready. You addressed pretty much everything I mentioned.
> > > >
> > > > > ---
> > > > > drivers/clk/Kconfig | 1 +
> > > > > drivers/clk/Makefile | 1 +
> > > > > drivers/clk/spacemit/Kconfig | 18 +
> > > > > drivers/clk/spacemit/Makefile | 5 +
> > > > > drivers/clk/spacemit/apbc_clks | 100 +++
> > > > > drivers/clk/spacemit/ccu-k1.c | 1316 +++++++++++++++++++++++++++++
> > > > > drivers/clk/spacemit/ccu_common.h | 48 ++
> > > > > drivers/clk/spacemit/ccu_ddn.c | 83 ++
> > > > > drivers/clk/spacemit/ccu_ddn.h | 47 ++
> > > > > drivers/clk/spacemit/ccu_mix.c | 268 ++++++
> > > > > drivers/clk/spacemit/ccu_mix.h | 218 +++++
> > > > > drivers/clk/spacemit/ccu_pll.c | 157 ++++
> > > > > drivers/clk/spacemit/ccu_pll.h | 86 ++
> > > > > 13 files changed, 2348 insertions(+)
> > > > > create mode 100644 drivers/clk/spacemit/Kconfig
> > > > > create mode 100644 drivers/clk/spacemit/Makefile
> > > > > create mode 100644 drivers/clk/spacemit/apbc_clks
> > > > > 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..4c4df845b3cb
> > > > > --- /dev/null
> > > > > +++ b/drivers/clk/spacemit/Kconfig
> > > > > @@ -0,0 +1,18 @@
> > > > > +# SPDX-License-Identifier: GPL-2.0-only
> > > > > +
> > > > > +config SPACEMIT_CCU
> > > > > + tristate "Clock support for SpacemiT SoCs"
> > > >
> > > > I don't know the answer to this, but... Should this be a Boolean
> > > > rather than tristate? Can a SpacemiT K1 SoC function without the
> > > > clock driver built in to the kernel?
> > > >
> > > I agree to make it a Boolean, we've already made pinctrl driver Boolean
> > > and pinctrl depend on clk, besides, the SoC is unlikely functional
> > > without clock built in as it's such critical..
> > >
> >
> > I disagree. The kernel is only for spacemit only, and the pinctrl
>
> Sorry for a mistake, this first "only" should be "not".
>
> > should also be a module. It is the builder's right to decide whether
> > the driver is builtin or a module. In this view, you should always
> > allow the driver to be built as a module if possible.
> >
No, we've already made pinctrl as Boolean (still depend on ARCH_SPACEMIT)
if people don't want this feature, he/she can disable CONFIG_ARCH_SPACEMIT
https://github.com/torvalds/linux/blob/master/drivers/pinctrl/spacemit/Kconfig#L7
--
Yixun Lan (dlan)
Gentoo Linux Developer
GPG Key ID AABEFD55
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-04-10 1:16 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-01 17:24 [PATCH v6 0/6] Add clock controller support for SpacemiT K1 Haylen Chu
2025-04-01 17:24 ` Haylen Chu
2025-04-01 17:24 ` [PATCH v6 1/6] dt-bindings: soc: spacemit: Add spacemit,k1-syscon Haylen Chu
2025-04-01 17:24 ` Haylen Chu
2025-04-08 19:37 ` Alex Elder
2025-04-08 19:37 ` Alex Elder
2025-04-01 17:24 ` [PATCH v6 2/6] dt-bindings: clock: spacemit: Add spacemit,k1-pll Haylen Chu
2025-04-01 17:24 ` Haylen Chu
2025-04-08 19:37 ` Alex Elder
2025-04-08 19:37 ` Alex Elder
2025-04-01 17:24 ` [PATCH v6 3/6] clk: spacemit: Add clock support for SpacemiT K1 SoC Haylen Chu
2025-04-01 17:24 ` Haylen Chu
2025-04-08 19:37 ` Alex Elder
2025-04-08 19:37 ` Alex Elder
2025-04-10 0:37 ` Yixun Lan
2025-04-10 0:37 ` Yixun Lan
2025-04-10 0:54 ` Inochi Amaoto
2025-04-10 0:54 ` Inochi Amaoto
2025-04-10 0:57 ` Inochi Amaoto
2025-04-10 0:57 ` Inochi Amaoto
2025-04-10 1:10 ` Alex Elder
2025-04-10 1:10 ` Alex Elder
2025-04-10 1:20 ` Inochi Amaoto
2025-04-10 1:20 ` Inochi Amaoto
2025-04-10 1:55 ` Yixun Lan
2025-04-10 1:55 ` Yixun Lan
2025-04-10 3:47 ` Inochi Amaoto
2025-04-10 3:47 ` Inochi Amaoto
2025-04-10 12:30 ` Alex Elder
2025-04-10 12:30 ` Alex Elder
2025-04-10 12:32 ` Alex Elder
2025-04-10 12:32 ` Alex Elder
2025-04-10 4:07 ` Haylen Chu
2025-04-10 4:07 ` Haylen Chu
2025-04-11 17:14 ` Goko Son
2025-04-11 17:14 ` Goko Son
2025-04-10 1:16 ` Yixun Lan [this message]
2025-04-10 1:16 ` Yixun Lan
2025-04-10 1:35 ` Inochi Amaoto
2025-04-10 1:35 ` Inochi Amaoto
2025-04-10 6:54 ` Haylen Chu
2025-04-10 6:54 ` Haylen Chu
2025-04-10 0:55 ` Yixun Lan
2025-04-10 0:55 ` Yixun Lan
2025-04-10 3:55 ` Haylen Chu
2025-04-10 3:55 ` Haylen Chu
2025-04-01 17:24 ` [PATCH v6 4/6] clk: spacemit: k1: Add TWSI8 bus and function clocks Haylen Chu
2025-04-01 17:24 ` Haylen Chu
2025-04-08 19:37 ` Alex Elder
2025-04-08 19:37 ` Alex Elder
2025-04-10 4:09 ` Haylen Chu
2025-04-10 4:09 ` Haylen Chu
2025-04-01 17:24 ` [PATCH v6 5/6] riscv: dts: spacemit: Add clock tree for SpacemiT K1 Haylen Chu
2025-04-01 17:24 ` Haylen Chu
2025-04-08 19:37 ` Alex Elder
2025-04-08 19:37 ` Alex Elder
2025-04-01 17:24 ` [PATCH v6 6/6] riscv: defconfig: enable clock controller unit support " Haylen Chu
2025-04-01 17:24 ` Haylen Chu
2025-04-08 19:37 ` Alex Elder
2025-04-08 19:37 ` Alex Elder
2025-04-10 4:12 ` Haylen Chu
2025-04-10 4:12 ` Haylen Chu
2025-04-08 19:37 ` [PATCH v6 0/6] Add clock controller " Alex Elder
2025-04-08 19:37 ` Alex Elder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250410011611-GYC19359@gentoo \
--to=dlan@gentoo.org \
--cc=alex@ghiti.fr \
--cc=aou@eecs.berkeley.edu \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=elder@riscstar.com \
--cc=heylenay@4d2.org \
--cc=heylenay@outlook.com \
--cc=inochiama@gmail.com \
--cc=inochiama@outlook.com \
--cc=jszhang@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=mturquette@baylibre.com \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=spacemit@lists.linux.dev \
--cc=unicornxdotw@foxmail.com \
--cc=zhangmeng.kevin@linux.spacemit.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.