[PATCH 00/12] arm64: dts: apple: Add SMC hwmon nodes

From: James Calligeros

Date: Sun Jul 12 2026 - 05:44:24 EST


Hi folks,

Following on from the series which added SMC hwmon driver[1], this
series spins out and adds the Devicetree nodes required for the hwmon
driver to operate. These were missed back in December.

The System Management Controller on Apple Silicon devices exposes
the temperature, voltage, power and fan speed data from numerous
(potentially hundreds) of sensors scattered about the SoC and
device at large. Unfortunately there is very little rhyme or reason
to how Apple expose these using the SMC firmware's FourCC key-value
system. Some sensors are reliably common across all devices and
all SoCs, like PSTR which measures the total platform power consumption.
Others are specific to a class of device, like the fan control
keys, which are only present on devices with fans. Some are specific
to a single SoC, and others still are specific to a single device.
To complicate matters further, some SoCs are not even consistent
across devices; the application core temperature sensors for a
given SoC are read from different keys depending on the device
that SoC is in...

Trying to express all of this in every device's Devicetree is a fool's
errand. To eliminate duplication, we instead use .dtsi files to
compose a set of sensors for each device in a saner way:
- Sensors empirically proven to exist on all SoCs for all devices
go in hwmon-common.dtsi
- Sensors empirically proven to exist on all devices with a given
SoC can go in a SoC-specific hwmon-${soc}.dtsi file, much as we
do with PMGR and GPIO currentlyo
- Sensors empirically proven to exist on all devices of a specific
class go in hwmon-${class}.dtsi (e.g. hwmon-laptop.dtsi)
- Fan control endpoints are reliably common across all devices
with fans, which will #include hwmon-fan-*.dtsi
- Sensors specific to one device only can be expressed in that
device's specific .dts file

This series introduces some basic sensors we know about to get the ball
rolling. As you can imagine trying to find every valid sensor on every
device and figure out what it's actually measuring is a tedious and
labour intensive process, so expect more sensors at some point in
the future.

Regards,
James

[1] https://lore.kernel.org/asahi/20251112-macsmc-subdevs-v5-0-728e4b91fe81@xxxxxxxxx/

---
James Calligeros (12):
arm64: dts: apple: t8112: Add SMC hwmon node
arm64: dts: apple: t8103: Add SMC hwmon node
arm64: dts: apple: t600x: Add SMC hwmon node
arm64: dts: apple: t602x: Add SMC hwmon node
arm64: dts: apple: Add common SMC hwmon infrastructure
arm64: dts: apple: t8103: Add common SMC hwmon sensors
arm64: dts: apple: t8112: Add common SMC hwmon sensors
arm64: dts: apple: t600x: Add common SMC hwmon sensors
arm64: dts: apple: t602x: Add common SMC hwmon sensors
arm64: dts: apple: t8103: jxxx: Add device-specific SMC hwmon sensors
arm64: dts: apple: t8112: jxxx: Add device-specific SMC hwmon sensors
arm64: dts: apple: t60xx: jxxx: Add device-specific SMC hwmon sensors

arch/arm64/boot/dts/apple/hwmon-common.dtsi | 38 ++++++++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/hwmon-fan-dual.dtsi | 23 +++++++++++++++++++++++
arch/arm64/boot/dts/apple/hwmon-fan.dtsi | 17 +++++++++++++++++
arch/arm64/boot/dts/apple/hwmon-laptop.dtsi | 38 ++++++++++++++++++++++++++++++++++++++
arch/arm64/boot/dts/apple/hwmon-mini.dtsi | 16 ++++++++++++++++
arch/arm64/boot/dts/apple/t6001-j375c.dts | 2 ++
arch/arm64/boot/dts/apple/t6001.dtsi | 2 ++
arch/arm64/boot/dts/apple/t6002-j375d.dts | 2 ++
arch/arm64/boot/dts/apple/t6002.dtsi | 2 ++
arch/arm64/boot/dts/apple/t600x-die0.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi | 2 ++
arch/arm64/boot/dts/apple/t6020-j474s.dts | 2 ++
arch/arm64/boot/dts/apple/t6021-j475c.dts | 2 ++
arch/arm64/boot/dts/apple/t6021.dtsi | 2 ++
arch/arm64/boot/dts/apple/t6022-j475d.dts | 2 ++
arch/arm64/boot/dts/apple/t6022.dtsi | 2 ++
arch/arm64/boot/dts/apple/t602x-die0.dtsi | 4 ++++
arch/arm64/boot/dts/apple/t8103-j274.dts | 2 ++
arch/arm64/boot/dts/apple/t8103-j293.dts | 3 +++
arch/arm64/boot/dts/apple/t8103-j313.dts | 2 ++
arch/arm64/boot/dts/apple/t8103.dtsi | 5 +++++
arch/arm64/boot/dts/apple/t8112-j413.dts | 2 ++
arch/arm64/boot/dts/apple/t8112-j415.dts | 2 ++
arch/arm64/boot/dts/apple/t8112-j473.dts | 2 ++
arch/arm64/boot/dts/apple/t8112-j493.dts | 3 +++
arch/arm64/boot/dts/apple/t8112.dtsi | 5 +++++
26 files changed, 186 insertions(+)
---
base-commit: 44696aa3a489d2baf58efa61b37833f100072bee
change-id: 20260712-smc-subdev-dt-0ca47062521f

Best regards,
--
James Calligeros <jcalligeros99@xxxxxxxxx>