Re: [PATCH v7 07/10] power: reset: macsmc-reboot: Add driver for rebooting via Apple SMC

From: Sven Peter
Date: Thu Jul 24 2025 - 02:08:55 EST


On 23.07.25 10:06, Lee Jones wrote:
On Sat, 21 Jun 2025, Sven Peter wrote:

On 16.06.25 06:13, Nick Chan wrote:


On 10/6/2025 23:29, Sven Peter wrote:
From: Hector Martin <marcan@xxxxxxxxx>

This driver implements the reboot/shutdown support exposed by the SMC
on Apple Silicon machines, such as Apple M1 Macs.

Signed-off-by: Hector Martin <marcan@xxxxxxxxx>
Reviewed-by: Alyssa Rosenzweig <alyssa@xxxxxxxxxxxxx>
Reviewed-by: Neal Gompa <neal@xxxxxxxxx>
Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
Signed-off-by: Sven Peter <sven@xxxxxxxxxx>
---
MAINTAINERS | 1 +
drivers/power/reset/Kconfig | 9 ++
drivers/power/reset/Makefile | 1 +
drivers/power/reset/macsmc-reboot.c | 290 ++++++++++++++++++++++++++++++++++++
4 files changed, 301 insertions(+)
[...]

It seems that the reboot driver still probes even without the smc_reboot node in the smc node:


That's odd...

Lee, is it expected that a mfd sub-device declared with
MFD_CELL_OF("macsmc-reboot", NULL, NULL, 0, 0, "apple,smc-reboot"),
is loaded even if there's no corresponding node in the device tree?

I'll have to re-add the check that makes sure the sub-device is available
then.

Yes, that's expected. MFD is orthogonal to DT with respect to device
registration, unless you specifically disable the node in DT. If the
node is missing, the device will still be registered, but no link will
be made from the (non-existent) node to the 'of_node' pointer.

Makes sense!


You have 3 choices; provide a DT node and explicitly set the status to
'disabled', optionally omit registration from MFD (i.e. do not call
mfd_add_devices()) or check for (!pdev->dev.of_node) in the sub-device's
.probe() and bomb out early if true.


Alright, so everything's working as intended then and the series has all required Acks. I'd suggest that we take it as-is then (either now if
you're still picking things up before the merge window or after -rc1 is
out otherwise) since it only adds support for M1 and later and those
have all subdevices added here.

Once Nick adds support for pre-M1 SMC we can do one of those three
things to disable the reboot sub-device then.


Best,


Sven