Krzysztof Adamski
c1143d1bc5
hwmon: (tmp421) add support for defining labels from DT
...
tmp42x is a multichannel temperature sensor with several external
channels. Since those channels can be used to connect diodes placed
anywhere in the system, their meaning will vary depending on the
project. For this case, the hwmon framework has an idea of labels which
allows us to assign the meaning to each channel.
The similar concept is already implemented in ina3221 - the label for
each channel can be defined via device tree. See commit a9e9dd9c6d
("hwmon: (ina3221) Read channel input source info from DT")
This patch adds support for similar feature to tmp421.
Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com >
Link: https://lore.kernel.org/r/dab0fda6ac0e8d7f163c3762a7fb1e595a4d8159.1634206677.git.krzysztof.adamski@nokia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-15 15:44:21 -07:00
Krzysztof Adamski
f04ce1e323
dt-bindings: hwmon: add missing tmp421 binding
...
Add basic description of the tmp421 driver DT bindings.
Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/84ac871e30a406a1613d140a084b4f3390753099.1634206677.git.krzysztof.adamski@nokia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-15 15:37:41 -07:00
Krzysztof Adamski
5e3dbeac37
hwmon: (tmp421) introduce a channel struct
...
This is a preparatory change. Upcoming patches will introduce more
per-channel parameters so it's worth organizing them into a struct.
Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com >
Link: https://lore.kernel.org/r/baf34d95983a6b58a3e39e4c098e5979e541572e.1634029538.git.krzysztof.adamski@nokia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:25:34 -07:00
Uwe Kleine-König
beee7890c3
hwmon: (adt7x10) Make adt7x10_remove() return void
...
Up to now adt7x10_remove() returns zero unconditionally. Make it return
void instead which makes it easier to see in the callers that there is
no error to handle.
Also the return value of i2c and spi remove callbacks is ignored anyway.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de >
Link: https://lore.kernel.org/r/20211011132754.2479853-3-u.kleine-koenig@pengutronix.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:42 -07:00
Armin Wolf
8a0c75a1c3
hwmon: (dell-smm) Remove unnecessary includes
...
sched.h and io.h are not used anywhere in dell-smm-hwmon.c.
Signed-off-by: Armin Wolf <W_Armin@gmx.de >
Link: https://lore.kernel.org/r/20210926221044.14327-3-W_Armin@gmx.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:42 -07:00
Krzysztof Kozlowski
9a094b758d
dt-bindings: hwmon: jedec,jc42: add nxp,se97b
...
Document bindings for NXP SE97B, a DDR memory module temperature sensor
with integrated SPD and EEPROM via Atmel's AT24 interface.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920182114.339419-6-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:42 -07:00
Paul Fertser
952a11ca32
hwmon: cleanup non-bool "valid" data fields
...
We have bool so use it consistently in all the drivers.
The following Coccinelle script was used:
@@
identifier T;
type t = { char, int };
@@
struct T {
...
- t valid;
+ bool valid;
...
}
@@
identifier v;
@@
(
- v->valid = 0
+ v->valid = false
|
- v->valid = 1
+ v->valid = true
)
followed by sed to fixup the comments:
sed '/bool valid;/{s/!=0/true/;s/zero/false/}'
Few whitespace changes were fixed manually. All modified drivers were
compile-tested.
Signed-off-by: Paul Fertser <fercerpav@gmail.com >
Link: https://lore.kernel.org/r/20210924195202.27917-1-fercerpav@gmail.com
[groeck: Fixed up 'u8 valid' to 'boool valid' in atxp1.c]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Oleksij Rempel
b87783e855
hwmon: (tmp103) Convert tmp103 to use new hwmon registration API
...
Use devm_hwmon_device_register_with_info() which will make thermal
framework work.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de >
Link: https://lore.kernel.org/r/20211007125301.3030-1-o.rempel@pengutronix.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Vadim Pasternak
b2be2422c0
hwmon: (mlxreg-fan) Support distinctive names per different cooling devices
...
Provide different names for cooling devices registration to allow
binding each cooling devices to relevant thermal zone. Thus, specific
cooling device can be associated with related thermal sensor by setting
thermal cooling device type for example to "mlxreg_fan2" and passing
this type to thermal_zone_bind_cooling_device() through 'cdev->type'.
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com >
Link: https://lore.kernel.org/r/20210926053541.1806937-3-vadimp@nvidia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Vadim Pasternak
b1c2423734
hwmon: (mlxreg-fan) Modify PWM connectivity validation
...
Validate PWM connectivity only for additional PWM - "pwm1" is connected
on all systems, while "pwm2" - "pwm4" are optional. Validate
connectivity only for optional attributes by reading of related "pwm{n}"
registers - in case "pwm{n}" is not connected, register value is
supposed to be 0xff.
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com >
Link: https://lore.kernel.org/r/20210926053541.1806937-2-vadimp@nvidia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Oleksandr Natalenko
1508fb2915
hwmon: (nct6775) add Pro WS X570-ACE
...
ASUS Pro WS X570-ACE board has got an nct6775 chip, but by default
there's no use of it because of resource conflict:
```
ACPI Warning: SystemIO range 0x0000000000000295-0x0000000000000296 conflicts with OpRegion 0x0000000000000290-0x0000000000000299 (\AMW0.SHWM) (20210604/utaddress-204
)
ACPI: OSL: Resource conflict; ACPI support missing from driver?
ACPI: OSL: Resource conflict: System may be unstable or behave erratically
```
A workaround is to use `acpi_enforce_resources=lax`, but a proper
support needs to be added instead.
This commit adds Pro WS X570-ACE to the list of boards that can be monitored
using ASUS WMI.
Tested by me on this hardware:
```
Base Board Information
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: Pro WS X570-ACE
BIOS Information
Vendor: American Megatrends Inc.
Version: 3801
Release Date: 07/30/2021
```
Signed-off-by: Oleksandr Natalenko <oleksandr@natalenko.name >
Link: https://lore.kernel.org/r/20211003133344.9036-2-oleksandr@natalenko.name
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Brandon Wyman
8a5cfcfa94
hwmon: (pmbus/ibm-cffps) Use MFR_ID to choose version
...
There are multiple power supplies that will indicate
CFFPS_CCIN_VERSION_1, use the manufacturer ID to determine if it should
be treated as version cffps1 or version cffps2.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com >
Link: https://lore.kernel.org/r/20211004144339.2634330-2-bjwyman@gmail.com
[groeck: Fixed continuation line alignment]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Brandon Wyman
a111ec399c
hwmon: (pmbus/ibm-cffps) Add mfg_id debugfs entry
...
Add support for the manufacturer ID to the debugfs entries.
Signed-off-by: Brandon Wyman <bjwyman@gmail.com >
Link: https://lore.kernel.org/r/20211004144339.2634330-1-bjwyman@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Denis Pauk
6e2baac88c
hwmon: (nct6775) Add additional ASUS motherboards.
...
Add support:
* PRIME B360-PLUS
* PRIME X570-PRO
* ROG CROSSHAIR VIII FORMULA
* ROG STRIX B550-I GAMING
* ROG STRIX X570-F GAMING
* ROG STRIX Z390-E GAMING
* TUF GAMING B550-PRO
* TUF GAMING Z490-PLUS
* TUF GAMING Z490-PLUS (WI-FI)
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204807
Signed-off-by: Denis Pauk <pauk.denis@gmail.com >
Tested-by: matt-testalltheway <sefoci9222@rerunway.com >
Tested-by: Kamil Dudka <kdudka@redhat.com >
Tested-by: Robert Swiecki <robert@swiecki.net >
Tested-by: Kamil Pietrzak <kpietrzak@disroot.org >
Tested-by: Igor <igor@svelig.com >
Tested-by: Tor Vic <torvic9@mailbox.org >
Tested-by: Poezevara <nephartyz@gmail.com >
Cc: Andy Shevchenko <andriy.shevchenko@intel.com >
Cc: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20211002210857.709956-2-pauk.denis@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Zev Weiss
373c0a7793
dt-bindings: hwmon/pmbus: Add ti,lm25066 power-management IC
...
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210928092242.30036-9-zev@bewilderbeest.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Zev Weiss
94ee5fcc24
hwmon: (pmbus/lm25066) Support configurable sense resistor values
...
The appropriate mantissa values for the lm25066 family's direct-format
current and power readings are a function of the sense resistor
employed between the SENSE and VIN pins of the chip. Instead of
assuming that resistance is always the same 1mOhm as used in the
datasheet, allow it to be configured via a device-tree property
("shunt-resistor-micro-ohms").
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Link: https://lore.kernel.org/r/20210928092242.30036-8-zev@bewilderbeest.net
[groeck: Fixed checkpatch warnings]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:41 -07:00
Zev Weiss
b7792f3ea3
hwmon: (pmbus/lm25066) Add OF device ID table
...
The driver doesn't have a struct of_device_id table but supported devices
are registered via Device Trees. This is working on the assumption that a
I2C device registered via OF will always match a legacy I2C device ID and
that the MODALIAS reported will always be of the form i2c:<device>.
But this could change in the future so the correct approach is to have an
OF device ID table if the devices are registered via OF.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Link: https://lore.kernel.org/r/20210928092242.30036-7-zev@bewilderbeest.net
[groeck: Replaced reference to reasoning with reasoning, fixed checkpatch
warnings, fixed compile warning comparing of_id->data w/ i2c_id->driver_data]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Zev Weiss
df60a5daa7
hwmon: (pmbus/lm25066) Mark lm25066_coeff array const
...
lm25066_coeff is read-only. Mark it as such.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Link: https://lore.kernel.org/r/20210928092242.30036-6-zev@bewilderbeest.net
[groeck: Added description]
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Zev Weiss
b7931a7b0e
hwmon: (pmbus/lm25066) Let compiler determine outer dimension of lm25066_coeff
...
Maintaining this manually is error prone (there are currently only
five chips supported, not six); gcc can do it for us automatically.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Fixes: 666c14906b ("hwmon: (pmbus/lm25066) Drop support for LM25063")
Link: https://lore.kernel.org/r/20210928092242.30036-5-zev@bewilderbeest.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Zev Weiss
6d2ff184cb
hwmon: (pmbus/lm25066) Avoid forward declaration of lm25066_id
...
Reordering things to put the table before the probe function
eliminates the need for it.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Link: https://lore.kernel.org/r/20210928092242.30036-4-zev@bewilderbeest.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Zev Weiss
fa16188fa2
hwmon: (pmbus/lm25066) Adjust lm25066 PSC_CURRENT_IN_L mantissa
...
At least as of Revision J, the datasheet has a slightly different
value than what we'd had in the driver.
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Link: https://lore.kernel.org/r/20210928092242.30036-3-zev@bewilderbeest.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Zev Weiss
ae59dc455a
hwmon: (pmbus/lm25066) Add offset coefficients
...
With the exception of the lm5066i, all the devices handled by this
driver had been missing their offset ('b') coefficients for direct
format readings.
Cc: stable@vger.kernel.org
Fixes: 58615a94f6 ("hwmon: (pmbus/lm25066) Add support for LM25056")
Fixes: e53e6497fc ("hwmon: (pmbus/lm25066) Refactor device specific coefficients")
Signed-off-by: Zev Weiss <zev@bewilderbeest.net >
Link: https://lore.kernel.org/r/20210928092242.30036-2-zev@bewilderbeest.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Krzysztof Kozlowski
b4fb4676fb
dt-bindings: hwmon: ibm,cffps: move to trivial devices
...
The IBM Common Form Factor Power Supply Versions 1 and 2 bindings are
trivial, so they can be integrated into trivial devices bindings.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210921102832.143352-3-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Linus Walleij
7bcc5a7a5c
dt-bindings: hwmon: Convert NTC thermistor to YAML
...
This converts the NTC thermistor DT bindings to YAML. Some care had to
be taken since I had to add some illustrations to make the connection
layouts graspable.
Cc: Javier Martinez Canillas <javier@dowhile0.org >
Cc: Johannes Pointner <johannes.pointner@gmail.com >
Cc: Peter Rosin <peda@axentia.se >
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com >
Cc: devicetree@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210922233901.1871274-1-linus.walleij@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Krzysztof Adamski
cae0233946
hwmon: (tmp421) introduce MAX_CHANNELS define
...
There are few places where the maximal number of channels is used define
the size of arrays but when raw number is used it is not clear that they
really related to this quantity.
This commit introduces MAX_CHANNELS define and uses it those places to
give some context to the number.
Signed-off-by: Krzysztof Adamski <krzysztof.adamski@nokia.com >
Link: https://lore.kernel.org/r/abc1a213a25b890b799b35ad94bb543a2ade7fc8.1632473318.git.krzysztof.adamski@nokia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Krzysztof Kozlowski
0a4157196a
dt-bindings: hwmon: jedec,jc42: convert to dtschema
...
Convert the Jedec JC-42.4 temperature sensor bindings to DT schema
format.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920182114.339419-5-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:40 -07:00
Krzysztof Kozlowski
3634eceea1
dt-bindings: hwmon: hih6130: move to trivial devices
...
The hih6130 bindings are trivial, so it can be integrated into trivial
devices bindings.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920182114.339419-4-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:39 -07:00
Krzysztof Kozlowski
f348047ab2
dt-bindings: hwmon: dps650ab: move to trivial devices
...
The dps650ab bindings are trivial, so it can be integrated into trivial
devices bindings.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920182114.339419-3-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:39 -07:00
Krzysztof Kozlowski
1947a89e38
dt-bindings: hwmon: lm75: remove gmt,g751 from trivial devices
...
gmt,g751 is covered by LM75 sensor bindings. This fixes warning:
arch/arm/boot/dts/gemini-dlink-dns-313.dt.yaml: temperature-sensor@48:
'#thermal-sensor-cells' does not match any of the regexes: 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920182114.339419-2-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:39 -07:00
Daniel Dawson
d55532f771
hwmon: (nct6683) Add another customer ID for NCT6683D sensor chip on some ASRock boards
...
This value was found on a Z370M Pro4 rev. 1.01, with an
NCT6683D-T chip.
Signed-off-by: Daniel Dawson <danielcdawson@gmail.com >
Link: https://lore.kernel.org/r/20210921165859.48714-1-danielcdawson@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:39 -07:00
Krzysztof Kozlowski
8084b2a141
dt-bindings: hwmon: sensirion,sht15: convert to dtschema
...
Convert the Sensirion SHT15 humidity sensor to DT schema format.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210921102832.143352-6-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:39 -07:00
Krzysztof Kozlowski
105b65d90c
dt-bindings: hwmon: microchip,mcp3021: convert to dtschema
...
Convert the Microchip MCP3021 ADC bindings to DT schema format.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210921102832.143352-5-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:39 -07:00
Krzysztof Kozlowski
e2dbaa6515
dt-bindings: hwmon: lltc,ltc4151: convert to dtschema
...
Convert the LTC4151 current and voltage sensor bindings to DT schema
format.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210921102832.143352-4-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:39 -07:00
Krzysztof Kozlowski
4c4237898e
dt-bindings: hwmon: ti,tmp102: add bindings and remove from trivial devices
...
The TI TMP102 temperature sensor does not fit into trivial devices
bindings due to additional properties. Add separate bindings for it.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210921102832.143352-2-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:38 -07:00
Krzysztof Kozlowski
45678bab08
dt-bindings: hwmon: ti,tmp108: convert to dtschema
...
Convert the TI TMP108 temperature sensor bindings to DT schema format.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210921102832.143352-1-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:38 -07:00
Krzysztof Kozlowski
951778f117
dt-bindings: hwmon: lm70: move to trivial devices
...
The lm70 thermometer bindings are trivial, so like many other I2C/SPI
temperature sensors can be integrated into trivial devices bindings.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920182114.339419-1-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:38 -07:00
Krzysztof Kozlowski
3e0ce52615
dt-bindings: hwmon: lm90: do not require VCC supply
...
The LM90-like sensors usually need VCC supply, however this can be
hard-wired to the board main supply (like in SiFive HiFive Unmatched
RISC-V board). Original bindings made VCC supply as required but in
practice several other boards skipped it. Make it optional.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920181913.338772-2-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:38 -07:00
Krzysztof Kozlowski
9559cb3379
dt-bindings: hwmon: lm90: convert to dtschema
...
Convert the National LM90 hwmon sensor bindings to DT schema format.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210920181913.338772-1-krzysztof.kozlowski@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:38 -07:00
Colin Ian King
000cc5bc49
hwmon: (mlxreg-fan) Fix out of bounds read on array fan->pwm
...
Array fan->pwm[] is MLXREG_FAN_MAX_PWM elements in size, however the
for-loop has a off-by-one error causing index i to be out of range
causing an out of bounds read on the array. Fix this by replacing
the <= operator with < in the for-loop.
Addresses-Coverity: ("Out-of-bounds read")
Reported-by: Vadim Pasternak <vadimp@nvidia.com >
Fixes: 35edbaab3bbf ("hwmon: (mlxreg-fan) Extend driver to support multiply cooling devices")
Signed-off-by: Colin Ian King <colin.king@canonical.com >
Link: https://lore.kernel.org/r/20210920180921.16246-1-colin.king@canonical.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:38 -07:00
Denis Pauk
3fbbfc27f9
hwmon: (nct6775) Support access via Asus WMI
...
Support accessing the NCT677x via Asus WMI functions.
On mainboards that support this way of accessing the chip, the driver will
usually not work without this option since in these mainboards, ACPI will
mark the I/O port as used.
Code uses ACPI firmware interface to communicate with sensors with ASUS
motherboards:
* PRIME B460-PLUS,
* ROG CROSSHAIR VIII IMPACT,
* ROG STRIX B550-E GAMING,
* ROG STRIX B550-F GAMING,
* ROG STRIX B550-F GAMING (WI-FI),
* ROG STRIX Z490-I GAMING,
* TUF GAMING B550M-PLUS,
* TUF GAMING B550M-PLUS (WI-FI),
* TUF GAMING B550-PLUS,
* TUF GAMING X570-PLUS,
* TUF GAMING X570-PRO (WI-FI).
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204807
Signed-off-by: Denis Pauk <pauk.denis@gmail.com >
Co-developed-by: Bernhard Seibold <mail@bernhard-seibold.de >
Signed-off-by: Bernhard Seibold <mail@bernhard-seibold.de >
Tested-by: Pär Ekholm <pehlm@pekholm.org >
Tested-by: <to.eivind@gmail.com >
Tested-by: Artem S. Tashkinov <aros@gmx.com >
Tested-by: Vittorio Roberto Alfieri <me@rebtoor.com >
Tested-by: Sahan Fernando <sahan.h.fernando@gmail.com >
Cc: Andy Shevchenko <andriy.shevchenko@intel.com >
Cc: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20210917220240.56553-4-pauk.denis@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Denis Pauk
4914036eb6
hwmon: (nct6775) Use nct6775_*() function pointers in nct6775_data.
...
Prepare for platform specific callbacks usage:
* Use nct6775 function pointers in struct nct6775_data instead direct
calls.
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204807
Signed-off-by: Denis Pauk <pauk.denis@gmail.com >
Co-developed-by: Bernhard Seibold <mail@bernhard-seibold.de >
Signed-off-by: Bernhard Seibold <mail@bernhard-seibold.de >
Cc: Andy Shevchenko <andriy.shevchenko@intel.com >
Cc: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20210917220240.56553-3-pauk.denis@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Denis Pauk
2e7b988696
hwmon: (nct6775) Use superio_*() function pointers in sio_data.
...
Prepare for platform specific callbacks usage:
* Rearrange code for directly use struct nct6775_sio_data in superio_*()
functions.
* Use superio function pointers in nct6775_sio_data struct instead direct
calls.
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204807
Signed-off-by: Denis Pauk <pauk.denis@gmail.com >
Co-developed-by: Bernhard Seibold <mail@bernhard-seibold.de >
Signed-off-by: Bernhard Seibold <mail@bernhard-seibold.de >
Cc: Andy Shevchenko <andriy.shevchenko@intel.com >
Cc: Guenter Roeck <linux@roeck-us.net >
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Link: https://lore.kernel.org/r/20210917220240.56553-2-pauk.denis@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Vadim Pasternak
d7efb2ebc7
hwmon: (mlxreg-fan) Extend driver to support multiply cooling devices
...
Add support for additional cooling devices in order to support the
systems, which can be equipped with up-to four PWM controllers.
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com >
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Vadim Pasternak
150f1e0c6f
hwmon: (mlxreg-fan) Extend driver to support multiply PWM
...
Add additional PWM attributes in order to support the systems, which
can be equipped with up-to four PWM controllers. System capability of
additional PWM support is validated through the reading of relevant
registers.
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com >
Link: https://lore.kernel.org/r/20210916194719.871413-3-vadimp@nvidia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Vadim Pasternak
bc8de07e88
hwmon: (mlxreg-fan) Extend the maximum number of tachometers
...
Extend support of maximum tachometers from 12 to 14 in order to support
new systems, equipped with more fans.
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com >
Link: https://lore.kernel.org/r/20210916194719.871413-2-vadimp@nvidia.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Arun Saravanan Balachandran
e8ac01e5db
hwmon: Add Maxim MAX6620 hardware monitoring driver
...
Add hardware monitoring driver for Maxim MAX6620 Fan controller
Originally-from: L. Grunenberg <contact@lgrunenberg.de >
Originally-from: Cumulus Networks <support@cumulusnetworks.com >
Originally-from: Shuotian Cheng <shuche@microsoft.com >
Signed-off-by: Arun Saravanan Balachandran <Arun_Saravanan_Balac@dell.com >
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Armin Wolf
d73287eed7
hwmon: (raspberrypi) Use generic notification mechanism
...
Use hwmon_notify_event() to make the code easier to
understand and to also generate udev events.
Signed-off-by: Armin Wolf <W_Armin@gmx.de >
Link: https://lore.kernel.org/r/20210905190049.11381-1-W_Armin@gmx.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Armin Wolf
6665e10a2e
hwmon: (i5500_temp) Convert to devm_hwmon_device_register_with_info
...
Use devm_hwmon_device_register_with_info() to simplify code
and use register defines instead of hardcoded values.
Also use the BIT() macro for the alarms.
Only compile-tested.
Signed-off-by: Armin Wolf <W_Armin@gmx.de >
Link: https://lore.kernel.org/r/20210823170724.7662-1-W_Armin@gmx.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Maxime Ripard
fb4747d89b
dt-bindings: hwmon: Add IIO HWMON binding
...
Even though we had the iio-hwmon driver for some time and a number of
boards using it already, we never had a binding for it. Let's add it
based on what the driver expects and the boards are providing.
Cc: Guenter Roeck <linux@roeck-us.net >
Cc: Jean Delvare <jdelvare@suse.com >
Cc: Jonathan Cameron <jic23@kernel.org >
Cc: linux-hwmon@vger.kernel.org
Signed-off-by: Maxime Ripard <maxime@cerno.tech >
Reviewed-by: Rob Herring <robh@kernel.org >
Link: https://lore.kernel.org/r/20210901091852.479202-24-maxime@cerno.tech
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:37 -07:00
Yang Yingliang
ada61aa0b1
hwmon: Fix possible memleak in __hwmon_device_register()
...
I got memory leak as follows when doing fault injection test:
unreferenced object 0xffff888102740438 (size 8):
comm "27", pid 859, jiffies 4295031351 (age 143.992s)
hex dump (first 8 bytes):
68 77 6d 6f 6e 30 00 00 hwmon0..
backtrace:
[<00000000544b5996>] __kmalloc_track_caller+0x1a6/0x300
[<00000000df0d62b9>] kvasprintf+0xad/0x140
[<00000000d3d2a3da>] kvasprintf_const+0x62/0x190
[<000000005f8f0f29>] kobject_set_name_vargs+0x56/0x140
[<00000000b739e4b9>] dev_set_name+0xb0/0xe0
[<0000000095b69c25>] __hwmon_device_register+0xf19/0x1e50 [hwmon]
[<00000000a7e65b52>] hwmon_device_register_with_info+0xcb/0x110 [hwmon]
[<000000006f181e86>] devm_hwmon_device_register_with_info+0x85/0x100 [hwmon]
[<0000000081bdc567>] tmp421_probe+0x2d2/0x465 [tmp421]
[<00000000502cc3f8>] i2c_device_probe+0x4e1/0xbb0
[<00000000f90bda3b>] really_probe+0x285/0xc30
[<000000007eac7b77>] __driver_probe_device+0x35f/0x4f0
[<000000004953d43d>] driver_probe_device+0x4f/0x140
[<000000002ada2d41>] __device_attach_driver+0x24c/0x330
[<00000000b3977977>] bus_for_each_drv+0x15d/0x1e0
[<000000005bf2a8e3>] __device_attach+0x267/0x410
When device_register() returns an error, the name allocated in
dev_set_name() will be leaked, the put_device() should be used
instead of calling hwmon_dev_release() to give up the device
reference, then the name will be freed in kobject_cleanup().
Reported-by: Hulk Robot <hulkci@huawei.com >
Fixes: bab2243ce1 ("hwmon: Introduce hwmon_device_register_with_groups")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com >
Link: https://lore.kernel.org/r/20211012112758.2681084-1-yangyingliang@huawei.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net >
2021-10-12 07:22:01 -07:00