You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
Merge tag 'hwmon-for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
Pull hwmon updates from Guenter Roeck:
"New drivers:
- Driver for MAX31760 fan speed controller
- Driver for TEXAS TPS546D24 Buck Converter
- Driver for EMC2301/2/3/5 RPM-based PWM Fan Speed Controller
Removed drivers:
- Drop obsolete asus_wmi_ec_sensors driver
Cleanups, affecting various drivers:
- Use DEFINE_SIMPLE_DEV_PM_OPS where appropriate
- Remove forward declarations
- Move from strlcpy with unused retval to strscpy
- Make use of devm_clk_get_enabled()
- Drop devm_of_pwm_get()
Other notable cleanup and improvements:
- Support for additional USB devide ID and support for reporting of
rail mode via debugfs added to corsair-psu driver
- Support for aditional USB ID in nzxt-smart2 driver
- Support for Aquacomputer High Flow Next in aquacomputer_d5next
driver
- Major cleanup of pwm-fan driver
- Major cleanup of mr75203 driver, and added support for new device
revision
And various other minor fixes and cleanups"
* tag 'hwmon-for-v6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (86 commits)
hwmon: (corsair-psu) add USB id of new revision of the HX1000i psu
hwmon: (pmbus/mp2888) Fix sensors readouts for MPS Multi-phase mp2888 controller
dt-bindings: hwmon: sensirion,shtc1: Clean up spelling mistakes and grammar
hwmon: (nct6683) remove unused variable in nct6683_create_attr_group
hwmon: w83627hf: Reorder symbols to get rid of a few forward declarations
hwmon: (ina3221) Use DEFINE_RUNTIME_DEV_PM_OPS() and pm_ptr()
hwmon: (w83627ehf) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (tmp108) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (tmp103) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (tmp102) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (pwm-fan) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (nct6775) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (max6639) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (max31730) witch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (max31722) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (ltc2947) Switch to EXPORT_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (lm90) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (it87) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (gpio-fan) Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
hwmon: (adt7x10) Switch to EXPORT_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr()
...
This commit is contained in:
42
Documentation/devicetree/bindings/hwmon/adi,max31760.yaml
Normal file
42
Documentation/devicetree/bindings/hwmon/adi,max31760.yaml
Normal file
@@ -0,0 +1,42 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/hwmon/adi,max31760.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices MAX31760 Fan-Speed Controller
|
||||
|
||||
maintainers:
|
||||
- Ibrahim Tilki <Ibrahim.Tilki@analog.com>
|
||||
|
||||
description: |
|
||||
Analog Devices MAX31760 Fan-Speed Controller
|
||||
https://datasheets.maximintegrated.com/en/ds/MAX31760.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,max31760
|
||||
|
||||
reg:
|
||||
description: I2C address of slave device.
|
||||
minimum: 0x50
|
||||
maximum: 0x57
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
fan-controller@50 {
|
||||
reg = <0x50>;
|
||||
compatible = "adi,max31760";
|
||||
};
|
||||
};
|
||||
@@ -22,7 +22,7 @@ properties:
|
||||
|
||||
clocks:
|
||||
items:
|
||||
- description: AHB reference clock
|
||||
- description: System reference clock
|
||||
|
||||
'#thermal-sensor-cells':
|
||||
const: 0
|
||||
@@ -40,5 +40,5 @@ examples:
|
||||
compatible = "microchip,sparx5-temp";
|
||||
reg = <0x10508110 0xc>;
|
||||
#thermal-sensor-cells = <0>;
|
||||
clocks = <&ahb_clk>;
|
||||
clocks = <&sys_clk>;
|
||||
};
|
||||
|
||||
@@ -9,6 +9,32 @@ title: Moortec Semiconductor MR75203 PVT Controller bindings
|
||||
maintainers:
|
||||
- Rahul Tanwar <rtanwar@maxlinear.com>
|
||||
|
||||
description: |
|
||||
A Moortec PVT (Process, Voltage, Temperature) monitoring logic design can
|
||||
include many different units.
|
||||
Such a design will usually consists of several Moortec's embedded analog IPs,
|
||||
and a single Moortec controller (mr75203) to configure and control the IPs.
|
||||
|
||||
Some of the Moortec's analog hard IPs that can be used in a design:
|
||||
*) Temperature Sensor (TS) - used to monitor core temperature (e.g. mr74137).
|
||||
*) Voltage Monitor (VM) - used to monitor voltage levels (e.g. mr74138).
|
||||
*) Process Detector (PD) - used to assess silicon speed (e.g. mr74139).
|
||||
*) Delay Chain - ring oscillator connected to the PD, used to measure IO
|
||||
based transistors (e.g. mr76008 ring oscillator at 1.1V, mr76007 ring
|
||||
oscillator at 1.8V).
|
||||
*) Pre Scaler - provides divide-by-X scaling of input voltage, which can then
|
||||
be presented for VM for measurement within its range (e.g. mr76006 -
|
||||
divide by 2 pre-scaler).
|
||||
|
||||
TS, VM & PD also include a digital interface, which consists of configuration
|
||||
inputs and measurement outputs.
|
||||
|
||||
Some of the units have number of series, each series can have slightly
|
||||
different characteristics.
|
||||
|
||||
The mr75203 binding describes configuration for the controller unit, but also
|
||||
for some of the analog IPs.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: moortec,mr75203
|
||||
@@ -44,12 +70,76 @@ properties:
|
||||
"#thermal-sensor-cells":
|
||||
const: 1
|
||||
|
||||
moortec,vm-active-channels:
|
||||
description:
|
||||
Defines the number of channels per VM that are actually used and are
|
||||
connected to some input source.
|
||||
Maximum number of items - number of VMs.
|
||||
Maximum value of each item - number of channels.
|
||||
Minimum value of each item - 0 (which means entire VM sensor is not used).
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
|
||||
moortec,vm-pre-scaler-x2:
|
||||
description:
|
||||
Defines the channels that use a mr76006 pre-scaler to divide the input
|
||||
source by 2.
|
||||
The pre-scaler is used for input sources that exceed the VM input range.
|
||||
The driver uses this information to present to the user with the actual
|
||||
value of the voltage source.
|
||||
For channels that are not listed, no pre-scaler is assumed.
|
||||
Maximum number of items - total number of channels in all VMs.
|
||||
Each channel should not appear more than once.
|
||||
$ref: /schemas/types.yaml#/definitions/uint8-array
|
||||
|
||||
moortec,ts-series:
|
||||
description:
|
||||
Definition of the temperature equation and coefficients that shall be
|
||||
used to convert the digital output to value in milli-Celsius.
|
||||
minimum: 5
|
||||
maximum: 6
|
||||
default: 5
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
moortec,ts-coeff-g:
|
||||
description:
|
||||
G coefficient for temperature equation.
|
||||
Default for series 5 = 60000
|
||||
Default for series 6 = 57400
|
||||
multipleOf: 1000
|
||||
minimum: 1000
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
moortec,ts-coeff-h:
|
||||
description:
|
||||
H coefficient for temperature equation.
|
||||
Default for series 5 = 200000
|
||||
Default for series 6 = 249400
|
||||
multipleOf: 1000
|
||||
minimum: 1000
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
moortec,ts-coeff-cal5:
|
||||
description:
|
||||
cal5 coefficient for temperature equation.
|
||||
Default for series 5 = 4094
|
||||
Default for series 6 = 4096
|
||||
minimum: 1
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
|
||||
moortec,ts-coeff-j:
|
||||
description:
|
||||
J coefficient for temperature equation.
|
||||
Default for series 5 = -100
|
||||
Default for series 6 = 0
|
||||
multipleOf: 1000
|
||||
maximum: 0
|
||||
$ref: /schemas/types.yaml#/definitions/int32
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- reg-names
|
||||
- clocks
|
||||
- resets
|
||||
- "#thermal-sensor-cells"
|
||||
|
||||
additionalProperties: false
|
||||
@@ -66,5 +156,9 @@ examples:
|
||||
intel,vm-map = [03 01 04 ff ff];
|
||||
clocks = <&osc0>;
|
||||
resets = <&rcu0 0x40 7>;
|
||||
moortec,vm-active-channels = /bits/ 8 <0x10 0x05>;
|
||||
moortec,vm-pre-scaler-x2 = /bits/ 8 <5 6 20>;
|
||||
moortec,ts-coeff-g = <61400>;
|
||||
moortec,ts-coeff-h = <253700>;
|
||||
#thermal-sensor-cells = <1>;
|
||||
};
|
||||
|
||||
@@ -10,7 +10,7 @@ maintainers:
|
||||
- Christopher Ruehl chris.ruehl@gtsys.com.hk
|
||||
|
||||
description: |
|
||||
The SHTC1, SHTW1 and SHTC3 are digital humidity and temperature sensor
|
||||
The SHTC1, SHTW1 and SHTC3 are digital humidity and temperature sensors
|
||||
designed especially for battery-driven high-volume consumer electronics
|
||||
applications.
|
||||
For further information refere to Documentation/hwmon/shtc1.rst
|
||||
@@ -31,13 +31,13 @@ properties:
|
||||
sensirion,blocking-io:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
If set, the driver hold the i2c bus until measurement is finished.
|
||||
If set, the driver holds the i2c bus until the measurement is finished.
|
||||
|
||||
sensirion,low-precision:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
If set, the sensor aquire data with low precision (not recommended).
|
||||
The driver aquire data with high precision by default.
|
||||
If set, the sensor acquires data with low precision (not recommended).
|
||||
The driver acquires data with high precision by default.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
@@ -819,6 +819,8 @@ patternProperties:
|
||||
description: MNT Research GmbH
|
||||
"^modtronix,.*":
|
||||
description: Modtronix Engineering
|
||||
"^moortec,.*":
|
||||
description: Moortec Semiconductor Ltd.
|
||||
"^mosaixtech,.*":
|
||||
description: Mosaix Technologies, Inc.
|
||||
"^motorola,.*":
|
||||
|
||||
@@ -404,7 +404,6 @@ POWER
|
||||
|
||||
PWM
|
||||
devm_pwm_get()
|
||||
devm_of_pwm_get()
|
||||
devm_fwnode_pwm_get()
|
||||
|
||||
REGULATOR
|
||||
|
||||
@@ -40,8 +40,7 @@ after usage with pwm_free().
|
||||
|
||||
New users should use the pwm_get() function and pass to it the consumer
|
||||
device or a consumer name. pwm_put() is used to free the PWM device. Managed
|
||||
variants of the getter, devm_pwm_get(), devm_of_pwm_get(),
|
||||
devm_fwnode_pwm_get(), also exist.
|
||||
variants of the getter, devm_pwm_get() and devm_fwnode_pwm_get(), also exist.
|
||||
|
||||
After being requested, a PWM has to be configured using::
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ Supported devices:
|
||||
* Aquacomputer Farbwerk 360 RGB controller
|
||||
* Aquacomputer Octo fan controller
|
||||
* Aquacomputer Quadro fan controller
|
||||
* Aquacomputer High Flow Next sensor
|
||||
|
||||
Author: Aleksa Savic
|
||||
|
||||
@@ -20,10 +21,11 @@ This driver exposes hardware sensors of listed Aquacomputer devices, which
|
||||
communicate through proprietary USB HID protocols.
|
||||
|
||||
For the D5 Next pump, available sensors are pump and fan speed, power, voltage
|
||||
and current, as well as coolant temperature. Also available through debugfs are
|
||||
the serial number, firmware version and power-on count. Attaching a fan to it is
|
||||
optional and allows it to be controlled using temperature curves directly from the
|
||||
pump. If it's not connected, the fan-related sensors will report zeroes.
|
||||
and current, as well as coolant temperature and eight virtual temp sensors. Also
|
||||
available through debugfs are the serial number, firmware version and power-on
|
||||
count. Attaching a fan to it is optional and allows it to be controlled using
|
||||
temperature curves directly from the pump. If it's not connected, the fan-related
|
||||
sensors will report zeroes.
|
||||
|
||||
The pump can be configured either through software or via its physical
|
||||
interface. Configuring the pump through this driver is not implemented, as it
|
||||
@@ -31,14 +33,23 @@ seems to require sending it a complete configuration. That includes addressable
|
||||
RGB LEDs, for which there is no standard sysfs interface. Thus, that task is
|
||||
better suited for userspace tools.
|
||||
|
||||
The Octo exposes four temperature sensors and eight PWM controllable fans, along
|
||||
with their speed (in RPM), power, voltage and current.
|
||||
The Octo exposes four physical and sixteen virtual temperature sensors, as well as
|
||||
eight PWM controllable fans, along with their speed (in RPM), power, voltage and
|
||||
current.
|
||||
|
||||
The Quadro exposes four temperature sensors, a flow sensor and four PWM controllable
|
||||
fans, along with their speed (in RPM), power, voltage and current.
|
||||
The Quadro exposes four physical and sixteen virtual temperature sensors, a flow
|
||||
sensor and four PWM controllable fans, along with their speed (in RPM), power,
|
||||
voltage and current.
|
||||
|
||||
The Farbwerk and Farbwerk 360 expose four temperature sensors. Depending on the device,
|
||||
not all sysfs and debugfs entries will be available.
|
||||
The Farbwerk and Farbwerk 360 expose four temperature sensors. Additionally,
|
||||
sixteen virtual temperature sensors of the Farbwerk 360 are exposed.
|
||||
|
||||
The High Flow Next exposes +5V voltages, water quality, conductivity and flow readings.
|
||||
A temperature sensor can be connected to it, in which case it provides its reading
|
||||
and an estimation of the dissipated/absorbed power in the liquid cooling loop.
|
||||
|
||||
Depending on the device, not all sysfs and debugfs entries will be available.
|
||||
Writing to virtual temperature sensors is not currently supported.
|
||||
|
||||
Usage notes
|
||||
-----------
|
||||
@@ -49,14 +60,14 @@ the kernel and supports hotswapping.
|
||||
Sysfs entries
|
||||
-------------
|
||||
|
||||
================ ==============================================
|
||||
temp[1-4]_input Temperature sensors (in millidegrees Celsius)
|
||||
================ ==============================================================
|
||||
temp[1-20]_input Physical/virtual temperature sensors (in millidegrees Celsius)
|
||||
fan[1-8]_input Pump/fan speed (in RPM) / Flow speed (in dL/h)
|
||||
power[1-8]_input Pump/fan power (in micro Watts)
|
||||
in[0-7]_input Pump/fan voltage (in milli Volts)
|
||||
curr[1-8]_input Pump/fan current (in milli Amperes)
|
||||
pwm[1-8] Fan PWM (0 - 255)
|
||||
================ ==============================================
|
||||
================ ==============================================================
|
||||
|
||||
Debugfs entries
|
||||
---------------
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
Kernel driver asus_wmi_ec_sensors
|
||||
=================================
|
||||
|
||||
Supported boards:
|
||||
* PRIME X570-PRO,
|
||||
* Pro WS X570-ACE,
|
||||
* ROG CROSSHAIR VIII DARK HERO,
|
||||
* ROG CROSSHAIR VIII FORMULA,
|
||||
* ROG CROSSHAIR VIII HERO,
|
||||
* ROG STRIX B550-E GAMING,
|
||||
* ROG STRIX B550-I GAMING,
|
||||
* ROG STRIX X570-E GAMING.
|
||||
|
||||
Authors:
|
||||
- Eugene Shalygin <eugene.shalygin@gmail.com>
|
||||
|
||||
Description:
|
||||
------------
|
||||
ASUS mainboards publish hardware monitoring information via Super I/O
|
||||
chip and the ACPI embedded controller (EC) registers. Some of the sensors
|
||||
are only available via the EC.
|
||||
|
||||
ASUS WMI interface provides a method (BREC) to read data from EC registers,
|
||||
which is utilized by this driver to publish those sensor readings to the
|
||||
HWMON system. The driver is aware of and reads the following sensors:
|
||||
|
||||
1. Chipset (PCH) temperature
|
||||
2. CPU package temperature
|
||||
3. Motherboard temperature
|
||||
4. Readings from the T_Sensor header
|
||||
5. VRM temperature
|
||||
6. CPU_Opt fan RPM
|
||||
7. Chipset fan RPM
|
||||
8. Readings from the "Water flow meter" header (RPM)
|
||||
9. Readings from the "Water In" and "Water Out" temperature headers
|
||||
10. CPU current
|
||||
@@ -15,7 +15,7 @@ Supported devices:
|
||||
|
||||
Corsair HX850i
|
||||
|
||||
Corsair HX1000i
|
||||
Corsair HX1000i (revision 1 and 2)
|
||||
|
||||
Corsair HX1200i
|
||||
|
||||
@@ -86,8 +86,9 @@ Debugfs entries
|
||||
---------------
|
||||
|
||||
======================= ========================================================
|
||||
uptime Current uptime of the psu
|
||||
ocpmode Single or multi rail mode of the PCIe power connectors
|
||||
product Product name of the psu
|
||||
uptime Session uptime of the psu
|
||||
uptime_total Total uptime of the psu
|
||||
vendor Vendor name of the psu
|
||||
product Product name of the psu
|
||||
======================= ========================================================
|
||||
|
||||
37
Documentation/hwmon/emc2305.rst
Normal file
37
Documentation/hwmon/emc2305.rst
Normal file
@@ -0,0 +1,37 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
Kernel driver emc2305
|
||||
=====================
|
||||
|
||||
Supported chips:
|
||||
Microchip EMC2305, EMC2303, EMC2302, EMC2301
|
||||
|
||||
Addresses scanned: I2C 0x27, 0x2c, 0x2d, 0x2e, 0x2f, 0x4c, 0x4d
|
||||
Prefixes: 'emc2305'
|
||||
|
||||
Datasheet: Publicly available at the Microchip website :
|
||||
https://www.microchip.com/en-us/product/EMC2305
|
||||
|
||||
Description:
|
||||
------------
|
||||
This driver implements support for Microchip EMC2301/2/3/5 RPM-based PWM Fan Controller.
|
||||
The EMC2305 Fan Controller supports up to 5 independently controlled PWM fan drives.
|
||||
Fan rotation speeds are reported in RPM.
|
||||
The driver supports the RPM-based PWM control to keep a fan at the desired speed.
|
||||
The driver provides the possibility to have one common PWM interface for all FANs
|
||||
or up to the maximum available or configured independent PWMs.
|
||||
|
||||
The driver provides the following sysfs interfaces in hwmon subsystem:
|
||||
|
||||
================= == ===================================================
|
||||
fan[1-5]_fault RO files for tachometers TACH1-TACH5 fault indication
|
||||
fan[1-5]_input RO files for tachometers TACH1-TACH5 input (in RPM)
|
||||
pwm[1-5] RW file for fan[1-5] target duty cycle (0..255)
|
||||
================= == ===================================================
|
||||
|
||||
sysfs interfaces in thermal subsystem:
|
||||
|
||||
================= == ========================================================================
|
||||
cur_state RW file for the current cooling state of the cooling device (0..max_state)
|
||||
max_state RO file for the maximum cooling state of the cooling device
|
||||
================= == ========================================================================
|
||||
@@ -44,7 +44,6 @@ Hardware Monitoring Kernel Drivers
|
||||
asc7621
|
||||
aspeed-pwm-tacho
|
||||
asus_ec_sensors
|
||||
asus_wmi_ec_sensors
|
||||
asus_wmi_sensors
|
||||
bcm54140
|
||||
bel-pfe
|
||||
@@ -63,6 +62,7 @@ Hardware Monitoring Kernel Drivers
|
||||
ds620
|
||||
emc1403
|
||||
emc2103
|
||||
emc2305
|
||||
emc6w201
|
||||
f71805f
|
||||
f71882fg
|
||||
@@ -133,6 +133,7 @@ Hardware Monitoring Kernel Drivers
|
||||
max20751
|
||||
max31722
|
||||
max31730
|
||||
max31760
|
||||
max31785
|
||||
max31790
|
||||
max34440
|
||||
@@ -205,6 +206,7 @@ Hardware Monitoring Kernel Drivers
|
||||
tps23861
|
||||
tps40422
|
||||
tps53679
|
||||
tps546d24
|
||||
twl4030-madc-hwmon
|
||||
ucd9000
|
||||
ucd9200
|
||||
|
||||
77
Documentation/hwmon/max31760.rst
Normal file
77
Documentation/hwmon/max31760.rst
Normal file
@@ -0,0 +1,77 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
Kernel driver max31760
|
||||
======================
|
||||
|
||||
Supported chips:
|
||||
* Analog Devices MAX31760
|
||||
|
||||
Prefix: 'max31760'
|
||||
|
||||
Addresses scanned: none
|
||||
|
||||
Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX31760.pdf
|
||||
|
||||
|
||||
Author: Ibrahim Tilki <Ibrahim.Tilki@analog.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The MAX31760 integrates temperature sensing along with precision PWM fan
|
||||
control. It accurately measures its local die temperature and the remote
|
||||
temperature of a discrete diode-connected transistor, such as a 2N3906,
|
||||
or a thermal diode commonly found on CPUs, graphics processor units (GPUs),
|
||||
and other ASICs. Multiple temperature thresholds, such as local
|
||||
high/overtemperature (OT) and remote high/overtemperature, can be set by an
|
||||
I2C-compatible interface. Fan speed is controlled based on the temperature
|
||||
reading as an index to a 48-byte lookup table (LUT) containing
|
||||
user-programmed PWM values. The flexible LUT-based architecture enables
|
||||
the user to program a smooth nonlinear fan speed vs. temperature transfer
|
||||
function to minimize acoustic fan noise. Two tachometer inputs allow
|
||||
measuring the speeds of two fans independently. When the local or remote
|
||||
OT threshold is exceeded, the SHDN pin is asserted low and can be used to
|
||||
shut down the system. A dedicated ALERT pin reports that either a local or
|
||||
remote high-temperature threshold has been exceeded.
|
||||
|
||||
Temperature measurement range: from -55°C to 125°C
|
||||
|
||||
Temperature Resolution: 11 Bits, ±0.125°C
|
||||
|
||||
Please refer how to instantiate this driver: Documentation/i2c/instantiating-devices.rst
|
||||
|
||||
Lookup table for auto fan control
|
||||
---------------------------------
|
||||
|
||||
========= =================================
|
||||
LUT Index Name
|
||||
========= =================================
|
||||
1 PWM value for T < +18°C
|
||||
2 PWM value for +18°C ≤ T < +20°C
|
||||
3 PWM value for +20°C ≤ T < +22°C
|
||||
... ...
|
||||
47 PWM value for +108°C ≤ T < +110°C
|
||||
48 PWM value for T ≥ +110°C
|
||||
========= =================================
|
||||
|
||||
Sysfs entries
|
||||
-------------
|
||||
|
||||
=============================== =================================================================================
|
||||
fan[1-2]_input Fan speed (in RPM)
|
||||
fan[1-2]_enable Enable fan readings and fan fault alarms
|
||||
fan[1-2]_fault Fan fault status
|
||||
temp[1-2]_label "Remote" and "Local" temperature channel labels
|
||||
temp[1-2]_input Temperature sensor readings (in millidegrees Celsius)
|
||||
temp1_fault Remote temperature sensor fault status
|
||||
temp[1-2]_max Temperature max value. Asserts "ALERT" pin when exceeded
|
||||
temp[1-2]_max_alarm Temperature max alarm status
|
||||
temp[1-2]_crit Temperature critical value. Asserts "SHDN" pin when exceeded
|
||||
temp[1-2]_crit_alarm Temperature critical alarm status
|
||||
pwm1 PWM value for direct fan control
|
||||
pwm1_enable 1: direct fan control, 2: temperature based auto fan control
|
||||
pwm1_freq PWM frequency in hertz
|
||||
pwm1_auto_channels_temp Temperature source for auto fan control. 1: temp1, 2: temp2, 3: max(temp1, temp2)
|
||||
pwm1_auto_point[1-48]_pwm PWM value for LUT point
|
||||
pwm1_auto_point_temp_hyst Temperature hysteresis for auto fan control. Can be either 2000mC or 4000mC
|
||||
=============================== =================================================================================
|
||||
@@ -38,6 +38,7 @@ Sysfs entries
|
||||
fan[1-12]_input RO fan tachometer speed in RPM
|
||||
fan[1-12]_fault RO fan experienced fault
|
||||
fan[1-6]_target RW desired fan speed in RPM
|
||||
fan[1-6]_enable RW enable or disable the tachometer input
|
||||
pwm[1-6]_enable RW regulator mode, 0=disabled (duty cycle=0%), 1=manual mode, 2=rpm mode
|
||||
pwm[1-6] RW read: current pwm duty cycle,
|
||||
write: target pwm duty cycle (0-255)
|
||||
|
||||
@@ -18,3 +18,15 @@ the hwmon's sysfs interface.
|
||||
|
||||
The fan rotation speed returned via the optional 'fan1_input' is extrapolated
|
||||
from the sampled interrupts from the tachometer signal within 1 second.
|
||||
|
||||
The driver provides the following sensor accesses in sysfs:
|
||||
|
||||
=============== ======= =======================================================
|
||||
fan1_input ro fan tachometer speed in RPM
|
||||
pwm1_enable rw keep enable mode, defines behaviour when pwm1=0
|
||||
0 -> disable pwm and regulator
|
||||
1 -> enable pwm; if pwm==0, disable pwm, keep regulator enabled
|
||||
2 -> enable pwm; if pwm==0, keep pwm and regulator enabled
|
||||
3 -> enable pwm; if pwm==0, disable pwm and regulator
|
||||
pwm1 rw relative speed (0-255), 255=max. speed.
|
||||
=============== ======= =======================================================
|
||||
|
||||
35
Documentation/hwmon/tps546d24.rst
Normal file
35
Documentation/hwmon/tps546d24.rst
Normal file
@@ -0,0 +1,35 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0-only
|
||||
|
||||
Kernel driver tps546d24
|
||||
=======================
|
||||
|
||||
Supported chips:
|
||||
|
||||
* TI TPS546D24
|
||||
|
||||
Prefix: 'tps546d24'
|
||||
|
||||
Addresses scanned: -
|
||||
|
||||
Datasheet: https://www.ti.com/lit/gpn/tps546d24
|
||||
|
||||
Author: Duke Du <dukedu83@gmail.com>
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The TPS546D24A is a highly integrated, non-isolated DC/DC converter capable
|
||||
of high frequency operation and 40-A current output from a 7-mm x 5-mm
|
||||
package.
|
||||
|
||||
Two, three, and four TPS546D24A devices can be interconnected
|
||||
to provide up to 160 A on a single output. The device has an option to
|
||||
overdrive the internal 5-V LDO with an external 5-V supply via the VDD5
|
||||
pin to improve efficiency and reduce power dissipation of the converter.
|
||||
|
||||
|
||||
Platform data support
|
||||
---------------------
|
||||
|
||||
The driver supports standard PMBus driver platform data.
|
||||
27
MAINTAINERS
27
MAINTAINERS
@@ -1339,6 +1339,15 @@ F: drivers/iio/amplifiers/hmc425a.c
|
||||
F: drivers/staging/iio/*/ad*
|
||||
X: drivers/iio/*/adjd*
|
||||
|
||||
ANALOG DEVICES INC MAX31760 DRIVER
|
||||
M: Ibrahim Tilki <Ibrahim.Tilki@analog.com>
|
||||
S: Maintained
|
||||
W: http://wiki.analog.com/
|
||||
W: https://ez.analog.com/linux-software-drivers
|
||||
F: Documentation/devicetree/bindings/hwmon/adi,max31760.yaml
|
||||
F: Documentation/hwmon/max31760.rst
|
||||
F: drivers/hwmon/max31760.c
|
||||
|
||||
ANALOGBITS PLL LIBRARIES
|
||||
M: Paul Walmsley <paul.walmsley@sifive.com>
|
||||
S: Supported
|
||||
@@ -3238,13 +3247,6 @@ L: linux-hwmon@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/asus_wmi_sensors.c
|
||||
|
||||
ASUS WMI EC HARDWARE MONITOR DRIVER
|
||||
M: Eugene Shalygin <eugene.shalygin@gmail.com>
|
||||
M: Denis Pauk <pauk.denis@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/hwmon/asus_wmi_ec_sensors.c
|
||||
|
||||
ASUS EC HARDWARE MONITOR DRIVER
|
||||
M: Eugene Shalygin <eugene.shalygin@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
@@ -6181,7 +6183,7 @@ F: Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.y
|
||||
F: drivers/memory/samsung/exynos5422-dmc.c
|
||||
|
||||
DME1737 HARDWARE MONITOR DRIVER
|
||||
M: Juerg Haefliger <juergh@gmail.com>
|
||||
M: Juerg Haefliger <juergh@proton.me>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/dme1737.rst
|
||||
@@ -20649,6 +20651,13 @@ Q: https://patchwork.kernel.org/project/linux-integrity/list/
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git
|
||||
F: drivers/char/tpm/
|
||||
|
||||
TPS546D24 DRIVER
|
||||
M: Duke Du <dukedu83@gmail.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/tps546d24.rst
|
||||
F: drivers/hwmon/pmbus/tps546d24.c
|
||||
|
||||
TRACING
|
||||
M: Steven Rostedt <rostedt@goodmis.org>
|
||||
M: Ingo Molnar <mingo@redhat.com>
|
||||
@@ -21852,7 +21861,7 @@ F: lib/test_scanf.c
|
||||
F: lib/vsprintf.c
|
||||
|
||||
VT1211 HARDWARE MONITOR DRIVER
|
||||
M: Juerg Haefliger <juergh@gmail.com>
|
||||
M: Juerg Haefliger <juergh@proton.me>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/hwmon/vt1211.rst
|
||||
|
||||
@@ -257,14 +257,14 @@ config SENSORS_AHT10
|
||||
will be called aht10.
|
||||
|
||||
config SENSORS_AQUACOMPUTER_D5NEXT
|
||||
tristate "Aquacomputer D5 Next, Octo, Quadro, Farbwerk, and Farbwerk 360"
|
||||
tristate "Aquacomputer D5 Next, Octo, Quadro, Farbwerk, Farbwerk 360, High Flow Next"
|
||||
depends on USB_HID
|
||||
select CRC16
|
||||
help
|
||||
If you say yes here you get support for sensors and fans of
|
||||
the Aquacomputer D5 Next watercooling pump, Octo and Quadro fan
|
||||
controllers, Farbwerk and Farbwerk 360 RGB controllers, where
|
||||
available.
|
||||
controllers, Farbwerk and Farbwerk 360 RGB controllers, High Flow
|
||||
Next sensor, where available.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called aquacomputer_d5next.
|
||||
@@ -393,6 +393,7 @@ config SENSORS_ASB100
|
||||
|
||||
config SENSORS_ASPEED
|
||||
tristate "ASPEED AST2400/AST2500 PWM and Fan tach driver"
|
||||
depends on ARCH_ASPEED || COMPILE_TEST
|
||||
depends on THERMAL || THERMAL=n
|
||||
select REGMAP
|
||||
help
|
||||
@@ -1066,6 +1067,18 @@ config SENSORS_MAX31730
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called max31730.
|
||||
|
||||
config SENSORS_MAX31760
|
||||
tristate "MAX31760 fan speed controller"
|
||||
depends on I2C
|
||||
select REGMAP_I2C
|
||||
help
|
||||
Support for the Analog Devices MAX31760 Precision Fan-Speed
|
||||
Controller. MAX31760 integrates temperature sensing along with
|
||||
precision PWM fan control.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called max31760.
|
||||
|
||||
config SENSORS_MAX6620
|
||||
tristate "Maxim MAX6620 fan controller"
|
||||
depends on I2C
|
||||
@@ -1785,6 +1798,19 @@ config SENSORS_EMC2103
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called emc2103.
|
||||
|
||||
config SENSORS_EMC2305
|
||||
tristate "Microchip EMC2305 and compatible EMC2301/2/3"
|
||||
depends on I2C
|
||||
imply THERMAL
|
||||
help
|
||||
If you say yes here you get support for the Microchip EMC2305
|
||||
fan controller chips.
|
||||
The Microchip EMC2305 is a fan controller for up to 5 fans.
|
||||
Fan rotation speeds are reported in RPM.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called emc2305.
|
||||
|
||||
config SENSORS_EMC6W201
|
||||
tristate "SMSC EMC6W201"
|
||||
depends on I2C
|
||||
@@ -2341,21 +2367,6 @@ config SENSORS_ASUS_WMI
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called asus_wmi_sensors.
|
||||
|
||||
config SENSORS_ASUS_WMI_EC
|
||||
tristate "ASUS WMI B550/X570"
|
||||
depends on ACPI_WMI && SENSORS_ASUS_EC=n
|
||||
help
|
||||
If you say yes here you get support for the ACPI embedded controller
|
||||
hardware monitoring interface found in B550/X570 ASUS motherboards.
|
||||
This driver will provide readings of fans, voltages and temperatures
|
||||
through the system firmware.
|
||||
|
||||
This driver is deprecated in favor of the ASUS EC Sensors driver
|
||||
which provides fully compatible output.
|
||||
|
||||
This driver can also be built as a module. If so, the module
|
||||
will be called asus_wmi_sensors_ec.
|
||||
|
||||
config SENSORS_ASUS_EC
|
||||
tristate "ASUS EC Sensors"
|
||||
depends on X86
|
||||
|
||||
@@ -11,7 +11,6 @@ obj-$(CONFIG_SENSORS_ACPI_POWER) += acpi_power_meter.o
|
||||
obj-$(CONFIG_SENSORS_ATK0110) += asus_atk0110.o
|
||||
obj-$(CONFIG_SENSORS_ASUS_EC) += asus-ec-sensors.o
|
||||
obj-$(CONFIG_SENSORS_ASUS_WMI) += asus_wmi_sensors.o
|
||||
obj-$(CONFIG_SENSORS_ASUS_WMI_EC) += asus_wmi_ec_sensors.o
|
||||
|
||||
# Native drivers
|
||||
# asb100, then w83781d go first, as they can override other drivers' addresses.
|
||||
@@ -70,6 +69,7 @@ obj-$(CONFIG_SENSORS_DS620) += ds620.o
|
||||
obj-$(CONFIG_SENSORS_DS1621) += ds1621.o
|
||||
obj-$(CONFIG_SENSORS_EMC1403) += emc1403.o
|
||||
obj-$(CONFIG_SENSORS_EMC2103) += emc2103.o
|
||||
obj-$(CONFIG_SENSORS_EMC2305) += emc2305.o
|
||||
obj-$(CONFIG_SENSORS_EMC6W201) += emc6w201.o
|
||||
obj-$(CONFIG_SENSORS_F71805F) += f71805f.o
|
||||
obj-$(CONFIG_SENSORS_F71882FG) += f71882fg.o
|
||||
@@ -140,6 +140,7 @@ obj-$(CONFIG_SENSORS_MAX1668) += max1668.o
|
||||
obj-$(CONFIG_SENSORS_MAX197) += max197.o
|
||||
obj-$(CONFIG_SENSORS_MAX31722) += max31722.o
|
||||
obj-$(CONFIG_SENSORS_MAX31730) += max31730.o
|
||||
obj-$(CONFIG_SENSORS_MAX31760) += max31760.o
|
||||
obj-$(CONFIG_SENSORS_MAX6620) += max6620.o
|
||||
obj-$(CONFIG_SENSORS_MAX6621) += max6621.o
|
||||
obj-$(CONFIG_SENSORS_MAX6639) += max6639.o
|
||||
|
||||
@@ -1504,7 +1504,6 @@ LEAVE_UPDATE:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
static int abituguru_suspend(struct device *dev)
|
||||
{
|
||||
struct abituguru_data *data = dev_get_drvdata(dev);
|
||||
@@ -1526,16 +1525,12 @@ static int abituguru_resume(struct device *dev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static SIMPLE_DEV_PM_OPS(abituguru_pm, abituguru_suspend, abituguru_resume);
|
||||
#define ABIT_UGURU_PM (&abituguru_pm)
|
||||
#else
|
||||
#define ABIT_UGURU_PM NULL
|
||||
#endif /* CONFIG_PM */
|
||||
static DEFINE_SIMPLE_DEV_PM_OPS(abituguru_pm, abituguru_suspend, abituguru_resume);
|
||||
|
||||
static struct platform_driver abituguru_driver = {
|
||||
.driver = {
|
||||
.name = ABIT_UGURU_NAME,
|
||||
.pm = ABIT_UGURU_PM,
|
||||
.pm = pm_sleep_ptr(&abituguru_pm),
|
||||
},
|
||||
.probe = abituguru_probe,
|
||||
.remove = abituguru_remove,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user