1.. SPDX-License-Identifier: GPL-2.0-or-later 2 3Kernel driver asus_ec_sensors 4================================= 5 6Supported boards: 7 * PRIME X470-PRO 8 * PRIME X570-PRO 9 * Pro WS X570-ACE 10 * ProArt X570-CREATOR WIFI 11 * ProArt B550-CREATOR 12 * ROG CROSSHAIR VIII DARK HERO 13 * ROG CROSSHAIR VIII HERO (WI-FI) 14 * ROG CROSSHAIR VIII FORMULA 15 * ROG CROSSHAIR VIII HERO 16 * ROG CROSSHAIR VIII IMPACT 17 * ROG CROSSHAIR X670E HERO 18 * ROG CROSSHAIR X670E GENE 19 * ROG MAXIMUS XI HERO 20 * ROG MAXIMUS XI HERO (WI-FI) 21 * ROG STRIX B550-E GAMING 22 * ROG STRIX B550-I GAMING 23 * ROG STRIX X570-E GAMING 24 * ROG STRIX X570-E GAMING WIFI II 25 * ROG STRIX X570-F GAMING 26 * ROG STRIX X570-I GAMING 27 * ROG STRIX Z390-F GAMING 28 * ROG STRIX Z690-A GAMING WIFI D4 29 * ROG ZENITH II EXTREME 30 * ROG ZENITH II EXTREME ALPHA 31 32Authors: 33 - Eugene Shalygin <eugene.shalygin@gmail.com> 34 35Description: 36------------ 37ASUS mainboards publish hardware monitoring information via Super I/O 38chip and the ACPI embedded controller (EC) registers. Some of the sensors 39are only available via the EC. 40 41The driver is aware of and reads the following sensors: 42 431. Chipset (PCH) temperature 442. CPU package temperature 453. Motherboard temperature 464. Readings from the T_Sensor header 475. VRM temperature 486. CPU_Opt fan RPM 497. VRM heatsink fan RPM 508. Chipset fan RPM 519. Readings from the "Water flow meter" header (RPM) 5210. Readings from the "Water In" and "Water Out" temperature headers 5311. CPU current 5412. CPU core voltage 55 56Sensor values are read from EC registers, and to avoid race with the board 57firmware the driver acquires ACPI mutex, the one used by the WMI when its 58methods access the EC. 59 60Module Parameters 61----------------- 62 * mutex_path: string 63 The driver holds path to the ACPI mutex for each board (actually, 64 the path is mostly identical for them). If ASUS changes this path 65 in a future BIOS update, this parameter can be used to override 66 the stored in the driver value until it gets updated. 67 A special string ":GLOBAL_LOCK" can be passed to use the ACPI 68 global lock instead of a dedicated mutex. 69