Skip to content

Commit 4a11090

Browse files
committed
Merge tag 'hwmon-for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmon updates from Guenter Roeck: "New drivers: - PMBus driver for MPS Multi-phase mp5023 - PMBus driver for Delta AHE-50DC fan control module - Driver for NZXT RGB&Fan Controller/Smart Device v2 - Driver for Texas Instruments INA238 - Driver to support X370 Asus WMI - Driver to support B550 Asus WMI Other notable changes: - Cleanup of ntc_thermistor driver, and added support for Samsung 1404-001221 NTC - Improve detection of LM84, MAX1617, and MAX1617A in adm1021 driver - Clean up tmp401 driver, and convert to with_info API - Add support for regulators and IR38060, IR38164 IR38263 to ir38064 PMBus driver - Add support for AMD Family 19h Models 10h-1Fh and A0h-AFh to k10temp driver - Add support for F81966 to f71882fg driver - Add support for ONSEMI N34TS04 to jc42 driver - Clean up and simplify dell-smm driver - Add support for ROG STRIX B550-A/X570-I GAMING to nct6775 driver And various other minor improvements and fixes" * tag 'hwmon-for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (49 commits) hwmon: (nzxt-smart2) make array detect_fans_report static const hwmon: (xgene-hwmon) Add free before exiting xgene_hwmon_probe hwmon: (nzxt-smart2) Fix "unused function" warning hwmon: (dell-smm) Pack the whole smm_regs struct hwmon: (nct6775) Additional check for ChipID before ASUS WMI usage hwmon: (mr75203) fix wrong power-up delay value hwmon/pmbus: (ir38064) Fix spelling mistake "comaptible" -> "compatible" hwmon/pmbus: (ir38064) Expose a regulator hwmon/pmbus: (ir38064) Add of_match_table hwmon/pmbus: (ir38064) Add support for IR38060, IR38164 IR38263 hwmon: add driver for NZXT RGB&Fan Controller/Smart Device v2. hwmon: (nct6775) add ROG STRIX B550-A/X570-I GAMING hwmon: (pmbus) Add support for MPS Multi-phase mp5023 dt-bindings: add Delta AHE-50DC fan control module hwmon: (pmbus) Add Delta AHE-50DC fan control module driver hwmon: prefix kernel-doc comments for structs with struct hwmon: (ntc_thermistor) Add Samsung 1404-001221 NTC hwmon: (ntc_thermistor) Drop OF dependency hwmon: (dell-smm) Unify i8k_ioctl() and i8k_ioctl_unlocked() hwmon: (dell-smm) Simplify ioctl handler ...
2 parents 5c947d0 + 00f5117 commit 4a11090

39 files changed

Lines changed: 4118 additions & 736 deletions

Documentation/devicetree/bindings/hwmon/ntc-thermistor.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ properties:
7676
- const: murata,ncp15wl333
7777
- const: murata,ncp03wf104
7878
- const: murata,ncp15xh103
79+
- const: samsung,1404-001221
7980
# Deprecated "ntp," compatible strings
8081
- const: ntc,ncp15wb473
8182
deprecated: true

Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ properties:
2626
- ti,ina226
2727
- ti,ina230
2828
- ti,ina231
29+
- ti,ina238
2930

3031
reg:
3132
maxItems: 1
@@ -35,6 +36,27 @@ properties:
3536
Shunt resistor value in micro-Ohm.
3637
$ref: /schemas/types.yaml#/definitions/uint32
3738

