From: Janne Grunau j@jannau.net
[ Upstream commit 9b959e525fa7e8518e57554b6e17849942938dfc ]
After discussion with the devicetree maintainers we agreed to not extend lists with the generic compatible "apple,smc" anymore [1]. Use "apple,t8103-smc" 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.or...
Signed-off-by: Janne Grunau j@jannau.net Link: https://lore.kernel.org/r/20250828-dt-apple-t6020-v1-18-507ba4c4b98e@jannau.... Signed-off-by: Lee Jones lee@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
YES
- What changed - Adds a new OF match entry `{ .compatible = "apple,t8103-smc" }` to the driver’s match table in drivers/mfd/macsmc.c:481, leaving the existing generic match `{ .compatible = "apple,smc" }` intact.
- Why it matters - Devicetree policy is moving away from expanding generic compatibles like `"apple,smc"` and towards SoC‑specific base compatibles. The binding documents this pattern and uses SoC‑specific compatibles with explicit fallback chains (Documentation/devicetree/bindings/mfd/apple,smc.yaml:20). - Current DTs for Apple SoCs use these patterns: - t8103 (M1) nodes include `"apple,t8103-smc"` (arch/arm64/boot/dts/apple/t8103.dtsi:900). - t6020 (M2 Pro) nodes use `"apple,t6020-smc", "apple,t8103-smc"` (arch/arm64/boot/dts/apple/t602x-die0.dtsi:105), intentionally avoiding the generic `"apple,smc"`. - Before this change, the driver only matched `"apple,smc"` (v6.17:drivers/mfd/macsmc.c showed only the generic match), so kernels without the `"apple,t8103-smc"` entry would fail to bind on DTs that omit the generic fallback, causing the SMC MFD (and all dependent subdevices like GPIO and reboot) not to probe.
- Risk and scope - Minimal and contained: a one‑line addition to an OF match table (drivers/mfd/macsmc.c:481). No functional code paths change, no behavioral differences for already working systems, and no architectural changes. - Security-neutral: no new I/O or parsing paths are introduced; only device binding is enabled for an SoC‑specific compatible. - No negative side effects expected: the new match string is specific and does not overlap with other drivers.
- Stable suitability - This is a classic “device/compatible ID addition” that fixes a user- visible binding failure when DTs conform to updated bindings that avoid the generic `"apple,smc"`. Such ID additions are routinely accepted into stable to enable hardware that otherwise won’t probe. - Although the commit lacks an explicit Cc: stable, it meets stable rules: important fix (driver doesn’t bind on modern DTs), minimal risk, no features, and confined to the MFD subsystem.
Conclusion: Backporting ensures the macsmc driver binds on DTs using the SoC-based compatible scheme (notably those that rely on `"apple,t8103-smc"` fallback), with negligible regression risk.
drivers/mfd/macsmc.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/mfd/macsmc.c b/drivers/mfd/macsmc.c index 870c8b2028a8f..a5e0b99484830 100644 --- a/drivers/mfd/macsmc.c +++ b/drivers/mfd/macsmc.c @@ -478,6 +478,7 @@ static int apple_smc_probe(struct platform_device *pdev) }
static const struct of_device_id apple_smc_of_match[] = { + { .compatible = "apple,t8103-smc" }, { .compatible = "apple,smc" }, {}, };