From: Tudor Ambarus <tudor.ambarus@linaro.org>
To: "Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Peter Griffin" <peter.griffin@linaro.org>,
"André Draszik" <andre.draszik@linaro.org>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Alim Akhtar" <alim.akhtar@samsung.com>,
"Sylwester Nawrocki" <s.nawrocki@samsung.com>,
"Chanwoo Choi" <cw00.choi@samsung.com>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Will Deacon" <will@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
willmcvicker@google.com, kernel-team@android.com,
Tudor Ambarus <tudor.ambarus@linaro.org>
Subject: [PATCH v6 0/6] exynos-acpm: add DVFS protocol and clock driver
Date: Fri, 10 Oct 2025 12:46:30 +0000 [thread overview]
Message-ID: <20251010-acpm-clk-v6-0-321ee8826fd4@linaro.org> (raw)
Dependencies description:
All patches should go through the Samsung SoC tree.
The acpm-clk driver (#4) depends on the ACPM DVFS ops (#2).
If the clock subsystem needs to merge the new clock driver, it will
need an immutable tag with the 2 patches.
The following DT patches depend on the bindings from #1:
https://lore.kernel.org/linux-samsung-soc/20250924-acpm-dvfs-dt-v4-0-3106d49e03f5@linaro.org/
The Alive CLock and Power Manager (ACPM) firmware exposes 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. Make the ACPM node a clock provider.
Add support for the ACPM DVFS protocol. It translates clock frequency
requests to messages that can be interpreted by the ACPM firmware.
Add an ACPM clock driver to model the clocks exposed by the ACPM firmware.
Thanks,
ta
Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
---
Changes in v6:
- acpm-clk: s/b0/bo, (big ocean)
- acpm-dvfs: drop dbg_val arg from get_rate(). It's unused upstream and
we'll probably choose to introduce a dedicated debug API if needed.
- MAINTAINERS: add ACPM clock bindings and driver (new patch)
- Link to v5: https://lore.kernel.org/r/20250924-acpm-clk-v5-0-4cca1fadd00d@linaro.org
Changes in v5:
- acpm-clk: address Stephen's comments:
- drop of.h unused include, add devres/devres.h and container_of.h
to avoid implicit includes.
- r/acpm_clk_ops_init/acpm_clk_register.
- remove period from error messages, drop comma after sentinel in
platform_device_id.
- collect Peter's R-b and T-b tags.
- Link to v4: https://lore.kernel.org/r/20250908-acpm-clk-v4-0-633350c0c0b1@linaro.org
Changes in v4:
- clk-acpm:
- remove GS101_ACPM_CLK_ID type handling. Dead code, it should be
introduced with next devices.
- remove runtime check on clock IDs. Instead add a comment about the
assumptions the code is making: the clock IDs start from zero, are
sequential and do not have gaps. Slight changes based on this
assumption: s/hws[id]/hws[i], remove the inclusion of
dt-bindings/clock/google,gs101-acpm.h and the use of the clock IDs.
The clocks are defined solely by name in the driver.
- move firmware patches close to each other, in between the bindings and
the clock driver
- update the description of dependencies in the cover letter.
- Link to v3: https://lore.kernel.org/r/20250903-acpm-clk-v3-0-65ecd42d88c7@linaro.org
Changes in v3:
- dt-bindings:
- move clock bindings to a new bindings header
- update commit's subject, s/add #clock-cells/add ACPM clocks.
It also suggests that the bindings are added.
- prepend "GS101_" on clocks binding name. The bindings name are the
same for GS201 and the acpm-clk driver will likely include both.
- collect Rob's R-b
- clk-acpm:
- move clock definitions here instead of keeping them into the
ACPM protocol driver
- use platform_driver.id_table to differentiate device type
- fix Kconfig dependency, || (COMPILE_TEST && !EXYNOS_ACPM_PROTOCOL)
- update commit subject, s/dev/pdev
- exynos-acpm:
- move clock definitions to clk-acpm
- use devm-action to unregister clk-acpm platform device
- Link to v2: https://lore.kernel.org/r/20250827-acpm-clk-v2-0-de5c86b49b64@linaro.org
Changes in v2:
- dt-bindings: clocks are not longer a child of ACPM protocol. Instead
make Alive Clock and Power Manager (ACPM) node a clock provider.
Update commit message.
- firmware: exynos-acpm: register by hand the ACPM clocks dev (new
patch)
- firmware: exynos-acpm: use defines intead of enum
- acpm-clk:
- switch to determine_rate
- drop __init, __refdata, __initconst, this is a module, we need those
methods and data, after boot as well.
- fix the assumption that the clocks are defined by ID in ascending order.
There's still an assumption that the clk_id < nr_clks, but this is
now covered by a sanity check in the clock driver.
- arm64: defconfig: enable Exynos ACPM clocks (add patch together with
this patch set)
- Link to v1: https://lore.kernel.org/r/20250819-acpm-clk-v1-0-6bbd97474671@linaro.org
---
Tudor Ambarus (6):
dt-bindings: firmware: google,gs101-acpm-ipc: add ACPM clocks
firmware: exynos-acpm: add DVFS protocol
firmware: exynos-acpm: register ACPM clocks pdev
clk: samsung: add Exynos ACPM clock driver
arm64: defconfig: enable Exynos ACPM clocks
MAINTAINERS: add ACPM clock bindings and driver
.../bindings/firmware/google,gs101-acpm-ipc.yaml | 11 ++
MAINTAINERS | 3 +-
arch/arm64/configs/defconfig | 1 +
drivers/clk/samsung/Kconfig | 10 ++
drivers/clk/samsung/Makefile | 1 +
drivers/clk/samsung/clk-acpm.c | 185 +++++++++++++++++++++
drivers/firmware/samsung/Makefile | 4 +-
drivers/firmware/samsung/exynos-acpm-dvfs.c | 80 +++++++++
drivers/firmware/samsung/exynos-acpm-dvfs.h | 21 +++
drivers/firmware/samsung/exynos-acpm.c | 26 +++
include/dt-bindings/clock/google,gs101-acpm.h | 26 +++
.../linux/firmware/samsung/exynos-acpm-protocol.h | 10 ++
12 files changed, 376 insertions(+), 2 deletions(-)
---
base-commit: 5472d60c129f75282d94ae5ad072ee6dfb7c7246
change-id: 20250819-acpm-clk-28d2a78e0307
Best regards,
--
Tudor Ambarus <tudor.ambarus@linaro.org>
next reply other threads:[~2025-10-10 12:46 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-10 12:46 Tudor Ambarus [this message]
2025-10-10 12:46 ` [PATCH v6 1/6] dt-bindings: firmware: google,gs101-acpm-ipc: add ACPM clocks Tudor Ambarus
2025-10-20 6:55 ` (subset) " Krzysztof Kozlowski
2025-10-10 12:46 ` [PATCH v6 2/6] firmware: exynos-acpm: add DVFS protocol Tudor Ambarus
2025-10-20 6:55 ` (subset) " Krzysztof Kozlowski
2025-10-10 12:46 ` [PATCH v6 3/6] firmware: exynos-acpm: register ACPM clocks pdev Tudor Ambarus
2025-10-20 6:55 ` (subset) " Krzysztof Kozlowski
2025-10-10 12:46 ` [PATCH v6 4/6] clk: samsung: add Exynos ACPM clock driver Tudor Ambarus
2025-10-20 6:54 ` Krzysztof Kozlowski
2025-10-20 7:45 ` Tudor Ambarus
2025-10-20 8:22 ` Krzysztof Kozlowski
2025-10-20 9:19 ` Tudor Ambarus
2025-10-20 9:58 ` Krzysztof Kozlowski
2025-10-20 11:02 ` Tudor Ambarus
2025-10-20 11:21 ` Krzysztof Kozlowski
2025-10-20 6:55 ` (subset) " Krzysztof Kozlowski
2025-10-10 12:46 ` [PATCH v6 5/6] arm64: defconfig: enable Exynos ACPM clocks Tudor Ambarus
2025-10-20 6:55 ` (subset) " Krzysztof Kozlowski
2025-10-10 12:46 ` [PATCH v6 6/6] MAINTAINERS: add ACPM clock bindings and driver Tudor Ambarus
2025-10-20 6:55 ` (subset) " Krzysztof Kozlowski
2025-10-20 7:03 ` [PATCH v6 0/6] exynos-acpm: add DVFS protocol and clock driver Krzysztof Kozlowski
2025-10-20 9:53 ` Tudor Ambarus
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=20251010-acpm-clk-v6-0-321ee8826fd4@linaro.org \
--to=tudor.ambarus@linaro.org \
--cc=alim.akhtar@samsung.com \
--cc=andre.draszik@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=cw00.choi@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=kernel-team@android.com \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=peter.griffin@linaro.org \
--cc=robh@kernel.org \
--cc=s.nawrocki@samsung.com \
--cc=sboyd@kernel.org \
--cc=will@kernel.org \
--cc=willmcvicker@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).