39+
ti,shunt-gain:
40+
description: |
41+
Programmable gain divisor for the shunt voltage accuracy and range. This
42+
property only applies to devices that have configurable PGA/ADCRANGE. The
43+
gain value is used configure the gain and to convert the shunt voltage,
44+
current and power register values when reading measurements from the
45+
device.
46+
47+
For devices that have a configurable PGA (e.g. INA209, INA219, INA220),
48+
the gain value maps directly with the PG bits of the config register.
49+
50+
For devices that have ADCRANGE configuration (e.g. INA238) a shunt-gain
51+
value of 1 maps to ADCRANGE=1 where no gain divisor is applied to the
52+
shunt voltage, and a value of 4 maps to ADCRANGE=0 such that a wider
53+
voltage range is used.
54+
55+
The default value is device dependent, and is defined by the reset value
56+
of PGA/ADCRANGE in the respective configuration registers.
57+
$ref: /schemas/types.yaml#/definitions/uint32
58+
enum: [1, 2, 4, 8]
59+
3860
required:
3961
- compatible
4062
- reg

Documentation/devicetree/bindings/trivial-devices.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ properties:
7373
- dallas,ds4510
7474
# Digital Thermometer and Thermostat
7575
- dallas,ds75
76+
# Delta AHE-50DC Open19 power shelf fan control module
77+
- delta,ahe50dc-fan
7678
# Delta Electronics DPS-650-AB power supply
7779
- delta,dps650ab
7880
# Delta Electronics DPS920AB 920W 54V Power Supply
@@ -121,8 +123,14 @@ properties:
121123
- ibm,cffps2
122124
# Infineon IR36021 digital POL buck controller
123125
- infineon,ir36021
126+
# Infineon IR38060 Voltage Regulator
127+
- infineon,ir38060
124128
# Infineon IR38064 Voltage Regulator
125129
- infineon,ir38064
130+
# Infineon IR38164 Voltage Regulator
131+
- infineon,ir38164
132+
# Infineon IR38263 Voltage Regulator
133+
- infineon,ir38263
126134
# Infineon SLB9635 (Soft-) I2C TPM (old protocol, max 100khz)
127135
- infineon,slb9635tt
128136
# Infineon SLB9645 I2C TPM (new protocol, max 400khz)
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
.. SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
Kernel driver asus_wmi_ec_sensors
4+
=================================
5+
6+
Supported boards:
7+
* PRIME X570-PRO,
8+
* Pro WS X570-ACE,
9+
* ROG CROSSHAIR VIII DARK HERO,
10+
* ROG CROSSHAIR VIII FORMULA,
11+
* ROG CROSSHAIR VIII HERO,
12+
* ROG STRIX B550-E GAMING,
13+
* ROG STRIX B550-I GAMING,
14+
* ROG STRIX X570-E GAMING.
15+
16+
Authors:
17+
- Eugene Shalygin <eugene.shalygin@gmail.com>
18+
19+
Description:
20+
------------
21+
ASUS mainboards publish hardware monitoring information via Super I/O
22+
chip and the ACPI embedded controller (EC) registers. Some of the sensors
23+
are only available via the EC.
24+
25+
ASUS WMI interface provides a method (BREC) to read data from EC registers,
26+
which is utilized by this driver to publish those sensor readings to the
27+
HWMON system. The driver is aware of and reads the following sensors:
28+
29+
1. Chipset (PCH) temperature
30+
2. CPU package temperature
31+
3. Motherboard temperature
32+
4. Readings from the T_Sensor header
33+
5. VRM temperature
34+
6. CPU_Opt fan RPM
35+
7. Chipset fan RPM
36+
8. Readings from the "Water flow meter" header (RPM)
37+
9. Readings from the "Water In" and "Water Out" temperature headers
38+
10. CPU current
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
.. SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
Kernel driver asus_wmi_sensors
4+
=================================
5+
6+
Supported boards:
7+
* PRIME X399-A,
8+
* PRIME X470-PRO,
9+
* ROG CROSSHAIR VI EXTREME,
10+
* ROG CROSSHAIR VI HERO,
11+
* ROG CROSSHAIR VI HERO (WI-FI AC),
12+
* ROG CROSSHAIR VII HERO,
13+
* ROG CROSSHAIR VII HERO (WI-FI),
14+
* ROG STRIX B450-E GAMING,
15+
* ROG STRIX B450-F GAMING,
16+
* ROG STRIX B450-I GAMING,
17+
* ROG STRIX X399-E GAMING,
18+
* ROG STRIX X470-F GAMING,
19+
* ROG STRIX X470-I GAMING,
20+
* ROG ZENITH EXTREME,
21+
* ROG ZENITH EXTREME ALPHA.
22+
23+
Authors:
24+
- Ed Brindley <kernel@maidavale.org>
25+
26+
Description:
27+
------------
28+
ASUS mainboards publish hardware monitoring information via WMI interface.
29+
30+
ASUS WMI interface provides a methods to get list of sensors and values of
31+
such, which is utilized by this driver to publish those sensor readings to the
32+
HWMON system.
33+
34+
The driver is aware of and reads the following sensors:
35+
* CPU Core Voltage,
36+
* CPU SOC Voltage,
37+
* DRAM Voltage,
38+
* VDDP Voltage,
39+
* 1.8V PLL Voltage,
40+
* +12V Voltage,
41+
* +5V Voltage,
42+
* 3VSB Voltage,
43+
* VBAT Voltage,
44+
* AVCC3 Voltage,
45+
* SB 1.05V Voltage,
46+
* CPU Core Voltage,
47+
* CPU SOC Voltage,
48+
* DRAM Voltage,
49+
* CPU Fan RPM,
50+
* Chassis Fan 1 RPM,
51+
* Chassis Fan 2 RPM,
52+
* Chassis Fan 3 RPM,
53+
* HAMP Fan RPM,
54+
* Water Pump RPM,
55+
* CPU OPT RPM,
56+
* Water Flow RPM,
57+
* AIO Pump RPM,
58+
* CPU Temperature,
59+
* CPU Socket Temperature,
60+
* Motherboard Temperature,
61+
* Chipset Temperature,
62+
* Tsensor 1 Temperature,
63+
* CPU VRM Temperature,
64+
* Water In,
65+
* Water Out,
66+
* CPU VRM Output Current.
67+
68+
Known Issues:
69+
* The WMI implementation in some of Asus' BIOSes is buggy. This can result in
70+
fans stopping, fans getting stuck at max speed, or temperature readouts
71+
getting stuck. This is not an issue with the driver, but the BIOS. The Prime
72+
X470 Pro seems particularly bad for this. The more frequently the WMI
73+
interface is polled the greater the potential for this to happen. Until you
74+
have subjected your computer to an extended soak test while polling the
75+
sensors frequently, don't leave you computer unattended. Upgrading to new
76+
BIOS version with method version greater than or equal to two should
77+
rectify the issue.
78+
* A few boards report 12v voltages to be ~10v.

