[PATCH AUTOSEL 6.17-6.6] pmdomain: apple: Add "apple,t8103-pmgr-pwrstate"

Sasha Levin sashal at kernel.org
Thu Oct 9 08:55:55 PDT 2025


From: Janne Grunau <j at jannau.net>

[ Upstream commit 442816f97a4f84cb321d3359177a3b9b0ce48a60 ]

After discussion with the devicetree maintainers we agreed to not extend
lists with the generic compatible "apple,pmgr-pwrstate" anymore [1]. Use
"apple,t8103-pmgr-pwrstate" as base compatible as it is the SoC the
driver and bindings were written for.

[1]: https://lore.kernel.org/asahi/12ab93b7-1fc2-4ce0-926e-c8141cfe81bf@kernel.org/

Signed-off-by: Janne Grunau <j at jannau.net>
Acked-by: Ulf Hansson <ulf.hansson at linaro.org>
Reviewed-by: Neal Gompa <neal at gompa.dev>
Acked-by: Rob Herring (Arm) <robh at kernel.org>
Signed-off-by: Sven Peter <sven at kernel.org>
Signed-off-by: Sasha Levin <sashal at kernel.org>
---

LLM Generated explanations, may be completely bogus:

YES

- What changed: The patch adds a single OF compatible to the driver
  match table to explicitly support the Apple M1 (t8103) PMGR power-
  state nodes. Concretely, it inserts `{ .compatible =
  "apple,t8103-pmgr-pwrstate" }` in `drivers/pmdomain/apple/pmgr-
  pwrstate.c:309`, keeping the existing generic fallback `{ .compatible
  = "apple,pmgr-pwrstate" }` just below it (drivers/pmdomain/apple/pmgr-
  pwrstate.c:310).
- Rationale from commit message: DT maintainers agreed to stop extending
  nodes with the generic `"apple,pmgr-pwrstate"` and instead use the
  SoC-specific string as the base compatible. Without this addition, a
  DT using only `"apple,t8103-pmgr-pwrstate"` would fail to bind the
  driver.
- Scope and risk: The change is a single-line device-ID addition to the
  OF match table. It does not touch runtime logic, data structures,
  Kconfig, or probe/remove paths. There are no architectural changes.
  This kind of “add a new compatible ID” patch is routinely accepted for
  stable because it’s low-risk and purely affects device binding.
- User impact fixed: On systems providing a DTB that omits the generic
  fallback (aligned with the new binding guidance), the driver would not
  probe, leaving PM domains and reset control unmanaged. Adding the
  t8103 compatible restores functionality. This is a real, user-visible
  failure mode when booting older kernels with newer DTBs or bootloader-
  provided DTBs following updated conventions.
- Alignment with bindings: The bindings already enumerate SoC-specific
  compatibles, including `"apple,t8103-pmgr-pwrstate"`
  (Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml:41).
  The driver now matches that SoC-specific string directly, which aligns
  the implementation with binding expectations going forward.
- No regressions expected: Existing DTs that list both
  `"apple,t8103-pmgr-pwrstate", "apple,pmgr-pwrstate"` continue to bind
  identically, only preferring the SoC-specific match. DTs that still
  only have the generic string continue to work via the unchanged `{
  .compatible = "apple,pmgr-pwrstate" }` entry
  (drivers/pmdomain/apple/pmgr-pwrstate.c:310).
- Stable policy fit: This is a minimal, contained, non-feature change
  that enables correct binding for an existing driver on an existing SoC
  and prevents regressions with evolving DTs. There’s no security
  implication and no interaction with critical core subsystems beyond OF
  matching.
- Backport note: On older stable series, the file may reside under a
  different path (pre-“pmdomain” rename). The change remains a trivial
  OF-ID addition to the same match table in that file.

Given the above, this is a textbook low-risk backport that prevents real
breakage with newer DTBs and should be backported to stable trees that
already contain the Apple PMGR power-state driver.

 drivers/pmdomain/apple/pmgr-pwrstate.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/pmdomain/apple/pmgr-pwrstate.c b/drivers/pmdomain/apple/pmgr-pwrstate.c
index 9467235110f46..82c33cf727a82 100644
--- a/drivers/pmdomain/apple/pmgr-pwrstate.c
+++ b/drivers/pmdomain/apple/pmgr-pwrstate.c
@@ -306,6 +306,7 @@ static int apple_pmgr_ps_probe(struct platform_device *pdev)
 }
 
 static const struct of_device_id apple_pmgr_ps_of_match[] = {
+	{ .compatible = "apple,t8103-pmgr-pwrstate" },
 	{ .compatible = "apple,pmgr-pwrstate" },
 	{}
 };
-- 
2.51.0




More information about the linux-arm-kernel mailing list