xref: /linux/Documentation/hwmon/macsmc-hwmon.rst (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
1*785205fdSJames Calligeros.. SPDX-License-Identifier: GPL-2.0-only
2*785205fdSJames Calligeros
3*785205fdSJames CalligerosKernel driver macsmc-hwmon
4*785205fdSJames Calligeros==========================
5*785205fdSJames Calligeros
6*785205fdSJames CalligerosSupported hardware
7*785205fdSJames Calligeros
8*785205fdSJames Calligeros    * Apple Silicon Macs (M1 and up)
9*785205fdSJames Calligeros
10*785205fdSJames CalligerosAuthor: James Calligeros <jcalligeros99@gmail.com>
11*785205fdSJames Calligeros
12*785205fdSJames CalligerosDescription
13*785205fdSJames Calligeros-----------
14*785205fdSJames Calligeros
15*785205fdSJames Calligerosmacsmc-hwmon exposes the Apple System Management controller's
16*785205fdSJames Calligerostemperature, voltage, current and power sensors, as well as
17*785205fdSJames Calligerosfan speed and control capabilities, via hwmon.
18*785205fdSJames Calligeros
19*785205fdSJames CalligerosBecause each Apple Silicon Mac exposes a different set of sensors
20*785205fdSJames Calligeros(e.g. the MacBooks expose battery telemetry that is not present on
21*785205fdSJames Calligerosthe desktop Macs), sensors present on any given machine are described
22*785205fdSJames Calligerosvia Devicetree. The driver picks these up and registers them with
23*785205fdSJames Calligeroshwmon when probed.
24*785205fdSJames Calligeros
25*785205fdSJames CalligerosManual fan speed is supported via the fan_control module parameter. This
26*785205fdSJames Calligerosis disabled by default and marked as unsafe, as it cannot be proven that
27*785205fdSJames Calligerosthe system will fail safe if overheating due to manual fan control being
28*785205fdSJames Calligerosused.
29*785205fdSJames Calligeros
30*785205fdSJames Calligerossysfs interface
31*785205fdSJames Calligeros---------------
32*785205fdSJames Calligeros
33*785205fdSJames CalligeroscurrX_input
34*785205fdSJames Calligeros    Ammeter value
35*785205fdSJames Calligeros
36*785205fdSJames CalligeroscurrX_label
37*785205fdSJames Calligeros    Ammeter label
38*785205fdSJames Calligeros
39*785205fdSJames CalligerosfanX_input
40*785205fdSJames Calligeros    Current fan speed
41*785205fdSJames Calligeros
42*785205fdSJames CalligerosfanX_label
43*785205fdSJames Calligeros    Fan label
44*785205fdSJames Calligeros
45*785205fdSJames CalligerosfanX_min
46*785205fdSJames Calligeros    Minimum possible fan speed
47*785205fdSJames Calligeros
48*785205fdSJames CalligerosfanX_max
49*785205fdSJames Calligeros    Maximum possible fan speed
50*785205fdSJames Calligeros
51*785205fdSJames CalligerosfanX_target
52*785205fdSJames Calligeros    Current fan setpoint
53*785205fdSJames Calligeros
54*785205fdSJames CalligerosinX_input
55*785205fdSJames Calligeros    Voltmeter value
56*785205fdSJames Calligeros
57*785205fdSJames CalligerosinX_label
58*785205fdSJames Calligeros    Voltmeter label
59*785205fdSJames Calligeros
60*785205fdSJames CalligerospowerX_input
61*785205fdSJames Calligeros    Power meter value
62*785205fdSJames Calligeros
63*785205fdSJames CalligerospowerX_label
64*785205fdSJames Calligeros    Power meter label
65*785205fdSJames Calligeros
66*785205fdSJames CalligerostempX_input
67*785205fdSJames Calligeros    Temperature sensor value
68*785205fdSJames Calligeros
69*785205fdSJames CalligerostempX_label
70*785205fdSJames Calligeros    Temperature sensor label
71*785205fdSJames Calligeros
72