From: Lee Jones <lee@kernel.org>
To: James Calligeros <jcalligeros99@gmail.com>
Cc: Sven Peter <sven@kernel.org>, Janne Grunau <j@jannau.net>,
Alyssa Rosenzweig <alyssa@rosenzweig.io>,
Neal Gompa <neal@gompa.dev>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Jean Delvare <jdelvare@suse.com>,
Guenter Roeck <linux@roeck-us.net>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Jonathan Corbet <corbet@lwn.net>,
asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rtc@vger.kernel.org, linux-hwmon@vger.kernel.org,
linux-input@vger.kernel.org, linux-doc@vger.kernel.org,
Hector Martin <marcan@marcan.st>
Subject: Re: [PATCH v4 03/11] rtc: Add new rtc-macsmc driver for Apple Silicon Macs
Date: Thu, 6 Nov 2025 13:54:14 +0000 [thread overview]
Message-ID: <20251106135414.GO8064@google.com> (raw)
In-Reply-To: <20251025-macsmc-subdevs-v4-3-374d5c9eba0e@gmail.com>
On Sat, 25 Oct 2025, James Calligeros wrote:
> From: Hector Martin <marcan@marcan.st>
>
> Apple Silicon Macs (M1, etc.) have an RTC that is part of the PMU IC,
> but most of the PMU functionality is abstracted out by the SMC.
> On T600x machines, the RTC counter must be accessed via the SMC to
> get full functionality, and it seems likely that future machines
> will move towards making SMC handle all RTC functionality.
>
> The SMC RTC counter access is implemented on all current machines
> as of the time of this writing, on firmware 12.x. However, the RTC
> offset (needed to set the time) is still only accessible via direct
> PMU access. To handle this, we expose the RTC offset as an NVMEM
> cell from the SPMI PMU device node, and this driver consumes that
> cell and uses it to compute/set the current time.
>
> Reviewed-by: Neal Gompa <neal@gompa.dev>
> Signed-off-by: Hector Martin <marcan@marcan.st>
> Signed-off-by: Sven Peter <sven@kernel.org>
> Signed-off-by: James Calligeros <jcalligeros99@gmail.com>
> ---
> MAINTAINERS | 1 +
> drivers/rtc/Kconfig | 11 ++
> drivers/rtc/Makefile | 1 +
> drivers/rtc/rtc-macsmc.c | 141 +++++++++++++++++++++++++
> 4 files changed, 154 insertions(+)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 10f4c0034b5e..3c6322872dd1 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2460,6 +2460,7 @@ F: drivers/nvmem/apple-spmi-nvmem.c
> F: drivers/pinctrl/pinctrl-apple-gpio.c
> F: drivers/power/reset/macsmc-reboot.c
> F: drivers/pwm/pwm-apple.c
> +F: drivers/rtc/rtc-macsmc.c
> F: drivers/soc/apple/*
> F: drivers/spi/spi-apple.c
> F: drivers/spmi/spmi-apple-controller.c
> diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
> index 4a8dc8d0a4b7..e165301d4abb 100644
> --- a/drivers/rtc/Kconfig
> +++ b/drivers/rtc/Kconfig
> @@ -2078,6 +2078,17 @@ config RTC_DRV_WILCO_EC
> This can also be built as a module. If so, the module will
> be named "rtc_wilco_ec".
>
> +config RTC_DRV_MACSMC
> + tristate "Apple Mac System Management Controller RTC"
> + depends on MFD_MACSMC
> + help
> + If you say yes here you get support for RTC functions
> + inside Apple SPMI PMUs accessed through the SoC's
> + System Management Controller
> +
> + To compile this driver as a module, choose M here: the
> + module will be called rtc-macsmc.
> +
> config RTC_DRV_MSC313
> tristate "MStar MSC313 RTC"
> depends on ARCH_MSTARV7 || COMPILE_TEST
> diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
> index 610a9ee5fd33..32083bd5bb81 100644
> --- a/drivers/rtc/Makefile
> +++ b/drivers/rtc/Makefile
> @@ -93,6 +93,7 @@ obj-$(CONFIG_RTC_DRV_M48T35) += rtc-m48t35.o
> obj-$(CONFIG_RTC_DRV_M48T59) += rtc-m48t59.o
> obj-$(CONFIG_RTC_DRV_M48T86) += rtc-m48t86.o
> obj-$(CONFIG_RTC_DRV_MA35D1) += rtc-ma35d1.o
> +obj-$(CONFIG_RTC_DRV_MACSMC) += rtc-macsmc.o
> obj-$(CONFIG_RTC_DRV_MAX31335) += rtc-max31335.o
> obj-$(CONFIG_RTC_DRV_MAX6900) += rtc-max6900.o
> obj-$(CONFIG_RTC_DRV_MAX6902) += rtc-max6902.o
> diff --git a/drivers/rtc/rtc-macsmc.c b/drivers/rtc/rtc-macsmc.c
> new file mode 100644
> index 000000000000..05e360277f63
> --- /dev/null
> +++ b/drivers/rtc/rtc-macsmc.c
> @@ -0,0 +1,141 @@
> +// SPDX-License-Identifier: GPL-2.0-only OR MIT
> +/*
> + * Apple SMC RTC driver
> + * Copyright The Asahi Linux Contributors
> + */
> +
> +#include <linux/bitops.h>
> +#include <linux/mfd/core.h>
Why is this here?
> +#include <linux/mfd/macsmc.h>
> +#include <linux/module.h>
> +#include <linux/nvmem-consumer.h>
> +#include <linux/of.h>
> +#include <linux/platform_device.h>
> +#include <linux/rtc.h>
> +#include <linux/slab.h>
--
Lee Jones [李琼斯]
next prev parent reply other threads:[~2025-11-06 13:54 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-25 0:24 [PATCH v4 00/11] mfd: macsmc: add rtc, hwmon and hid subdevices James Calligeros
2025-10-25 0:24 ` [PATCH v4 01/11] dt-bindings: rtc: Add Apple SMC RTC James Calligeros
2025-10-25 0:24 ` [PATCH v4 02/11] dt-bindings: hwmon: Add Apple System Management Controller hwmon schema James Calligeros
2025-10-25 0:24 ` [PATCH v4 03/11] rtc: Add new rtc-macsmc driver for Apple Silicon Macs James Calligeros
2025-11-06 13:54 ` Lee Jones [this message]
2025-10-25 0:24 ` [PATCH v4 04/11] mfd: macsmc: Wire up Apple SMC RTC subdevice James Calligeros
2025-10-25 0:24 ` [PATCH v4 05/11] mfd: macsmc: Add new __SMC_KEY macro James Calligeros
2025-11-06 13:56 ` (subset) " Lee Jones
2025-10-25 0:24 ` [PATCH v4 06/11] hwmon: Add Apple Silicon SMC hwmon driver James Calligeros
2025-11-06 14:00 ` [GIT PULL] Immutable branch between MFD and HWMON due for the v6.19 merge window Lee Jones
2025-10-25 0:24 ` [PATCH v4 07/11] mfd: macsmc: Wire up Apple SMC hwmon subdevice James Calligeros
2025-10-25 0:24 ` [PATCH v4 08/11] input: macsmc-input: New driver to handle the Apple Mac SMC buttons/lid James Calligeros
2025-11-06 13:53 ` Lee Jones
2025-10-25 0:24 ` [PATCH v4 09/11] mfd: macsmc: Wire up Apple SMC input subdevice James Calligeros
2025-10-25 0:24 ` [PATCH v4 10/11] arm64: dts: apple: t8103,t60xx,t8112: Add SMC RTC node James Calligeros
2025-10-25 0:24 ` [PATCH v4 11/11] arm64: dts: apple: t8103, t8112, t60xx: Add hwmon SMC subdevice James Calligeros
2025-11-06 13:55 ` [PATCH v4 00/11] mfd: macsmc: add rtc, hwmon and hid subdevices Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251106135414.GO8064@google.com \
--to=lee@kernel.org \
--cc=alexandre.belloni@bootlin.com \
--cc=alyssa@rosenzweig.io \
--cc=asahi@lists.linux.dev \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=j@jannau.net \
--cc=jcalligeros99@gmail.com \
--cc=jdelvare@suse.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=marcan@marcan.st \
--cc=neal@gompa.dev \
--cc=robh@kernel.org \
--cc=sven@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.