News: 0001646244

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux Dealing With Apple's Wild Mess Of Sensors On Apple Silicon SoCs

([Apple] 5 Hours Ago Hodgepodge Sensors)


While there has been the [1]Apple System Management Controller "SMC" hardware monitoring driver with the intent on exposing battery/power stats as well as thermal and more for Apple Silicon SoCs on Linux, it hasn't yet been working out properly on the mainline kernel. Between missing Device Tree nodes to the hodgepodge mess of sensors between the different Apple M-Series SoCs, it's a mess.

Apple Silicon Linux contributor James Calligeros has been working on sorting out that mess to get the Apple SMC hardware monitoring (HWMON) nodes in order for getting temperature, voltage, power, and fan speed data from Apple Silicon sensors properly reporting under Linux. The latest patch series made it out today to the Linux kernel mailing list in working to sort things out.

James [2]explained of the rather messy situation of how hardware sensors vary across different Apple Silicon SoCs:

"Following on from the series which added SMC hwmon driver, 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 currently

- 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."

An unfortunate mess that will take time to fully resolve but at least progress is being made to sort out the sensor handling for those that care about the likes of power and thermal monitoring for Apple Macs on Linux. Concurrently the patch review continues to happen for Device Trees to [3]boot the Apple M4 on Linux with very limited functionality as well as [4]booting the M3 Pro / Max / Ultra hardware .



[1] https://www.phoronix.com/news/Apple-Silicon-Power-Driver-2026

[2] https://lore.kernel.org/lkml/20260714-smc-subdev-dt-v2-0-13fa78873121@gmail.com/

[3] https://www.phoronix.com/news/Apple-M4-DT-Linux

[4] https://www.phoronix.com/news/Linux-DT-Apple-M3-Pro-Max-Ultra



Knowing others is wisdom;
Knowing the self is enlightenment.
Mastering others requires force;
Mastering the self needs strength.
He who knows he has enough is rich.
Perseverance is a sign of willpower.
He who stays where he is endures.
To die but not to perish is to be eternally present.