[PATCH v3 1/2] dt-bindings: firmware: google,gs101-acpm-ipc: document Exynos850 compatible
From: Alexey Klimov
Date: Mon Sep 28 2026 - 22:11:35 EST
The Exynos850 SoC incorporates an APM co-processor. Communication with this
hardware block is done using the ACPM protocol, which handles IPC messages
for clocks, power, thermal management and PMIC control. In this
architecture, the ACPM firmware running on the APM acts as the central
supervisor or arbiter for shared system resources, handling requests from
clients or agents such as an OSPM. In this design, the OSPM is one of
several clients or agents communicating with APM.
Dedicated compatible string is required for the Exynos850 because
its firmware utilizes a different initialisation data base offset
(0x7000) compared to the existing GS101 implementation (0xa000).
Additionally, the ACPM firmware implementation on Exynos850 does not cover
all clock management operations (such as clock rate reads over ACPM IPC).
To allow the OSPM to resolve rates for these ACPM clock IDs or sometimes
called domains, add 'clocks' and 'clock-names' properties to reference the
underlying physical clocks.
Add the "samsung,exynos850-acpm-ipc" compatible string, binding defines for
Exynos850 ACPM clock IDs, clock property constraints, and disallow GS101-
specific PMIC child nodes for Exynos850.
Signed-off-by: Alexey Klimov <alexey.klimov@xxxxxxxxxx>
---
.../bindings/firmware/google,gs101-acpm-ipc.yaml | 56 +++++++++++++++++++++-
include/dt-bindings/clock/samsung,exynos850-acpm.h | 21 ++++++++
2 files changed, 76 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml b/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
index e68f9c3ca5e2..0eaa9c881f6f 100644
--- a/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
+++ b/Documentation/devicetree/bindings/firmware/google,gs101-acpm-ipc.yaml
@@ -22,7 +22,9 @@ description: |
properties:
compatible:
- const: google,gs101-acpm-ipc
+ enum:
+ - google,gs101-acpm-ipc
+ - samsung,exynos850-acpm-ipc
"#clock-cells":
const: 1
@@ -33,6 +35,20 @@ properties:
appropriately with the clock scaling. The argument is the ID of the
clock contained by the firmware messages.
+ clocks:
+ minItems: 1
+ maxItems: 9
+ description:
+ List of the underlying clocks associated with each ACPM clock domain.
+ This property relates to ACPM firmware variants where not all clock
+ operations are implemented.
+
+ clock-names:
+ minItems: 1
+ maxItems: 9
+ description:
+ Names of the ACPM clock domains corresponding to entries in 'clocks'.
+
mboxes:
maxItems: 1
@@ -77,6 +93,44 @@ required:
- mboxes
- shmem
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: google,gs101-acpm-ipc
+ then:
+ properties:
+ clocks: false
+ clock-names: false
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: samsung,exynos850-acpm-ipc
+ then:
+ properties:
+ clock-names:
+ items:
+ enum:
+ - mif
+ - int
+ - cpucl0
+ - cpucl1
+ - g3d
+ - aud
+ - cam
+ - disp
+ - cp
+ uniqueItems: true
+ pmic: false
+ pmic-1: false
+ pmic-2: false
+ required:
+ - clocks
+ - clock-names
+
additionalProperties: false
examples:
diff --git a/include/dt-bindings/clock/samsung,exynos850-acpm.h b/include/dt-bindings/clock/samsung,exynos850-acpm.h
new file mode 100644
index 000000000000..87fc6ccc1d99
--- /dev/null
+++ b/include/dt-bindings/clock/samsung,exynos850-acpm.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright 2026 Linaro Ltd.
+ *
+ * Device Tree binding constants for Exynos850 ACPM clock controller.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_SAMSUNG_EXYNOS850_ACPM_H
+#define _DT_BINDINGS_CLOCK_SAMSUNG_EXYNOS850_ACPM_H
+
+#define EXYNOS850_CLK_ACPM_DVFS_MIF 0
+#define EXYNOS850_CLK_ACPM_DVFS_INT 1
+#define EXYNOS850_CLK_ACPM_DVFS_CPUCL0 2
+#define EXYNOS850_CLK_ACPM_DVFS_CPUCL1 3
+#define EXYNOS850_CLK_ACPM_DVFS_G3D 4
+#define EXYNOS850_CLK_ACPM_DVFS_AUD 5
+#define EXYNOS850_CLK_ACPM_DVFS_CAM 6
+#define EXYNOS850_CLK_ACPM_DVFS_DISP 7
+#define EXYNOS850_CLK_ACPM_DVFS_CP 8
+
+#endif /* _DT_BINDINGS_CLOCK_SAMSUNG_EXYNOS850_ACPM_H */
--
2.51.0