Documentation/hwmon/ina238.rst

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
.. SPDX-License-Identifier: GPL-2.0-only
2+
3+
Kernel driver ina238
4+
====================
5+
6+
Supported chips:
7+
8+
* Texas Instruments INA238
9+
10+
Prefix: 'ina238'
11+
12+
Addresses: I2C 0x40 - 0x4f
13+
14+
Datasheet:
15+
https://www.ti.com/lit/gpn/ina238
16+
17+
Author: Nathan Rossi <nathan.rossi@digi.com>
18+
19+
Description
20+
-----------
21+
22+
The INA238 is a current shunt, power and temperature monitor with an I2C
23+
interface. It includes a number of programmable functions including alerts,
24+
conversion rate, sample averaging and selectable shunt voltage accuracy.
25+
26+
The shunt value in micro-ohms can be set via platform data or device tree at
27+
compile-time or via the shunt_resistor attribute in sysfs at run-time. Please
28+
refer to the Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml for bindings
29+
if the device tree is used.
30+
31+
Sysfs entries
32+
-------------
33+
34+
======================= =======================================================
35+
in0_input Shunt voltage (mV)
36+
in0_min Minimum shunt voltage threshold (mV)
37+
in0_min_alarm Minimum shunt voltage alarm
38+
in0_max Maximum shunt voltage threshold (mV)
39+
in0_max_alarm Maximum shunt voltage alarm
40+
41+
in1_input Bus voltage (mV)
42+
in1_min Minimum bus voltage threshold (mV)
43+
in1_min_alarm Minimum shunt voltage alarm
44+
in1_max Maximum bus voltage threshold (mV)
45+
in1_max_alarm Maximum shunt voltage alarm
46+
47+
power1_input Power measurement (uW)
48+
power1_max Maximum power threshold (uW)
49+
power1_max_alarm Maximum power alarm
50+
51+
curr1_input Current measurement (mA)
52+
53+
temp1_input Die temperature measurement (mC)
54+
temp1_max Maximum die temperature threshold (mC)
55+
temp1_max_alarm Maximum die temperature alarm
56+
======================= =======================================================

