Thread (28 messages) 28 messages, 6 authors, 2025-08-10

Re: [PATCH v7 05/10] mfd: Add Apple Silicon System Management Controller

From: Sven Peter <sven@kernel.org>
Date: 2025-06-21 15:51:39
Also in: asahi, linux-devicetree, linux-gpio, linux-pm, lkml

On 19.06.25 13:49, Lee Jones wrote:
On Tue, 10 Jun 2025, Sven Peter wrote:
quoted
The System Management Controller (SMC) on Apple Silicon machines is a
piece of hardware that exposes various functionalities such as
temperature sensors, voltage/power meters, shutdown/reboot handling,
GPIOs and more.

Communication happens via a shared mailbox using the RTKit protocol
which is also used for other co-processors. The SMC protocol then allows
reading and writing many different keys which implement the various
features. The MFD core device handles this protocol and exposes it
to the sub-devices.

Some of the sub-devices are potentially also useful on pre-M1 Apple
machines and support for SMCs on these machines can be added at a later
time.

Co-developed-by: Hector Martin <redacted>
Signed-off-by: Hector Martin <redacted>
Reviewed-by: Alyssa Rosenzweig <redacted>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Sven Peter <sven@kernel.org>
---
  MAINTAINERS                |   2 +
  drivers/mfd/Kconfig        |  18 ++
  drivers/mfd/Makefile       |   1 +
  drivers/mfd/macsmc.c       | 498 +++++++++++++++++++++++++++++++++++++++++++++
  include/linux/mfd/macsmc.h | 279 +++++++++++++++++++++++++
  5 files changed, 798 insertions(+)
This is ready.  Let me know when you have all of the other driver/* Acks.
They've all been reviewed by the respective maintainers.

I assume you want to take this all through the mfd tree and we'll need 
acks from Sebastian for power/reset and either Linus or Bartosz for gpio 
then.

The one line change inside drivers/soc/apple would usually go through my 
tree and I'm fine with taking that through mfd instead.


Sven

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help