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