Skip to content

Commit 0c0a061

Browse files
author
Guenter Roeck
committed
hwmon: (pmbus) Support for TI UCD90xxx series Sequencer and System Health Controllers
Hardware monitoring support for TI UCD90120, UCD90124, UCD9090, and UCD90910 Sequencer and System Health Controllers. Signed-off-by: Guenter Roeck <[email protected]> Reviewed-by: Tom Grennan <[email protected]>
1 parent 84fc458 commit 0c0a061

File tree

4 files changed

+402
-1
lines changed

4 files changed

+402
-1
lines changed

Documentation/hwmon/ucd9000

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
Kernel driver ucd9000
2+
=====================
3+
4+
Supported chips:
5+
* TI UCD90120, UCD90124, UCD9090, and UCD90910
6+
Prefixes: 'ucd90120', 'ucd90124', 'ucd9090', 'ucd90910'
7+
Addresses scanned: -
8+
Datasheets:
9+
http://focus.ti.com/lit/ds/symlink/ucd90120.pdf
10+
http://focus.ti.com/lit/ds/symlink/ucd90124.pdf
11+
http://focus.ti.com/lit/ds/symlink/ucd9090.pdf
12+
http://focus.ti.com/lit/ds/symlink/ucd90910.pdf
13+
14+
Author: Guenter Roeck <[email protected]>
15+
16+
17+
Description
18+
-----------
19+
20+
From datasheets:
21+
22+
The UCD90120 Power Supply Sequencer and System Health Monitor monitors and
23+
sequences up to 12 independent voltage rails. The device integrates a 12-bit
24+
ADC with a 2.5V internal reference for monitoring up to 13 power supply voltage,
25+
current, or temperature inputs.
26+
27+
The UCD90124 is a 12-rail PMBus/I2C addressable power-supply sequencer and
28+
system-health monitor. The device integrates a 12-bit ADC for monitoring up to
29+
13 power-supply voltage, current, or temperature inputs. Twenty-six GPIO pins
30+
can be used for power supply enables, power-on reset signals, external
31+
interrupts, cascading, or other system functions. Twelve of these pins offer PWM
32+
functionality. Using these pins, the UCD90124 offers support for fan control,
33+
margining, and general-purpose PWM functions.
34+
35+
The UCD9090 is a 10-rail PMBus/I2C addressable power-supply sequencer and
36+
monitor. The device integrates a 12-bit ADC for monitoring up to 10 power-supply
37+
voltage inputs. Twenty-three GPIO pins can be used for power supply enables,
38+
power-on reset signals, external interrupts, cascading, or other system
39+
functions. Ten of these pins offer PWM functionality. Using these pins, the
40+
UCD9090 offers support for margining, and general-purpose PWM functions.
41+
42+
The UCD90910 is a ten-rail I2C / PMBus addressable power-supply sequencer and
43+
system-health monitor. The device integrates a 12-bit ADC for monitoring up to
44+
13 power-supply voltage, current, or temperature inputs.
45+
46+
This driver is a client driver to the core PMBus driver. Please see
47+
Documentation/hwmon/pmbus for details on PMBus client drivers.
48+
49+
50+
Usage Notes
51+
-----------
52+
53+
This driver does not auto-detect devices. You will have to instantiate the
54+
devices explicitly. Please see Documentation/i2c/instantiating-devices for
55+
details.
56+
57+
58+
Platform data support
59+
---------------------
60+
61+
The driver supports standard PMBus driver platform data. Please see
62+
Documentation/hwmon/pmbus for details.
63+
64+
65+
Sysfs entries
66+
-------------
67+
68+
The following attributes are supported. Limits are read-write; all other
69+
attributes are read-only.
70+
71+
in[1-12]_label "vout[1-12]".
72+
in[1-12]_input Measured voltage. From READ_VOUT register.
73+
in[1-12]_min Minumum Voltage. From VOUT_UV_WARN_LIMIT register.
74+
in[1-12]_max Maximum voltage. From VOUT_OV_WARN_LIMIT register.
75+
in[1-12]_lcrit Critical minumum Voltage. VOUT_UV_FAULT_LIMIT register.
76+
in[1-12]_crit Critical maximum voltage. From VOUT_OV_FAULT_LIMIT register.
77+
in[1-12]_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status.
78+
in[1-12]_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status.
79+
in[1-12]_lcrit_alarm Voltage critical low alarm. From VOLTAGE_UV_FAULT status.
80+
in[1-12]_crit_alarm Voltage critical high alarm. From VOLTAGE_OV_FAULT status.
81+
82+
curr[1-12]_label "iout[1-12]".
83+
curr[1-12]_input Measured current. From READ_IOUT register.
84+
curr[1-12]_max Maximum current. From IOUT_OC_WARN_LIMIT register.
85+
curr[1-12]_lcrit Critical minumum output current. From IOUT_UC_FAULT_LIMIT
86+
register.
87+
curr[1-12]_crit Critical maximum current. From IOUT_OC_FAULT_LIMIT register.
88+
curr[1-12]_max_alarm Current high alarm. From IOUT_OC_WARNING status.
89+
curr[1-12]_crit_alarm Current critical high alarm. From IOUT_OC_FAULT status.
90+
91+
For each attribute index, either voltage or current is
92+
reported, but not both. If voltage or current is
93+
reported depends on the chip configuration.
94+
95+
temp[1-2]_input Measured temperatures. From READ_TEMPERATURE_1 and
96+
READ_TEMPERATURE_2 registers.
97+
temp[1-2]_max Maximum temperature. From OT_WARN_LIMIT register.
98+
temp[1-2]_crit Critical high temperature. From OT_FAULT_LIMIT register.
99+
temp[1-2]_max_alarm Temperature high alarm.
100+
temp[1-2]_crit_alarm Temperature critical high alarm.
101+
102+
fan[1-4]_input Fan RPM.
103+
fan[1-4]_alarm Fan alarm.
104+
fan[1-4]_fault Fan fault.
105+
106+
Fan attributes are only available on chips supporting
107+
fan control (UCD90124, UCD90910). Attribute files are
108+
created only for enabled fans.
109+
Note that even though UCD90910 supports up to 10 fans,
110+
only up to four fans are currently supported.

