Commit 64824861 authored by Charles Hsu's avatar Charles Hsu Committed by Guenter Roeck
Browse files

hwmon: pmbus: add support for STEF48H28



Add support for STEF48H28 hot-swap controller.

Signed-off-by: default avatarCharles Hsu <hsu.yungteng@gmail.com>
Link: https://lore.kernel.org/r/20260126063712.1049025-2-hsu.yungteng@gmail.com


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 418a1828
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -234,6 +234,7 @@ Hardware Monitoring Kernel Drivers
   shtc1
   sis5595
   sl28cpld
   stef48h28
   smpro-hwmon
   smsc47b397
   smsc47m192
+73 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

Kernel driver stef48h28
=======================

Supported chips:

  * Analog Devices STEF48H28

    Prefix: 'stef48h28'

    Addresses scanned: -

    Datasheet: https://www.st.com/resource/en/data_brief/stef48h28.pdf

Author:

  - Charles Hsu <hsu.yungteng@gmail.com>


Description
-----------

The STEF48H28 is a 30 A integrated e-fuse for 9-80 V DC power rails.
It provides inrush control, undervoltage/overvoltage lockout and
overcurrent protection using an adaptive (I x t) scheme that permits
short high-current pulses typical of CPU/GPU loads.

The device offers an analog current-monitor output and an on-chip
temperature-monitor signal for system supervision. Startup behavior is
programmable through insertion-delay and soft-start settings.

Additional features include power-good indication, self-diagnostics,
thermal shutdown and a PMBus interface for telemetry and status
reporting.

Platform data support
---------------------

The driver supports standard PMBus driver platform data.

Sysfs entries
-------------

=========================================================
in1_label		"vin".
in1_input		Measured voltage. From READ_VIN register.
in1_min			Minimum Voltage. From VIN_UV_WARN_LIMIT register.
in1_max			Maximum voltage. From VIN_OV_WARN_LIMIT register.

in2_label		"vout1".
in2_input		Measured voltage. From READ_VOUT register.
in2_min			Minimum Voltage. From VOUT_UV_WARN_LIMIT register.
in2_max			Maximum voltage. From VOUT_OV_WARN_LIMIT register.

curr1_label "iin".
curr1_input Measured current. From READ_IIN register.

curr2_label "iout1".
curr2_input Measured current. From READ_IOUT register.

power1_label		"pin"
power1_input		Measured input power. From READ_PIN register.

power2_label		"pout1"
power2_input		Measured output power. From READ_POUT register.

temp1_input		Measured temperature. From READ_TEMPERATURE_1 register.
temp1_max		Maximum temperature. From OT_WARN_LIMIT register.
temp1_crit		Critical high temperature. From OT_FAULT_LIMIT register.

temp2_input		Measured temperature. From READ_TEMPERATURE_2 register.
=========================================================
+7 −0
Original line number Diff line number Diff line
@@ -24710,6 +24710,13 @@ S: Maintained
F:	Documentation/devicetree/bindings/power/supply/st,stc3117.yaml
F:	drivers/power/supply/stc3117_fuel_gauge.c
ST STEF48H28 DRIVER
M:	Charles Hsu	<hsu.yungteng@gmail.com>
L:	linux-hwmon@vger.kernel.org
S:	Maintained
F:	Documentation/hwmon/stef48h28.rst
F:	drivers/hwmon/pmbus/stef48h28.c
ST STM32 FIREWALL
M:	Gatien Chevallier <gatien.chevallier@foss.st.com>
S:	Maintained
+9 −0
Original line number Diff line number Diff line
@@ -585,6 +585,15 @@ config SENSORS_Q54SJ108A2
	  This driver can also be built as a module. If so, the module will
	  be called q54sj108a2.

config SENSORS_STEF48H28
	tristate "ST STEF48H28"
	help
	  If you say yes here you get hardware monitoring support for ST
	  STEF48H28.

	  This driver can also be built as a module. If so, the module will
	  be called stef48h28.

config SENSORS_STPDDC60
	tristate "ST STPDDC60"
	help
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ obj-$(CONFIG_SENSORS_PLI1209BC) += pli1209bc.o
obj-$(CONFIG_SENSORS_PM6764TR)	+= pm6764tr.o
obj-$(CONFIG_SENSORS_PXE1610)	+= pxe1610.o
obj-$(CONFIG_SENSORS_Q54SJ108A2)	+= q54sj108a2.o
obj-$(CONFIG_SENSORS_STEF48H28)	+= stef48h28.o
obj-$(CONFIG_SENSORS_STPDDC60)	+= stpddc60.o
obj-$(CONFIG_SENSORS_TDA38640)	+= tda38640.o
obj-$(CONFIG_SENSORS_TPS25990)	+= tps25990.o
Loading