On Tue, Aug 19, 2025 at 11:45:36AM +0000, Tudor Ambarus wrote: > The firmware exposes clocks that can be controlled via the ACPM > interface. Describe the clocks exposed by the APM firmware. ACPM? APM is Advanced Power Management aka the predecessor to ACPI? > > Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> > --- > .../bindings/firmware/google,gs101-acpm-ipc.yaml | 28 ++++++++++++++++++++++ > include/dt-bindings/clock/google,gs101.h | 15 ++++++++++++ > 2 files changed, 43 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..27cdf9c881ca680e78e77a0e14ffcffeba970871 100644 > --- a/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml > +++ b/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml > @@ -27,6 +27,29 @@ properties: > mboxes: > maxItems: 1 > > + clocks: > + 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. > + type: object > + additionalProperties: false You don't need a child node. Just add #clock-cells to the parent. > + > + properties: > + compatible: > + const: google,gs101-acpm-dvfs-clocks > + > + "#clock-cells": > + const: 1 > + description: > + The argument is the ID of the clock contained by the firmware > + messages. > + > + required: > + - compatible > + - "#clock-cells" > + > pmic: > description: Child node describing the main PMIC. > type: object > @@ -59,6 +82,11 @@ examples: > mboxes = <&ap2apm_mailbox>; > shmem = <&apm_sram>; > > + clocks { > + compatible = "google,gs101-acpm-dvfs-clocks"; > + #clock-cells = <1>; > + }; > + > pmic { > compatible = "samsung,s2mpg10-pmic"; > interrupts-extended = <&gpa0 6 IRQ_TYPE_LEVEL_LOW>; > 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.rc1.167.g924127e9c0-goog >