The firmware exposes clocks that can be controlled via the
Alive Clock and Power Manager (ACPM) interface.
Make the ACPM node a clock provider by adding the mandatory
"#clock-cells" property, which allows devices to reference its
clock outputs.
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
---
.../bindings/firmware/google,gs101-acpm-ipc.yaml | 11 +++++++++++
include/dt-bindings/clock/google,gs101.h | 15 +++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml b/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
index 9785aac3b5f34955bbfe2718eec48581d050954f..d3bca6088d128485618bb2b538ed8596b4ba14f0 100644
--- a/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
+++ b/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
@@ -24,6 +24,15 @@ properties:
compatible:
const: google,gs101-acpm-ipc
+ "#clock-cells":
+ const: 1
+ description:
+ Clocks that are variable and index based. These clocks don't provide
+ an entire range of values between the limits but only discrete points
+ within the range. The firmware also manages the voltage scaling
+ appropriately with the clock scaling. The argument is the ID of the
+ clock contained by the firmware messages.
+
mboxes:
maxItems: 1
@@ -45,6 +54,7 @@ properties:
required:
- compatible
+ - "#clock-cells"
- mboxes
- shmem
@@ -56,6 +66,7 @@ examples:
power-management {
compatible = "google,gs101-acpm-ipc";
+ #clock-cells = <1>;
mboxes = <&ap2apm_mailbox>;
shmem = <&apm_sram>;
diff --git a/include/dt-bindings/clock/google,gs101.h b/include/dt-bindings/clock/google,gs101.h
index 442f9e9037dc33198a1cee20af62fc70bbd96605..f1d0df412fdd49b300db4ba88bc0b1674cf0cdf8 100644
--- a/include/dt-bindings/clock/google,gs101.h
+++ b/include/dt-bindings/clock/google,gs101.h
@@ -634,4 +634,19 @@
#define CLK_GOUT_PERIC1_CLK_PERIC1_USI9_USI_CLK 45
#define CLK_GOUT_PERIC1_SYSREG_PERIC1_PCLK 46
+#define CLK_ACPM_DVFS_MIF 0
+#define CLK_ACPM_DVFS_INT 1
+#define CLK_ACPM_DVFS_CPUCL0 2
+#define CLK_ACPM_DVFS_CPUCL1 3
+#define CLK_ACPM_DVFS_CPUCL2 4
+#define CLK_ACPM_DVFS_G3D 5
+#define CLK_ACPM_DVFS_G3DL2 6
+#define CLK_ACPM_DVFS_TPU 7
+#define CLK_ACPM_DVFS_INTCAM 8
+#define CLK_ACPM_DVFS_TNR 9
+#define CLK_ACPM_DVFS_CAM 10
+#define CLK_ACPM_DVFS_MFC 11
+#define CLK_ACPM_DVFS_DISP 12
+#define CLK_ACPM_DVFS_BO 13
+
#endif /* _DT_BINDINGS_CLOCK_GOOGLE_GS101_H */
--
2.51.0.261.g7ce5a0a67e-goog
On 27/08/2025 14:42, Tudor Ambarus wrote: > diff --git a/include/dt-bindings/clock/google,gs101.h b/include/dt-bindings/clock/google,gs101.h > index 442f9e9037dc33198a1cee20af62fc70bbd96605..f1d0df412fdd49b300db4ba88bc0b1674cf0cdf8 100644 > --- a/include/dt-bindings/clock/google,gs101.h > +++ b/include/dt-bindings/clock/google,gs101.h > @@ -634,4 +634,19 @@ > #define CLK_GOUT_PERIC1_CLK_PERIC1_USI9_USI_CLK 45 > #define CLK_GOUT_PERIC1_SYSREG_PERIC1_PCLK 46 I missed it last time - this is a header for SoC clock controller bindings. ACPM firmware is completely different device, so should go to its own binding header. > > +#define CLK_ACPM_DVFS_MIF 0 > +#define CLK_ACPM_DVFS_INT 1 > +#define CLK_ACPM_DVFS_CPUCL0 2 Best regards, Krzysztof
On 8/31/25 11:40 AM, Krzysztof Kozlowski wrote: > On 27/08/2025 14:42, Tudor Ambarus wrote: >> diff --git a/include/dt-bindings/clock/google,gs101.h b/include/dt-bindings/clock/google,gs101.h >> index 442f9e9037dc33198a1cee20af62fc70bbd96605..f1d0df412fdd49b300db4ba88bc0b1674cf0cdf8 100644 >> --- a/include/dt-bindings/clock/google,gs101.h >> +++ b/include/dt-bindings/clock/google,gs101.h >> @@ -634,4 +634,19 @@ >> #define CLK_GOUT_PERIC1_CLK_PERIC1_USI9_USI_CLK 45 >> #define CLK_GOUT_PERIC1_SYSREG_PERIC1_PCLK 46 > > I missed it last time - this is a header for SoC clock controller > bindings. ACPM firmware is completely different device, so should go to > its own binding header. right. Will do, thanks!
On Wed, 27 Aug 2025 12:42:11 +0000, Tudor Ambarus wrote: > The firmware exposes clocks that can be controlled via the > Alive Clock and Power Manager (ACPM) interface. > > Make the ACPM node a clock provider by adding the mandatory > "#clock-cells" property, which allows devices to reference its > clock outputs. > > Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org> > --- > .../bindings/firmware/google,gs101-acpm-ipc.yaml | 11 +++++++++++ > include/dt-bindings/clock/google,gs101.h | 15 +++++++++++++++ > 2 files changed, 26 insertions(+) > Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
© 2016 - 2025 Red Hat, Inc.