drivers/hwmon/Kconfig

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -857,12 +857,24 @@ config SENSORS_MAX8688
857857
This driver can also be built as a module. If so, the module will
858858
be called max8688.
859859

860+
config SENSORS_UCD9000
861+
tristate "TI UCD90120, UCD90124, UCD9090, UCD90910"
862+
default n
863+
help
864+
If you say yes here you get hardware monitoring support for TI
865+
UCD90120, UCD90124, UCD9090, UCD90910 Sequencer and System Health
866+
Controllers.
867+
868+
This driver can also be built as a module. If so, the module will
869+
be called ucd9000.
870+
860871
config SENSORS_UCD9200
861872
tristate "TI UCD9220, UCD9222, UCD9224, UCD9240, UCD9244, UCD9246, UCD9248"
862873
default n
863874
help
864875
If you say yes here you get hardware monitoring support for TI
865-
UCD9220, UCD9222, UCD9224, UCD9240, UCD9244, UCD9246, and UCD9248.
876+
UCD9220, UCD9222, UCD9224, UCD9240, UCD9244, UCD9246, and UCD9248
877+
Digital PWM System Controllers.
866878

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

drivers/hwmon/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ obj-$(CONFIG_SENSORS_PMBUS) += pmbus.o
123123
obj-$(CONFIG_SENSORS_MAX16064) += max16064.o
124124
obj-$(CONFIG_SENSORS_MAX34440) += max34440.o
125125
obj-$(CONFIG_SENSORS_MAX8688) += max8688.o
126+
obj-$(CONFIG_SENSORS_UCD9000) += ucd9000.o
126127
obj-$(CONFIG_SENSORS_UCD9200) += ucd9200.o
127128

128129
ccflags-$(CONFIG_HWMON_DEBUG_CHIP) := -DDEBUG

0 commit comments

Comments
 (0)