[PATCH v7 07/10] power: reset: macsmc-reboot: Add driver for rebooting via Apple SMC
Lee Jones
lee at kernel.org
Wed Jul 23 01:06:15 PDT 2025
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.
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.
--
Lee Jones [李琼斯]
More information about the linux-arm-kernel
mailing list