Each CMU (with the exception of cmu_top) has a corresponding sysreg bank
that contains the BUSCOMPONENT_DRCG_EN and optional MEMCLK registers.
The BUSCOMPONENT_DRCG_EN register enables dynamic root clock gating of
bus components and MEMCLK gates the sram clock.
Now the clock driver supports automatic clock mode, to fully enable dynamic
root clock gating it is required to configure these registers. Update the
bindings documentation so that all CMUs (with the exception of
gs101-cmu-top) have samsung,sysreg as a required property.
Note this is NOT an ABI break, as if the property isn't specified the
clock driver will fallback to the current behaviour of not initializing
the registers. The system still boots, but bus components won't benefit
from dynamic root clock gating and dynamic power will be higher (which has
been the case until now anyway).
Additionally update the DT example to included the correct CMU size as
registers in that region are used for automatic clock mode.
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
---
Changes in v5:
- Invert the test for google,gs101-cmu-top (Andre)
Changes in v4
- Update commit description with additional requested details (Krzysztof)
Changes in v3:
- Update commit description as to why the sysreg is required (Krzysztof)
Changes in v2:
- Update commit description regarding updated example (Andre)
---
.../devicetree/bindings/clock/google,gs101-clock.yaml | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml b/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
index 31e106ef913dead9a038b3b6d8b43b950587f6aa..09e679c1a9def03d53b8b493929911ea902a1763 100644
--- a/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
+++ b/Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
@@ -52,6 +52,11 @@ properties:
reg:
maxItems: 1
+ samsung,sysreg:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ Phandle to system registers interface.
+
required:
- compatible
- "#clock-cells"
@@ -166,6 +171,18 @@ allOf:
- const: bus
- const: ip
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: google,gs101-cmu-top
+ then:
+ properties:
+ samsung,sysreg: false
+ else:
+ required:
+ - samsung,sysreg
+
additionalProperties: false
examples:
@@ -175,7 +192,7 @@ examples:
cmu_top: clock-controller@1e080000 {
compatible = "google,gs101-cmu-top";
- reg = <0x1e080000 0x8000>;
+ reg = <0x1e080000 0x10000>;
#clock-cells = <1>;
clocks = <&ext_24_5m>;
clock-names = "oscclk";
--
2.52.0.351.gbe84eed79e-goog
On 20/12/2025 10:05, Peter Griffin wrote: > Each CMU (with the exception of cmu_top) has a corresponding sysreg bank > that contains the BUSCOMPONENT_DRCG_EN and optional MEMCLK registers. > The BUSCOMPONENT_DRCG_EN register enables dynamic root clock gating of > bus components and MEMCLK gates the sram clock. > > Now the clock driver supports automatic clock mode, to fully enable dynamic > root clock gating it is required to configure these registers. Update the > bindings documentation so that all CMUs (with the exception of > gs101-cmu-top) have samsung,sysreg as a required property. > > Note this is NOT an ABI break, as if the property isn't specified the > clock driver will fallback to the current behaviour of not initializing > the registers. The system still boots, but bus components won't benefit > from dynamic root clock gating and dynamic power will be higher (which has > been the case until now anyway). > > Additionally update the DT example to included the correct CMU size as > registers in that region are used for automatic clock mode. > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > --- > Changes in v5: > - Invert the test for google,gs101-cmu-top (Andre) > <form letter> This is a friendly reminder during the review process. It looks like you received a tag and forgot to add it. If you do not know the process, here is a short explanation: Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions of patchset, under or above your Signed-off-by tag, unless patch changed significantly (e.g. new properties added to the DT bindings). Tag is "received", when provided in a message replied to you on the mailing list. Tools like b4 can help here. However, there's no need to repost patches *only* to add the tags. The upstream maintainer will do that for tags received on the version they apply. Please read: https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577 If a tag was not added on purpose, please state why and what changed. </form letter> Best regards, Krzysztof
Hi Krzysztof, On Sun, 21 Dec 2025 at 13:26, Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On 20/12/2025 10:05, Peter Griffin wrote: > > Each CMU (with the exception of cmu_top) has a corresponding sysreg bank > > that contains the BUSCOMPONENT_DRCG_EN and optional MEMCLK registers. > > The BUSCOMPONENT_DRCG_EN register enables dynamic root clock gating of > > bus components and MEMCLK gates the sram clock. > > > > Now the clock driver supports automatic clock mode, to fully enable dynamic > > root clock gating it is required to configure these registers. Update the > > bindings documentation so that all CMUs (with the exception of > > gs101-cmu-top) have samsung,sysreg as a required property. > > > > Note this is NOT an ABI break, as if the property isn't specified the > > clock driver will fallback to the current behaviour of not initializing > > the registers. The system still boots, but bus components won't benefit > > from dynamic root clock gating and dynamic power will be higher (which has > > been the case until now anyway). > > > > Additionally update the DT example to included the correct CMU size as > > registers in that region are used for automatic clock mode. > > > > Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > > --- > > Changes in v5: > > - Invert the test for google,gs101-cmu-top (Andre) > > > > > <form letter> > This is a friendly reminder during the review process. > > It looks like you received a tag and forgot to add it. > > If you do not know the process, here is a short explanation: > Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions > of patchset, under or above your Signed-off-by tag, unless patch changed > significantly (e.g. new properties added to the DT bindings). Tag is > "received", when provided in a message replied to you on the mailing > list. Tools like b4 can help here. However, there's no need to repost > patches *only* to add the tags. The upstream maintainer will do that for > tags received on the version they apply. > > Please read: > https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577 > > If a tag was not added on purpose, please state why and what changed. > </form letter> Apologies, your tag should have been added.... got kind of sidetracked bisecting the linux-next regression with the serial console and then forgot to apply it. Peter.
On 22/12/2025 10:39, Peter Griffin wrote: > Hi Krzysztof, > > On Sun, 21 Dec 2025 at 13:26, Krzysztof Kozlowski <krzk@kernel.org> wrote: >> >> On 20/12/2025 10:05, Peter Griffin wrote: >>> Each CMU (with the exception of cmu_top) has a corresponding sysreg bank >>> that contains the BUSCOMPONENT_DRCG_EN and optional MEMCLK registers. >>> The BUSCOMPONENT_DRCG_EN register enables dynamic root clock gating of >>> bus components and MEMCLK gates the sram clock. >>> >>> Now the clock driver supports automatic clock mode, to fully enable dynamic >>> root clock gating it is required to configure these registers. Update the >>> bindings documentation so that all CMUs (with the exception of >>> gs101-cmu-top) have samsung,sysreg as a required property. >>> >>> Note this is NOT an ABI break, as if the property isn't specified the >>> clock driver will fallback to the current behaviour of not initializing >>> the registers. The system still boots, but bus components won't benefit >>> from dynamic root clock gating and dynamic power will be higher (which has >>> been the case until now anyway). >>> >>> Additionally update the DT example to included the correct CMU size as >>> registers in that region are used for automatic clock mode. >>> >>> Signed-off-by: Peter Griffin <peter.griffin@linaro.org> >>> --- >>> Changes in v5: >>> - Invert the test for google,gs101-cmu-top (Andre) >>> >> >> >> <form letter> >> This is a friendly reminder during the review process. >> >> It looks like you received a tag and forgot to add it. >> >> If you do not know the process, here is a short explanation: >> Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions >> of patchset, under or above your Signed-off-by tag, unless patch changed >> significantly (e.g. new properties added to the DT bindings). Tag is >> "received", when provided in a message replied to you on the mailing >> list. Tools like b4 can help here. However, there's no need to repost >> patches *only* to add the tags. The upstream maintainer will do that for >> tags received on the version they apply. >> >> Please read: >> https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577 >> >> If a tag was not added on purpose, please state why and what changed. >> </form letter> > > Apologies, your tag should have been added.... got kind of sidetracked > bisecting the linux-next regression with the serial console and then > forgot to apply it. I think it was more than one tag, so I decided not to look for them. Please send v7 with all tags collected. Best regards, Krzysztof
Hi Krzysztof, On Mon, 22 Dec 2025 at 09:53, Krzysztof Kozlowski <krzk@kernel.org> wrote: > > On 22/12/2025 10:39, Peter Griffin wrote: > > Hi Krzysztof, > > > > On Sun, 21 Dec 2025 at 13:26, Krzysztof Kozlowski <krzk@kernel.org> wrote: > >> > >> On 20/12/2025 10:05, Peter Griffin wrote: > >>> Each CMU (with the exception of cmu_top) has a corresponding sysreg bank > >>> that contains the BUSCOMPONENT_DRCG_EN and optional MEMCLK registers. > >>> The BUSCOMPONENT_DRCG_EN register enables dynamic root clock gating of > >>> bus components and MEMCLK gates the sram clock. > >>> > >>> Now the clock driver supports automatic clock mode, to fully enable dynamic > >>> root clock gating it is required to configure these registers. Update the > >>> bindings documentation so that all CMUs (with the exception of > >>> gs101-cmu-top) have samsung,sysreg as a required property. > >>> > >>> Note this is NOT an ABI break, as if the property isn't specified the > >>> clock driver will fallback to the current behaviour of not initializing > >>> the registers. The system still boots, but bus components won't benefit > >>> from dynamic root clock gating and dynamic power will be higher (which has > >>> been the case until now anyway). > >>> > >>> Additionally update the DT example to included the correct CMU size as > >>> registers in that region are used for automatic clock mode. > >>> > >>> Signed-off-by: Peter Griffin <peter.griffin@linaro.org> > >>> --- > >>> Changes in v5: > >>> - Invert the test for google,gs101-cmu-top (Andre) > >>> > >> > >> > >> <form letter> > >> This is a friendly reminder during the review process. > >> > >> It looks like you received a tag and forgot to add it. > >> > >> If you do not know the process, here is a short explanation: > >> Please add Acked-by/Reviewed-by/Tested-by tags when posting new versions > >> of patchset, under or above your Signed-off-by tag, unless patch changed > >> significantly (e.g. new properties added to the DT bindings). Tag is > >> "received", when provided in a message replied to you on the mailing > >> list. Tools like b4 can help here. However, there's no need to repost > >> patches *only* to add the tags. The upstream maintainer will do that for > >> tags received on the version they apply. > >> > >> Please read: > >> https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577 > >> > >> If a tag was not added on purpose, please state why and what changed. > >> </form letter> > > > > Apologies, your tag should have been added.... got kind of sidetracked > > bisecting the linux-next regression with the serial console and then > > forgot to apply it. > > I think it was more than one tag, so I decided not to look for them. > Please send v7 with all tags collected. Sure, will resend shortly. Peter
© 2016 - 2026 Red Hat, Inc.