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

Sven Peter sven at kernel.org
Wed Jul 23 23:08:34 PDT 2025


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 at marcan.st>
>>>>
>>>> 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 at marcan.st>
>>>> Reviewed-by: Alyssa Rosenzweig <alyssa at rosenzweig.io>
>>>> Reviewed-by: Neal Gompa <neal at gompa.dev>
>>>> Reviewed-by: Sebastian Reichel <sebastian.reichel at collabora.com>
>>>> Signed-off-by: Sven Peter <sven at kernel.org>
>>>> ---
>>>>    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




More information about the linux-arm-kernel mailing list