Kernel driver zl6100

Supported chips:

http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146401

Author: Guenter Roeck <linux@roeck-us.net>

Description

This driver supports hardware monitoring for Intersil / Zilker Labs ZL6100 and compatible digital DC-DC controllers.

The driver is a client driver to the core PMBus driver. Please see Documentation/hwmon/pmbus.rst and Documentation.hwmon/pmbus-core for details on PMBus client drivers.

Usage Notes

This driver does not auto-detect devices. You will have to instantiate the devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for details.

Warning

Do not access chip registers using the i2cdump command, and do not use any of the i2ctools commands on a command register used to save and restore configuration data (0x11, 0x12, 0x15, 0x16, and 0xf4). The chips supported by this driver interpret any access to those command registers (including read commands) as request to execute the command in question. Unless write accesses to those registers are protected, this may result in power loss, board resets, and/or Flash corruption. Worst case, your board may turn into a brick.

Platform data support

The driver supports standard PMBus driver platform data.

Module parameters

delay

Intersil/Zilker Labs DC-DC controllers require a minimum interval between I2C bus accesses. According to Intersil, the minimum interval is 2 ms, though 1 ms appears to be sufficient and has not caused any problems in testing. The problem is known to affect all currently supported chips. For manual override, the driver provides a writeable module parameter, ‘delay’, which can be used to set the interval to a value between 0 and 65,535 microseconds.

Sysfs entries

The following attributes are supported. Limits are read-write; all other attributes are read-only.

in1_label

“vin”

in1_input

Measured input voltage.

in1_min

Minimum input voltage.

in1_max

Maximum input voltage.

in1_lcrit

Critical minimum input voltage.

in1_crit

Critical maximum input voltage.

in1_min_alarm

Input voltage low alarm.

in1_max_alarm

Input voltage high alarm.

in1_lcrit_alarm

Input voltage critical low alarm.

in1_crit_alarm

Input voltage critical high alarm.

in2_label

“vmon”

in2_input

Measured voltage on VMON (ZL2004) or VDRV (ZL9101M, ZL9117M) pin. Reported voltage is 16x the voltage on the pin (adjusted internally by the chip).

in2_lcrit

Critical minimum VMON/VDRV Voltage.

in2_crit

Critical maximum VMON/VDRV voltage.

in2_lcrit_alarm

VMON/VDRV voltage critical low alarm.

in2_crit_alarm

VMON/VDRV voltage critical high alarm.

vmon attributes are supported on ZL2004, ZL9101M, and ZL9117M only.

inX_label

“vout1”

inX_input

Measured output voltage.

inX_lcrit

Critical minimum output Voltage.

inX_crit

Critical maximum output voltage.

inX_lcrit_alarm

Critical output voltage critical low alarm.

inX_crit_alarm

Critical output voltage critical high alarm.

X is 3 for ZL2004, ZL9101M, and ZL9117M, 2 otherwise.

curr1_label

“iout1”

curr1_input

Measured output current.

curr1_lcrit

Critical minimum output current.

curr1_crit

Critical maximum output current.

curr1_lcrit_alarm

Output current critical low alarm.

curr1_crit_alarm

Output current critical high alarm.

temp[12]_input

Measured temperature.

temp[12]_min

Minimum temperature.

temp[12]_max

Maximum temperature.

temp[12]_lcrit

Critical low temperature.

temp[12]_crit

Critical high temperature.

temp[12]_min_alarm

Chip temperature low alarm.

temp[12]_max_alarm

Chip temperature high alarm.

temp[12]_lcrit_alarm

Chip temperature critical low alarm.

temp[12]_crit_alarm

Chip temperature critical high alarm.