Documentation/hwmon/index.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ Hardware Monitoring Kernel Drivers
4343
asb100
4444
asc7621
4545
aspeed-pwm-tacho
46+
asus_wmi_ec_sensors
47+
asus_wmi_sensors
4648
bcm54140
4749
bel-pfe
4850
bpa-rs600
@@ -76,6 +78,7 @@ Hardware Monitoring Kernel Drivers
7678
ibmpowernv
7779
ina209
7880
ina2xx
81+
ina238
7982
ina3221
8083
intel-m10-bmc-hwmon
8184
ir35221
@@ -142,6 +145,7 @@ Hardware Monitoring Kernel Drivers
142145
mlxreg-fan
143146
mp2888
144147
mp2975
148+
mp5023
145149
nct6683
146150
nct6775
147151
nct7802
@@ -150,6 +154,7 @@ Hardware Monitoring Kernel Drivers
150154
nsa320
151155
ntc_thermistor
152156
nzxt-kraken2
157+
nzxt-smart2
153158
occ
154159
pc87360
155160
pc87427

Documentation/hwmon/ir38064.rst

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,46 @@ Kernel driver ir38064
33

44
Supported chips:
55

6+
* Infineon IR38060
7+
8+
Prefix: 'IR38060'
9+
Addresses scanned: -
10+
11+
Datasheet: Publicly available at the Infineon website
12+
https://www.infineon.com/dgdl/Infineon-IR38060M-DS-v03_16-EN.pdf?fileId=5546d4625c167129015c3291ea9a4cee
13+
614
* Infineon IR38064
715

816
Prefix: 'ir38064'
917
Addresses scanned: -
1018

11-
Datasheet: Publicly available at the Infineon webiste
19+
Datasheet: Publicly available at the Infineon website
1220
https://www.infineon.com/dgdl/Infineon-IR38064MTRPBF-DS-v03_07-EN.pdf?fileId=5546d462584d1d4a0158db0d9efb67ca
1321

22+
* Infineon IR38164
23+
24+
Prefix: 'ir38164'
25+
Addresses scanned: -
26+
27+
Datasheet: Publicly available at the Infineon website
28+
https://www.infineon.com/dgdl/Infineon-IR38164M-DS-v02_02-EN.pdf?fileId=5546d462636cc8fb01640046efea1248
29+
30+
* Infineon ir38263
31+
32+
Prefix: 'ir38263'
33+
Addresses scanned: -
34+
35+
Datasheet: Publicly available at the Infineon website
36+
https://www.infineon.com/dgdl/Infineon-IR38263M-DataSheet-v03_05-EN.pdf?fileId=5546d4625b62cd8a015bcf81f90a6e52
37+
1438
Authors:
1539
- Maxim Sloyko <maxims@google.com>
1640
- Patrick Venture <venture@google.com>
1741

1842
Description
1943
-----------
2044

21-
IR38064 is a Single-input Voltage, Synchronous Buck Regulator, DC-DC Converter.
45+
IR38x6x are a Single-input Voltage, Synchronous Buck Regulator, DC-DC Converter.
2246

2347
Usage Notes
2448
-----------

0 commit comments

Comments
 (0)